43
Mejores Practicas para el Testeo de Aplicaciones Hugo Pallares Vega

Mejores prácticas para testing de aplicaciones

Embed Size (px)

DESCRIPTION

http://sg.com.mx/sgce/2013/sessions/mejores-pr%C3%A1cticas-para-testing-aplicaciones Se mostrarán las mejores prácticas para la generación de las diferentes tipos de pruebas que existen para las aplicaciones antes de salir a producción.

Citation preview

Page 1: Mejores prácticas para testing de aplicaciones

Mejores Practicas para el Testeo de Aplicaciones

Hugo Pallares Vega

Page 2: Mejores prácticas para testing de aplicaciones

2

Introducción

El testeo de aplicaciones (en inglés software testing) son las investigaciones que proporcionan información objetiva e independiente sobre la calidad del producto a las partes interesadas.

Dependiendo del tipo de pruebas, estas actividades podrán ser implementadas en cualquier momento de dicho proceso de desarrollo.

Por esto, las actividades, técnicas, documentación, enfoques y demás elementos que condicionarán las pruebas a realizar deben ser seleccionadas y utilizadas de la manera más eficiente según contexto del proyecto.

Page 3: Mejores prácticas para testing de aplicaciones

3

Introducción

El testeo de aplicaciones (en inglés software testing) son las investigaciones que proporcionan información objetiva e independiente sobre la calidad del producto a las partes interesadas.

Dependiendo del tipo de pruebas, estas actividades podrán ser implementadas en cualquier momento de dicho proceso de desarrollo.

Por esto, las actividades, técnicas, documentación, enfoques y demás elementos que condicionarán las pruebas a realizar deben ser seleccionadas y utilizadas de la manera más eficiente según contexto del proyecto.

Page 4: Mejores prácticas para testing de aplicaciones

4

Temario

1. Los Diferentes Tipos de Pruebas.

2. Las Etapas para la Generación de las Pruebas.

3. Obtener los Requerimientos.

4. Ciclo para la Generación de Casos de Pruebas.

5. Definición de Carga .

6. Ejecución de Pruebas.

7. Análisis de Resultados.

Page 5: Mejores prácticas para testing de aplicaciones

5

1 Los Diferentes Tipos de Pruebas.

Page 6: Mejores prácticas para testing de aplicaciones

6

Pruebas de Carga:Se realiza generalmente para observar el comportamiento de una aplicación bajo una cantidad de peticiones esperada. Esta carga puede ser el número esperado de usuarios concurrentes utilizando la aplicación y que realizan un número específico de transacciones durante el tiempo que dura la carga.

Pruebas de Estrés:Permite ver el comportamiento de la aplicación con mas usuarios de los que fue diseñada . se van incrementando el número de usuarios que se agregan a la aplicación hasta tirar la aplicación o ver el comportamiento con carga excesiva.

Pruebas Funcionales:

Nos permite medir el comportamiento del programa desde el punto de vista del usuario final.

Los Diferentes Tipos de Pruebas

Page 7: Mejores prácticas para testing de aplicaciones

7

Pruebas de Regresión:Es un tipo particular de prueba de carga en la cual el objetivo es la de probar un error detectado en la aplicación, hacer las correcciones necesarias y volver a ejecutar la prueba para ver si la aplicación presento el error detectado.

Pruebas de Caja Negra:Las pruebas de caja negra se limita a suministrarle datos como entrada y estudiar la salida, sin preocuparse de lo que pueda estar haciendo el módulo por dentro.

Las pruebas de caja negra están especialmente indicadas en aquellos módulos que van a ser interactuar con el usuario (en sentido general: teclado, pantalla, ficheros, canales de comunicaciones, etc. etc.).

Otro tipo de pruebas

Los Diferentes Tipos de Pruebas

Page 8: Mejores prácticas para testing de aplicaciones

8

2 Las Etapas para la Generación de Pruebas.

Page 9: Mejores prácticas para testing de aplicaciones

9

Fin

Obtener Requerimientos

Definir Carga para las Aplicaciones

Creación de Casos de Prueba

Ejecución de la Prueba

Analizar Resultados

Modificación al Sistema

Resultados No Esperados

Resultados Esperados

Las Etapas para la Generación de Pruebas

Page 10: Mejores prácticas para testing de aplicaciones

10

3 Obtener los Requerimientos.

Page 11: Mejores prácticas para testing de aplicaciones

11

Requerimientos:

También conocidos como requisitos, se definen como las necesidades o problemas que el cliente o usuario desea resolver.

Su administración requiere de priorizarlos, documentarlos, revisarlos y aprobarlos.

El objetivo es que todas las partes cuenten con una explicación escrita del problema. Se pueden obtener de escenarios de uso, relación de evento-respuesta, o descripción de necesidades.

Entre otra información los requerimientos contienen: Especificaciones, Reglas del Negocio, Reglas de Cálculo, Validaciones de Información, Descripción de Procesos de la Operación.

Ejemplos:

1. Investigar la lentitud de la nueva aplicación en el ambiente de producción.

2. Comprobar la experiencia del usuario final con las nuevas opciones de la aplicación.

3. Generar registro contable por los intereses moratorios.

4. Realizar el pago de servicios médicos (Farmacia, Consultas Médicas) de manera directa para proveedores de la red con 100 usuarios concurrentes.

5. Transferencia de Pago de Servicios (Tarjetas de Crédito, Cable, Teléfono).

Obtener los Requerimientos

Page 12: Mejores prácticas para testing de aplicaciones

12

4 Ciclo para la Creación de Casos De pruebas.

Page 13: Mejores prácticas para testing de aplicaciones

13

Ciclo para la Creación de Casos de Pruebas

Definir Lista de Funciones

Identificar las Reglas del Negocio

Definir Casos de Pruebas

Generación de Guiones

Creación de Casos de Prueba

Page 14: Mejores prácticas para testing de aplicaciones

14

Lista de Funciones (o pasos).

Una función es una acción dentro de la aplicación que regularmente esta asociada a un proceso de negocio.

Lista de funciones es una relación de acciones ordenadas de manera lógica y que se llevan a cabo de manera sistemática para llegar a un resultado deseado.

Puede representar acciones generales o particulares. Esto significa que pueden descomponerse en subfunciones y así de manera sucesiva.

La descomposición debe llevarse a cabo de una manera ordenada y lógica.

Ciclo para la Creación de Casos de Pruebas

Page 15: Mejores prácticas para testing de aplicaciones

15

Lista de Funciones (o pasos).

1. Escenarios de Uso.

2. Requerimientos.

3. Procesos de Negocio.

4. Procedimientos.

5. Diagramas de Flujo de Proceso.

6. Diseño de la Aplicación.

7. Especificaciones.

8. Instructivos de Operación.

9. Manuales de Usuario.

10.Entrevistas con el Usuario de la Aplicación.

Manual del Sistema

Proceso del Negoc

io

Especificacio

nes

Ciclo para la Creación de Casos de Pruebas

Page 16: Mejores prácticas para testing de aplicaciones

16

Ejemplo de Lista de Funciones:

Un ejemplo de una lista de funciones puede darse al momento de efectuar un retiro de efectivo de un cajero automático.

1. Insertar de Tarjeta

2. Teclear NIP

3. Consulta de Saldo

4. Retiro de Efectivo

5. Impresión de Comprobante

6. Retiro de Tarjeta

Retiro de Efectivo

1. Insertar Tarjeta

2. Teclear NIP

3. Consultar Saldo

4. Retirar Efectivo.

5. Imprimir Comprobante

6. Retirar Tarjeta

Ciclo para la Creación de Casos de Pruebas

Page 17: Mejores prácticas para testing de aplicaciones

17

Reglas del Negocio:

Son las condiciones que regulan el desarrollo de un proceso y establecen el deber ser.

Constituyen las políticas de operación o de servicio que se dan en un proceso.

Dentro de la aplicación, a menudo están determinadas por los valores de los datos y por la relación de estos con otros y con los elementos de infraestructura.

Ciclo para la Creación de Casos de Pruebas

Page 18: Mejores prácticas para testing de aplicaciones

18

Ejemplos de Reglas del Negocio:

a) No hay precios negativos para los artículos

Precio Negativo

$-20.00Error

b) El sexo de una persona solo puede ser masculino o femenino

Sexo <> M / F Error

c) Una fecha siempre debe ser una fecha válida (No existe 30 de Febrero)

6/7/2013 Fecha Inválida Error

Ciclo para la Creación de Casos de Pruebas

Page 19: Mejores prácticas para testing de aplicaciones

19

Reglas del Negocio.

Las Reglas del Negocio también pueden incluir premisas que pueden controlar las relaciones entre los datos.

Por ejemplo estas reglas especifican:

a) Todo pedido debe ser realizado por un cliente y debe existir en el sistema con estatus vigente.

Si

Cliente

No

Elaborar Pedido

Cliente Existe ?

Registrar Cliente

Ciclo para la Creación de Casos de Pruebas

Page 20: Mejores prácticas para testing de aplicaciones

20

Si

No

Eliminar Pedidos

Tiene Pedidos ?

Eliminar Cliente

b) Una vez que un cliente haya hecho algún pedido, se deberá garantizar que no es posible eliminarlo, a menos que previamente se eliminen todos sus pedidos

Ciclo para la Creación de Casos de Pruebas

Page 21: Mejores prácticas para testing de aplicaciones

21

Casos de Prueba.

1. Es una definición lógica de la prueba a la que se someterá un proceso de negocio bajo condiciones determinadas.

2. El propósito es identificar un objetivo en forma de resultados esperados y definir los datos más importantes, así como sus valores para obtener dicho resultado.

3. La característica principal es que existe una entrada conocida y una salida esperada.

4. Para su definición se utilizan la lista de funciones y las reglas de negocio asociadas con los requerimientos.

Ciclo para la Creación de Casos de Pruebas

Page 22: Mejores prácticas para testing de aplicaciones

22

Ciclo para la Creación de Casos de Pruebas

Casos de Prueba.

Caso 1

Entradas

Resultados esperados

Casos Especiales

Entradas

Resultados esperados

Caso 2

Entradas

Resultados esperados

Caso 3

Entradas

Resultados esperados

Caso 4

Entradas

Resultados esperados

Reglas de Negocio

Lista de Funciones

Page 23: Mejores prácticas para testing de aplicaciones

23

Casos de Prueba.

Con los casos seleccionados se pueden cubrir con alguna de las diferentes tipos de pruebas, por ejemplo:

1. Pruebas unitarias (Aplicadas por el programador).

2. Pruebas de funcionalidad (Aplicadas por el área de calidad).

3. Pruebas integrales / Aceptación (Aplicadas en conjunto con el usuario final).

4. Pruebas de estrés, etc.

Pruebas Unitarias

Módulo-1 Módulo-

2 Módulo-3

Caso 1

Entradas

Salidas

Casos Esp.

Entradas

Salidas

Caso 2

Entradas

Salidas

Caso 3

Entradas

Salidas

Pruebas de Funcionalidad

Caso 1

Entradas

Salidas

Casos Esp.

Entradas

Salidas

Caso 2

Entradas

Salidas

Caso 3

Entradas

Salidas

Pruebas Integrales / Aceptación

Ciclo para la Creación de Casos de Pruebas

Page 24: Mejores prácticas para testing de aplicaciones

24

Ejemplos de Casos de Prueba:

Caso 1.

Objetivo. Confirmar la Cancelación de un Contrato por Falta de Pago.

Regla de Negocio: El pago de la membresía no se ha realizado para el periodo actual y han transcurrido dos meses desde el aniversario del contrato.

Resultado esperado

1. Contrato cambia a estatus cancelado por falta de pago.

2. Se genera notificación correspondiente al cliente.

Caso 2.

Objetivo. Reactivar una contrato cancelado por falta de pago, sin cargo moratorio.

Regla de Negocio: Se ha realizado el pago de un contrato con estatus de pago pendiente y no han transcurrido más de tres meses desde el aniversario.

Resultado esperado:

3. Contrato cambia a estatus vigente.

4. Se genera contabilidad del pago.

Ciclo para la Creación de Casos de Pruebas

Page 25: Mejores prácticas para testing de aplicaciones

25

Elaboración de Guiones.

Objetivo de Prueba del Guión:

• Propósito del guión (Descripción de lo que se quiere probar).

• Función(es) Asociada(s).

Pasos para Procesar el Guión:

• Secuencia lógica de las acciones que se llevarán a cabo.

• Flujo de trabajo que muestra los pasos para realizar la prueba a través del guión.

Estructura de Cada Paso:

• Número o Nombre del Paso.

• Descripción del Paso.

• Resultados Esperados de cada Paso.

• Verificación de Resultados.

Ciclo para la Creación de Casos de Pruebas

Page 26: Mejores prácticas para testing de aplicaciones

26

Ejercicio:

Durante este ejercicio usted practicará lo siguiente:

1. Identificar y definir el requerimiento de prueba.

2. Elaborar lista de funciones afectadas.

3. Identificar las reglas del negocio.

4. Definir asos de prueba.

Ciclo para la Creación de Casos de Pruebas

Page 27: Mejores prácticas para testing de aplicaciones

27

Ejercicio:

La Aplicación

• Para validar el funcionamiento de la aplicación de correo, el cliente debe acceder a su cuenta de correo a través de su usuario y password.

• El cliente deberá de enviar un correo a [email protected].

• Se deberá de adjuntar cualquier tipo de archivo ubicado en la unidad c de su equipo de computo.

• Después de adjuntar el documento se deberá de seleccionar el acuse de recibo antes de enviar.

Requerimiento de adecuación (supuestos)

• El archivo a enviar deberá de ser menor a 2 MB.

• En la sección de asunto se deberá de ingresar: Archivo adjunto.

• En la sección de mensaje, enviar un saludo.

Ciclo para la Creación de Casos de Pruebas

Page 28: Mejores prácticas para testing de aplicaciones

28

Ejercicio:

Definición del Problema

Requerimiento de Prueba:

• Confirmar que el archivo demo adjuntado salga del servidor de correo poniendo como destinatario el correo del emisor.

• Para lo anterior se solicita generar los siguientes productos del proceso de pruebas.

• Elaborar el guión o los guiones de prueba considerando todas las actividades y funciones que usted identifique.

• Se recomienda descomponer el proceso llegando al nivel de sus funciones más básicas y construir los guiones asociados a dichas funciones.

Productos Requeridos:

1. Lista de funciones

2. Reglas del negocio

3. Casos de prueba

Ciclo para la Creación de Casos de Pruebas

Page 29: Mejores prácticas para testing de aplicaciones

29

Solución del Ejercicio:

Lista de Funciones

1. Login a mi correo electrónico.2. Oprimir el botón nuevo correo.3. Adjuntar archivo ubicado en la unidad c.4. Ingresar el correo de [email protected]. Ingresar el correo de [email protected]. En la sección asunto Ingresar: Archivo adjunto7. En la sección mensaje ingresar : Buenos días.8. Dar clic en el botón enviar.9. Dar clic en el botón de correos entrantes.10. Validar que exista el correo que acabo de enviar con el adjunto11. Salir

Las funciones se ejecutan en el orden listado deseablementeLa función Login debe procesarse antes de enviar el correo

Ciclo para la Creación de Casos de Pruebas

Page 30: Mejores prácticas para testing de aplicaciones

30

Solución del Ejercicio:

Reglas de Negocio

1. Se deberá de adjuntar un archivo menor a 2 MB.

2. Se deberá de ingresar el correo del emisor.

3. Se deberá de enviar un saludo.

Caso de Prueba

Caso 1.Envio de imagen de 1 MB . Operación exitosa

Caso 2. Envío de un archivo .zip de 4 MB. Error (Archivo muy grande)

Ciclo para la Creación de Casos de Pruebas

Page 31: Mejores prácticas para testing de aplicaciones

31

5 Definición de Carga.

Page 32: Mejores prácticas para testing de aplicaciones

32

Dependiendo el tipo de prueba que se va a generar, es necesario definir la cantidad de usuarios que van a necesitar durante las pruebas.

Si en los requerimientos se pide que simule la carga de un día de trabajo necesitaríamos conocer los procesos de negocio que se generan para esa aplicación , así como el horario de mayor carga para saber el numero de usuarios que necesitamos.

Definición de Carga

Page 33: Mejores prácticas para testing de aplicaciones

33

             

Procesos de Negocio              

             

Crear Cuenta       40 200 210 200 15010

0 75 15

Búsqueda por vuelos       5 250 400 400 24020

0 50   

Comprar boletos       3 300 350 500 20010

0 50 30  

             

             

Procesos Administrativos              

Respaldo del sistema 1 1 1      1

12 2 4 6 8 10 12 2 4 6 8 10 12

am pmTipico día de trabajo app:Venta de Boletos

Max Usuarios

Definición de Carga

Page 34: Mejores prácticas para testing de aplicaciones

34

¿Cuantas iteraciones (transacciones) necesitamos generar por minuto si la prueba debe de emular 2 horas con 500 usuarios, asumiendo que el promedio de la iteracion dura 5 min?

Cuantas transacciones se generarán por minuto:

• 120 min / 5 min = 24 por usuario

• 500 usuarios X 24 iteraciones = 120,000 iteraciones

• 120,000 iteraciones / 120 minutos = 1000 iteraciones por minuto

Definición de Carga

Page 35: Mejores prácticas para testing de aplicaciones

35

6 Ejecución de Pruebas.

Page 36: Mejores prácticas para testing de aplicaciones

36

Para la ejecución de la prueba debemos de considerar lo siguiente:

Ubicación de generadores de Carga: Es el lugar en el cual se estarán ejecutando los usuarios virtuales /físicos.

Número de usuarios: El total de usuarios virtuales a ejecutar del proceso de negocio.

Procesos de negocio involucrados: El nombre del/los proceso de negocio a realizar.

Delay en “n” segundos: El tiempo de espera entre cada iteración del usuario.

Accesos de usuarios cada “n” segundos: Es el tiempo en el cual se agregara a la carga un nuevo usuario virtual.

Ejecución de Pruebas

Page 37: Mejores prácticas para testing de aplicaciones

37

Una vez definido lo anterior se generara el escenario de pruebas.

Ejecución de Pruebas

Page 38: Mejores prácticas para testing de aplicaciones

38

7 Análisis de Resultados.

Page 39: Mejores prácticas para testing de aplicaciones

39

Una vez generada la prueba se deberá de analizar todos los datos para determinar si se cumplió o no con el objetivo planteado.

Análisis de Resultados

Page 40: Mejores prácticas para testing de aplicaciones

40

Con el análisis de los datos podemos llegar a diferentes conclusiones de acuerdo al comportamiento durante la prueba.

Análisis de Resultados

Page 41: Mejores prácticas para testing de aplicaciones

41

Log de Defectos Revisar Defecto

Corregidor Defecto

Nueva Prueba

Cerrar Defecto

¿Necesita Corregir?

Corregido?

Nuevo

Corregido

Cerrado / Rejected

Estatus de Defecto Ciclo de Vida de Defectos

Análisis de Resultados

Abierto/ Reabierto

Page 42: Mejores prácticas para testing de aplicaciones

42

Conclusión

Mejores Practicas para Testeo de Aplicaciones

Page 43: Mejores prácticas para testing de aplicaciones

Preguntas

[email protected]