Está en la página 1de 14

Apuntes del curso de Testing

Proyecto Nahual

CLASE 1

http://www.nahual.com.ar/
¿Qué vimos en la primer clase?

1. Testing ….¿qué?
2. Sobre nosotros: Proyecto Nahual
a. Nuestro manifiesto
3. ¿Qué es un Tester? ¿El curso es para mí?
4. Introducción a la Informática
a. ¿Qué es una computadora?
b. Componentes de una computadora
5. Los roles en la Industria del Software
a. Importancia del equipo
b. Roles que participan
6. El ciclo de vida del Software
7. Empezando a entrar al mundo del Testing…
a. Celfar
b. ¿Qué es una Especificación?
c. Volviendo a Celfar…
8. Recapitulando algunas definiciones...

http://www.nahual.com.ar/
Testing ….¿qué?
Hola! Bienvenido/a al curso de Testing

A lo largo de este manual vamos a ir documentando todo lo que necesitás saber sobre el
mundo del Testing, así que por ahora, por favor, no desesperes!
Antes que nada, queremos aclarar que este manual no reemplaza la asistencia a clases
sino que busca que tengas un material al cual acceder si lo necesitás. Por eso, te
pedimos que no faltes.

Sobre nosotros: Proyecto Nahual


Antes que nada nos queremos presentar, Proyecto Nahual está formado por un grupo de
personas que les apasiona lo que hacen y les encanta transmitirlo, porque creemos que
de nada sirve quedarse con el conocimiento, sino que crecemos aún más cuando lo
compartimos, porque aprendemos los dos, nosotros de vos y vos de nosotros, no te
parece?

Nuestro manifiesto
Nuestras metas son la contención y la integración.
Contención e integración en respuesta a la desesperanza y a la fragmentación social que
vivimos.
Contención para aquellos que viven una realidad difícil y encuentran en este espacio un
lugar divertido, cordial e interesante. Divertido porque genera risas, cordial por su buena
onda e interesante porque despierta inquietudes.
Contención también de los profesores que, al utilizar este espacio de enseñanza y de
reunión, descubren nuevas formas de sentirse útiles; de dar y recibir.
Mediante juegos y compartiendo actividades del día a día buscamos desestructurar la
relación alumno-profesor para luego sembrar perseverantemente una nueva relación
fundada en el respeto, la paciencia, la comprensión. Sólo así la transmisión de nuestros
valores rendirá sus frutos.
Integración al vincular el proyecto y sus miembros con el entorno, creando y fortaleciendo
lazos, combatiendo la exclusión, los prejuicios y la desesperanza.
Creemos en la integración “hacia adentro” -donde los demás se acercan al proyecto- y
“hacia afuera” -donde los alumnos salen a crear sus propios proyectos y a caminar sus
propios senderos-.
Como vehículo que transporta el espíritu del proyecto, elegimos la enseñanza informática
destacando la creación de programas de computadora. De esta manera, estimulamos
directamente: la imaginación, el trabajo en equipo, la comunicación, la capacidad de
análisis, la curiosidad por aprender, entre otras cosas. Estas herramientas, creemos, son
valiosas en cualquier disciplina y amplían el abanico de oportunidades.

http://www.nahual.com.ar/
La construcción de programas entendida como oficio puede ser una oportuna salida
laboral. En Nahual, nos interesa formar perfiles como programador, diseñador, tester u
otros vinculados con la industria del software. Queremos que el proyecto sea un
complemento para el desarrollo laboral de los alumnos.
En el proceso recogemos frutos que no son buscados directamente; como ser la
alfabetización informática, mayor contacto con el inglés, trabajo en equipo, razonamiento
matemático y lógico-deductivo.

Si te interesa conocer más sobre nosotros, podés encontrar más información en


http://www.nahual.com.ar ,y si te gustó...dale

¿Qué es un Tester? ¿El curso es para mí?


Ahora llegó la parte en la cual te contamos más sobre este trabajo “misterioso” que
significa ser un Tester, justamente, para que veas que no tiene nada de misterioso.

El Testing es un oficio dentro de la Industria del Software. Esta industria es la que genera
programas de computadora como por ejemplo los que todos usamos. Es una industria
más, como podría serlo la industria automotriz, la petrolera, o cualquier otra que se te
cruce por la cabeza, pero como veníamos diciendo, su objetivo es crear programas. Estos
programas pueden ser de cualquier tipo, desde el programa gigante para manejar un
banco o una empresa, el software para controlar un avión o hasta los jueguitos que todos
jugamos en el celular.
El Tester es la persona que hace Testing. ¿Qué significa eso? Que se encarga de
asegurar la calidad de estos programas que te venimos mencionando. ¿Y en castellano,
qué es eso? Asegurar la calidad de los programas significa verificar que los programas
funcionen como tienen que funcionar. Como te veníamos diciendo, es un oficio, y como en
todo oficio, el Tester tiene responsabilidades que tiene que conocer. Antes de que te
asustes con todo esto, el Tester no trabaja solo, sino que está en un equipo junto con
otros Testers y otras personas que cumplen otras funciones dentro de la Industria del
Software.

El oficio de Tester, como la mayoría de los de la Industria del Software, tiene mucha
salida laboral hoy en día, por eso es que creamos este curso.

Si tenés una compu cerca, Fede, uno de los Nahualeros, te explica en un lindo video todo
esto que te venimos contando: https://www.youtube.com/watch?v=7nOVzt-VTt4

¡A no desesperar con tantas palabras nuevas! Cualquiera con ganas y voluntad puede ser
un Tester (o cualquier cosa que se proponga), y para eso estamos nosotros, para que el
camino sea mucho más fácil y feliz . Así que bienvenidos al curso y…a Testear!!

http://www.nahual.com.ar/
“La única forma de tener buenas ideas es tener muchas ideas”

“Muévete y el camino aparecerá”

“Cuidado con los miedos, les encanta robar sueños”

Introducción a la Informática
Si bien tocamos algunos de estos conceptos informáticos en la clase, vamos a reforzar
algunas ideas...

¿Qué es una computadora?


Como toda persona que trabaja en la Industria del Software, todo Tester usa como
herramienta de trabajo una computadora.
La idea no es que se vuelvan expertos en estas máquinas, pero sí que tengan una idea
general sobre ellas, como por ejemplo la tiene un remisero respecto de su auto.

Yendo a Wikipedia, una computadora puede definirse como “una máquina electrónica
que recibe y procesa datos para convertirlos en información conveniente y útil”.
Básicamente, es una máquina que está diseñada para facilitarnos la vida y ayudarnos
en nuestras tareas cotidianas, como elaborar cartas o una hoja de vida, hablar con
personas de otros países, hacer presupuestos, jugar ,navegar en Internet, y sobre todo,
usar todos los programas y herramientas necesarias para cumplir con nuestra tarea de
Testers

Componentes de una computadora


Una computadora se compone principalmente del software, que se refiere al conjunto de
programas, instrucciones y reglas informáticas, y el hardware que es el conjunto de los
componentes físicos de los que está hecho el equipo.

 El hardware es la parte que se puede ver y tocar de la computadora, es decir,


todos los componentes de su estructura física. Por ejemplo, la pantalla, el teclado,
la CPU, el mouse. Volviendo al ejemplo de un auto, vendrían a ser las partes que
lo componen, como ser el chasis, el motor, la puerta, etc.
 El software son los programas informáticos que hacen posible la realización de
tareas específicas dentro de una computadora. Por ejemplo Word, Excel,
PowerPoint, los navegadores web, los juegos, los sistemas operativos, etc. Se
diferencian del hardware en que el software es intangible, lo que significa que no

http://www.nahual.com.ar/
se pueden tocar. Un ejemplo en el caso de un auto podría ser el programita que
avisa cuando el tanque está vacío.

En esta imagen les dejamos resumido lo que venimos hablando hasta ahora.

http://www.nahual.com.ar/
Los roles en la Industria del Software
Antes de empezar a ver las distintas tareas que hace un Tester, vamos a contarles un
poco sobre los distintos papeles que existen dentro de la Industria del Software.
Es muy importante que tengan una idea de qué hace cada uno, porque como les venimos
diciendo, un Tester no trabaja solo sino que es parte de un gran equipo.

Importancia del equipo


En Desarrollo de Software, como en otras actividades donde interactúan personas, es
imprescindible el buen funcionamiento como equipo. Lo vemos en muchos deportes,
podrá haber algunos deportistas que sobresalen por su capacidad, pero es el equipo el
que permite ganar un partido. Los resultados que puede obtener un equipo son
mucho más y mejores que lo que puede obtener una sola persona.

Roles que participan


Un equipo de desarrollo puede ser una sola persona, o muchas, pero en cualquier
equipo existen una serie de roles o funciones, que pueden ser identificados.
En un equipo chico, puede que una persona cubra múltiples roles, mientras que en
equipos más grandes, es más común tener funciones dedicadas.
Independientemente del caso, la identificación de los roles en el equipo ayudará a
estructurar el mismo, y a crear conciencia de las responsabilidades. Por ejemplo, si
nadie se siente responsable de probar el software, será inevitable que haya errores en la
versión final.

http://www.nahual.com.ar/
El Cliente

Básicamente, el cliente, o como nos gusta llamarlo a nosotros, “El Señor Billetín” ;), es
quien tiene una necesidad que nuestro equipo tiene que resolver y el que pone la plata
para que nosotros podamos solucionarla.
Se puede pensar que tratar al cliente como parte del equipo de desarrollo es extraño, pero
en realidad, no lo es: El cliente es un factor importante en el éxito de un proyecto, tanto
como cualquier otro miembro del equipo, por eso es importante contar con la participación
activa del cliente dentro del proyecto.
También es importante entender quién es en realidad “El Cliente”. El cliente, es, quien
pone en marcha el proyecto, paga las cuentas, o define el resultado final. Aun si no
se tiene literalmente un “cliente”, es bueno entender que aun así existe un rol “cliente” en
el proyecto. Esto puede ayudar a evitar confusiones. Hay que asegurarse de que exista
algún responsable de tomar las decisiones cuando estos requisitos sean
contradictorios.

El Analista Funcional

El Analista Funcional es alguien que es responsable de entender las necesidades del


cliente, y asegurarse de que la solución que está siendo desarrollada se ajusta a
esas necesidades.
Las actividades típicas de un analista incluyen el relevamiento de requisitos, reuniones
con clientes y la redacción de especificaciones funcionales. No se desesperen ;), a lo
largo del curso vamos a ir viendo qué significan estas palabras raras.
En resumen, el Analista Funcional es quien habla con el cliente para ver qué es lo que
necesita, y lo traduce para que los miembros de nuestro equipo lo entiendan.

El Desarrollador

El desarrollador es la persona que programa la solución. Nuevamente, ayudándonos de


nuestra amiga Wikipedia Un programador o desarrollador es “ la persona que elabora
programas de computadora”. En una palabra, es la persona que crea el producto que
le vamos a entregar al cliente. Suelen ser personas muuuuy nerds, como pueden ver en el
dibujito, toman mucho café y a veces son poco comunicativos.

El Tester

Las pruebas son una parte importante para asegurar que el software funciona de la
manera que debería. El tester es quien verifica la calidad del software que se está
fabricando.
La calidad involucra muchos aspectos y es importante que el tester los tome en cuenta.
Estos son algunos:
 Asegurar que el software cumpla con las necesidades del cliente
 Asegurar que no haya errores introducidos por los desarrolladores

http://www.nahual.com.ar/
 Asegurar que el software sea agradable visualmente
 Dar ideas al usuario para lograr un mejor uso de la aplicación

El Líder de Proyecto

Un líder o gerente de proyecto tiene muchas responsabilidades. Es responsable de la


planificación del proyecto, de mantener el proyecto dentro del presupuesto, y de la
solución de problemas. En resumen, él resuelve cualquier problema que ponga en
peligro el progreso del proyecto.
Muchas de las tareas del gerente del proyecto tienen que ver con la comunicación, la
comunicación al cliente sobre el progreso del proyecto y la comunicación con todos los
miembros del equipo.

El Usuario

El usuario final es la persona que va a usar el software que se está fabricando.


El usuario final es tanto o más importante que cualquiera de los otros roles. Algunas
veces, el cliente y el usuario pueden ser la misma persona, pero puede pasar
muchas veces que no lo sean. Si el usuario no queda satisfecho con lo que se hizo, es
muy probable que se niegue a usarlo y así hacer fracasar todo el trabajo realizado. Hay
que pensar como un usuario para intentar saber qué le gustará y qué no le gustará.

El ciclo de vida del Software


Bueno, habiéndoles introducido los diferentes personajes que existen en la Industria del
Software, ahora vamos a contarles cómo se relacionan y encadenan todos ellos en lo que
se conoce como el Ciclo de Vida del Software.
Como todos nacemos, crecemos, nos reproducimos, y pasamos pa' el otro lado, con el
software pasa lo mismo! Las aplicaciones tienen un ciclo de vida que se los ilustramos
con un dibujo!

http://www.nahual.com.ar/
Todo empieza cuando alguien tiene un problema a resolver, que por algún motivo no lo
puede hacer por su cuenta (porque no sabe, porque no tiene tiempo, no tiene ganas, etc)
y como tiene $ (El señor billetín guiño guiño) contrata gente para que le resuelvan su
problema. Esta personita a la que cariñosamente llamamos Sr Billetín es el cliente.
El Cliente tiene una necesidad y se la cuenta a otra persona, esa otra persona es el
analista, el analista anota todo! Todos los detalles, y con lo que le cuenta el cliente arma
un documento (porque sino nos olvidamos de las cosas, no?) que se llama
Especificación/documento funcional/requerimientos, ahí enumera todas las cosas
que el cliente quiere y llegan a un acuerdo: resolver su problema inicial.
Con ese documento el analista charla con otra persona encargada de tirar magia, de
construir con pico y pala, el programador/desarrollador! El programador es el encargado
de crear ese software (una de las partes del mismo, ya que se termina haciendo entre
todos), a partir de los documentos, traduce esas oraciones en otros ingredientes que al
terminar de integrarse crean un programita.
Entonces, ya está? Le dan el programa al cliente y listo? ¿qué me vas a enseñar
entonces?
Paren paren, somos humanos y nos equivocamos no? por eso mismo están ustedes! Acá
aparece el rol del Tester. El tester es el encargado de controlar que ese programita que

http://www.nahual.com.ar/
se hizo cumpla con lo que pidió el cliente y hasta que el tester no dé el "OK" no se
termina el proceso, por eso es un rol super importante! El tester asegura la calidad del
producto final, compara lo que se escribió en las especificaciones contra el resultado final
(el programita) y busca las diferencias!
Ahora, ¿se dan cuenta de lo importante que es que existan los testers?

Empezando a entrar al mundo del Testing…


Vamos a empezar a ver la parte práctica del curso, para no aburrirnos con tanta teoría
toda junta.
Todos los ejercicios que usemos los pueden encontrar en http://nahual.github.io/

Celfar
Esta es la primera aplicación que vamos a usar. Es un programita sencillo que convierte la
temperatura de grados Celsius (los que vemos en la tele en el pronóstico) a otro formato
llamado Fahrenheit.
Cuando entren a la página van a ver varios links. Van a encontrar un link a las
Especificaciones, y seguido a esto, van a ver varias versiones del programa.
Primero vamos a abrir las Especificaciones:

Descripción conversor grados Celcius y Fahrenheit

 El sistema muestra la pantalla con las siguientes características


o Título de la página: CelFar
o Títulos de la aplicación:
 “CelFar”
 Conversor de temperaturas entre grados Celcius y Fahrenheit (las palabras Celcius
y Fahrenheit tienen asociado un link a wikipedia)
o Campo numérico (Tamaño máximo: 6 dígitos, separador decimal: “.”). Inicialmente este
campo se encuentra vacío.
o Botón “convertir!”
o Resultado. Inicialmente este campo dice: “Pendiente de cálculo...”
 Si se completa el campo texto con el valor que desea convertir, y se selecciona “convertir!” o la tecla
enter:
o Caso normal
 El sistema emite el resultado del cálculo: (x*9/5)+32 (siendo x el valor ingresado)
o Caso alternativo
 Si el valor tiene menos de 7 dígitos (es decir, sin contar el separador de decimales
y el signo) y es menor a -273, el sistema emite un mensaje “El valor ingresado está
debajo del 0 absoluto” (con un link a wikipedia a la página de 0 absoluto)
 Si el campo se deja vacío o el valor ingresado no es numérico, el sistema emite el
mensaje “El valor ingresado no es un número (recuerde que los decimales deben
expresarse con '.' y no con ',')”
 Si el valor tiene más de 6 dígitos (es decir, sin contar el separador de decimales y
el signo), el sistema emite el mensaje: “El valor ingresado es muy largo”
 Cuando se modifica el valor el campo numérico, el sistema reemplaza el resultado de la operación
anterior por el mensaje “Pendiente de cálculo...”

http://www.nahual.com.ar/
¿Qué es una Especificación?
Como pueden ver en el texto de Celfar, la Especificación es un documento que explica
qué es lo que tiene que hacer y tener el software que vamos a testear.
Yendo a una definición un poco más formal, la Especificación Funcional es un documento
que detalla todas las funcionalidades que debe tener una aplicación.
Cuando hablamos de funcionalidades nos referimos a determinadas acciones o
comportamientos que debería realizar un software. Por ejemplo, ingresar al sistema, sería
una funcionalidad.
En el desarrollo de software generalmente hay mucha gente involucrada por lo que se
vuelve más complicada y compleja la comunicación entre todos. En un proceso de
desarrollo de software vamos a encontrar a un cliente (quien tiene una necesidad) y un
proveedor (quien satisface dicha necesidad).
Cuando un cliente solicita el desarrollo de un software está describiendo algo que
todavía no existe y por lo tanto es importante que se pueda definir bien cómo debe
funcionar ese software (que debe hacer, y que no debe hacer).
Para que el cliente se anime a comprar (o a esperar por) algo que aún no existe es muy
importante que el cliente y el equipo de proyecto se puedan poner de acuerdo sobre
qué va a recibir el cliente cuando el proyecto termine, es decir, cómo va a funcionar
esa aplicación.
La persona encargada de crear este documento y de pasárnoslo a los Testers es el
Analista Funcional. Y algo muy muy importante que SIEMPRE tenemos que tener en
cuenta es que es nuestro documento de referencia. ¿Qué significa esto? Que cada vez
que probemos un software, no podemos hacer lo que queramos, sino que tenemos que
probar que el software cumpla con los puntos detallados en la Especificación.

Volviendo a Celfar…
Bueno, habiendo hecho esta introducción sobre las Especificaciones, los desafiamos a
que lean bien despacito y prestando mucha atención la especificación de Celfar y ver qué
cosas se cumplen y cuáles no en la Versión 1 del software. Pueden hacer una listita en
una hoja de papel con las cosas que creen que no se están cumpliendo.
Algo que NO tienen que hacer, aunque sabemos que puede ser tentador, es entrar
directamente a alguna de las versiones del software y empezar a probar sin haber
leído la Especificación antes. SIEMPRE SIEMPRE hay que leer la Especificación
primero.

Durante la clase..estuvimos escribiendo qué cosas no se cumplían en Celfar, según la


especificación, para las distintas versiones de Celfar.

Diferencias que encontramos juntos en la pantalla...

*No se encontraba el título en la pestaña del browser.


*Habían faltas de ortografía en "Conversor" y "Cálculo".

http://www.nahual.com.ar/
*Faltaba "Pendiente de Cálculo" al inicio de la app.
*El resultado NO está dentro de un campo.
*Link "Celcius" no asociado.
*Mensajes diferentes a lo que dice la especificación.

*Error de cálculo ingresando valores negativos.


*No convierte valores menores a -273.
*No convierte valores con más de seis dígitos.
*Ingresando valor "0" NO es correcto el cálculo.

Vimos juntos que podíamos clasificar estas diferencias como errores en la pantalla
(como dijo Dani "look&feel") y errores relacionados al funcionamiento de Celfar.

Aquellos errores del funcionamiento de Celfar eran más graves!!...porque no se cumplía el


objetivo principal para lo que fue creado Celfar ...

"... convertir grados Celcius a Fahrenheit".

¿Cómo reportamos estos errores?


...lo sabremos en la CLASE 2

http://www.nahual.com.ar/
Recapitulando algunas definiciones...
 Aplicación, Software: es un programa cualquiera. Como facebook, twitter.
 Desarrollador: es la persona que construye el programa.
 Analista: es la persona encargada de entender la necesidad y traducirla en un
documento.
 Tester: la persona encargada de asegurar la calidad de una aplicación.
 Especificación: es un documento que realiza el analista, donde describe el
programa y cómo funciona.
 Navegador, Browser: son los programas que nos permiten entrar a Internet. Por
ejemplo Internet Explorer, Firefox, Chrome, Opera, Safari.
 Versión: puede entenderse como un código de identificación del programa, que a
medida que se hacen cambios este código va incrementándose. En clase lo
definimos algo así como diferentes "niveles" del programa.

http://www.nahual.com.ar/

También podría gustarte