Testing Exploratorio

54
Testing Exploratorio Centro de Ensayos de Software Beatriz Pérez 2007

description

Testing Exploratorio. Centro de Ensayos de Software Beatriz Pérez 2007. La sopa y el testing. Historia de las Pruebas. La primera referencia aparece en 1950 Recién en 1957 fue distinguida del debugging - PowerPoint PPT Presentation

Transcript of Testing Exploratorio

Page 1: Testing Exploratorio

Testing Exploratorio

Centro de Ensayos de Software

Beatriz Pérez

2007

Page 2: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

La sopa y el testing

Page 3: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Historia de las Pruebas

La primera referencia aparece en 1950

Recién en 1957 fue distinguida del debugging

La Prueba de Software puede ser usada para

mostrar la presencia de bugs, pero nunca su

ausencia (Dijkstra en 1970)

“La prueba continúa estando entre las artes

oscuras del desarrollo de software” Myers

Page 4: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Enfoques dinámicos y estáticos

El enfoque dinámicos apunta a ejecutar una

parte o todo el software para determinar si

funciona según lo esperado.

El enfoque estático se refiere a la evaluación

del software sin ejecutarlo usando mecanismos

automatizados (herramientas asistidas) y

manuales tales como controles de escritorio,

inspecciones y revisiones

Page 5: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Definiciones

Prueba es una actividad realizada para evaluar la calidad del producto y mejorarla, identificando defectos y problemas.

La prueba de software (testing) es la verificación dinámica del comportamiento de un programa contra el comportamiento esperado, usando un conjunto finito de casos de prueba, seleccionados de manera adecuada desde el dominio infinito de ejecución.

Page 6: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Verificación vs. Validación

Boehm usa dos preguntas para clarificar la

diferencia entre estos términos

• Verificación ¿Estamos elaborando correctamente el

producto?

• Validación ¿Estamos elaborando el producto

correcto?

Page 7: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

?!un error humano Un defecto

(interno)

una falla

(externa)

puede generarque puede generar

Errores, defectos y fallas

Page 8: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

No es posible probar completamente un programa

Para probar completamente un sistema se

deben ejercitar todos los caminos posibles del

programa a probar.

Myers mostró en 1979 un programa que

contenía un loop y unos pocos if, este

programa tenia 100 trillones de caminos, un

tester podía probarlos todos en un billón de

años.

Page 9: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Selección de los casos de prueba

El objetivo debe ser maximizar el número de

los errores encontrados por un número finito de

los casos de prueba

La forma en cómo se seleccionan los casos de

prueba es una de las principales decisiones a

tomar

Page 10: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Actitud frente a las pruebas

Proceso destructivo de encontrar errores (cuya

presencia se asume) en un programa

El tester debe adoptar una actitud destructiva

hacia el programa, debe querer que falle, debe

esperar que falle y debe concentrarse en

encontrar casos de prueba que muestren sus

fallas

Page 11: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Las pruebas en el tiempo

Pruebas Unitarias

Pruebas de Integración

Pruebas del Sistema

Pruebas de Aceptación

Pruebas Funcionales

Page 12: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Prueba Funcional

El objetivo de la prueba funcional es validar

cuando el comportamiento observado del

software probado cumple o no con sus

especificaciones.

La prueba funcional toma el punto de vista del

usuario

Page 13: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Pruebas de regresión

Su objetivo es verificar que no ocurrió una regresión

en la calidad del producto luego de un cambio

Implican la reejecución de alguna o todas las pruebas

realizadas anteriormente

Regresión de

• defectos solucionados

• defectos viejos

• efectos secundarios

Page 14: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Prueba de Aceptación

Es la prueba previa a poner en

producción el software

El objetivo es verificar que el software está listo y

puede ser usado por el usuario final para

realizar las funciones y tareas para las que fue

construido

Page 15: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Prueba de Aceptación (II)

Pueden ser:

• Informal: se identifican las funciones pero no hay casos

de prueba a seguir. El usuario final determina que hacer

• Formal : extensión de la prueba del sistema

• Alfa: Pruebas realizadas por el usuario final en la

organización de desarrollo

• Beta: El usuario final es responsable de crear el

ambiente, seleccionar sus datos y decidir que funciones

explorar. Identifica su propio criterio de aceptación

Page 16: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Psicología de las pruebas

El autor de un programa tiende a cometer los

mismos errores al probarlo

Debido a que es “SU” programa

inconcientemente tiende a hacer casos de

prueba que no hagan fallar al mismo

Puede llegar a comparar mal el resultado

esperado con el resultado obtenido debido al

deseo de que el programa pase las pruebas

Page 17: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Niveles de Independencia

Pruebas diseñadas por las personas que

escribieron el software

Pruebas diseñadas por personas distintas pero

del equipo de desarrollo.

Pruebas diseñadas por personas de otro grupo

de la organización (área de testing)

Pruebas diseñadas por personas de otra

organización (outsourcing)

Page 18: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Desarrollo y Testing

Ciclo de vida del desarrollo

Planificación del Testing

Configurar el Entorno

Diseñar lasPruebas

Ejecución de las Pruebas

Seguimiento de Incidentes

Ciclo de vida del testing

Planificar el Proyecto

Capturar los Requerimientos

Desarrollar el Sistema

Diseñar el Sistema

Page 19: Testing Exploratorio

Proceso

PlanificaciónPlanificaciónDiseño de las PruebasDiseño de las Pruebas

Configuración Configuración Evaluación y Cierre

Evaluación y Cierre

Plan de Pruebas

Actividades

Casos de Prueba

Artefactos

Inventario de Prueba

Informe Final de Pruebas

EjecuciónEjecución

Reporte de Prueba

Ciclo de Prueba

Seguimiento y Control Seguimiento y Control

Page 20: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Estrategias de testing funcional

Testing planificado • Diseño de casos de

prueba• Ejecución de pruebas,

incluso por otro tester

Testing exploratorio • Diseño y ejecución de

pruebas simultáneos

Pruebas

Producto

Casos de

Prueba

Page 21: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

El testing exploratorio es un proceso simultáneo de exploración del producto (aprendizaje), diseño y ejecución de pruebas.

James Bach

Testing Exploratorio

Page 22: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Sesión de testing exploratorio

Casos de

Prueba

Misión

Resultados

Page 23: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Testing Exploratorio

mente abierta porque podemosencontrar sorpresas

Periódicamente hay que reubicarse respecto a la misión!

nuevas ideas de pruebas

Page 24: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Sesiones Misión

• Describe qué se probará del producto, los tipos de incidentes que se buscan y los riesgos involucrados.

Sesión• Indica un itinerario• Se establece a partir de la misión • Registro

Page 25: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Estrategia de Aplicación

Existen estilos sin ninguna estructura y

documentación

Selección de las distintas estrategias depende

• necesidades de gerenciar y medir el testing

exploratorio

• formalizarlo en mayor o menor grado

Page 26: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Estilos de testing exploratorio

Estilo Libre

Funcional parcial

Realizado por usuarios

Humo exploratorio

Regresión exploratorio

Basado en sesiones

Page 27: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Estilo libre

Aplicable en las primeras etapas de

construcción de un producto, cuando los

requerimientos, especificaciones y

funcionalidades son aún ambiguos e inestables

El resultado de aplicar el estilo libre consiste

únicamente en el reporte de los incidentes

detectados.

Page 28: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Funcional parcial

Probar funcionalidades individuales

inmediatamente luego de implementadas

Validar requerimientos y concepciones reales

del diseño

Permite una rápida retroalimentación a los

desarrolladores en etapas tempranas del ciclo

de desarrollo

Page 29: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Realizado por usuarios

Usuarios exploran adecuación a los escenarios

reales de su trabajo

Tienen conocimiento del negocio, roles y

responsabilidades variadas, determinan

misiones específicas, no es preciso simularlas

Page 30: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Humo exploratorio

Tener una visión global y rápida sobre el nivel de

calidad de una nueva versión de un producto

Útil cuando las actualizaciones se producen periódica

y frecuentemente.

Se recorre la lista de funcionalidades básicas para

detectar defectos o cambios en las funcionalidades.

Se recorre la lista de las correcciones para verificar

que realmente se hayan realizado

Page 31: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Regresión exploratorio

Se concentra en las correcciones y mejoras

desarrolladas

Se basa fuertemente en la experiencia del

tester para explorar la posible introducción de

nuevos defectos o el surgimiento de efectos

negativos colaterales

Page 32: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Basado en Sesiones

Organiza el testing exploratorio en sesiones documentadas adecuadamente

Una sesión comprende

• itinerario, que se establece a partir de la misión

• heurísticas a ser usadas.

Los resultados incluyen:

• notas escritas sobre los pasos seguidos

• observaciones

Page 33: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Basado en Sesiones (II)

Su principal ventaja radica en que a pesar de

su bajo costo relativo, permite elaborar reportes

de avance, registrar el itinerario seguido,

gestionar y medir el proceso.

Su desventaja es que depende fuertemente de

las habilidades y preparación de los testers.

Page 34: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Testing exploratorio en la práctica

Page 35: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Consorcio CUTI – Facultad de Ingeniería (UdelaR)

Proyecto: “Desarrollo tecnológico en sectores claves de la economía uruguaya”. URY/2003/5906. Unión Europea. Co-financia PNUD

Centro de Ensayos de Software

Page 36: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Servicios Testing independiente

Consultoría

Capacitación

Page 37: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Producto a probar Aplicación web Algunas funcionalidades de la aplicación

habían sido probadas anteriormente por el CES

Nueva versión• nueva plataforma y manejador de base de

datos Documentación del producto: manual de

usuario aún no actualizado

Page 38: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Producto a probar (II)

Un mes para hacer una prueba completa de

todas las funcionalidades del producto

Al mes, el equipo de desarrollo liberaría una

nueva versión con los incidentes ya corregidos.

En esa segunda versión sólo se ejecutarían

pruebas de regresión

Page 39: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Planificación

Equipo de 6 personas, dirigido por un líder

Existían 2 testers que conocían el producto

• Diseñaron las misiones de testing exploratorio

• Contestaban dudas

Page 40: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Planificación

Basada en el análisis de riesgo del producto

Inventario de Funcionalidades

• A partir de los menúes de la aplicación

• 520 funcionalidades

• Se dejaron 55 fuera del alcance a partir del análisis de

riesgo

Dos ciclos de prueba

• Ciclo 1 se probarían 465 funcionalidades

• Ciclo 2 se realizaría regresión de incidentes

Page 41: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Estrategia

Testing exploratorio basado en sesiones Las misiones se definieron en base a:

• los principales ciclos funcionales de la aplicación (5 misiones)

• grupos de funcionalidades relacionadas (10 misiones)

Las misiones que cubrían las funcionalidades de mayor prioridad fueran asignados a más de una persona• cubrimiento más exhaustivo y rico.

Page 42: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Seguimiento Inventario de Funcionalidades Incidentes

• Se utilizó la herramienta MantisInterfaz web

• Para cada incidente reportado se registraba:Descripción, categoría, prioridad, ciclo, módulo

Comunicación fluida con el cliente• Permitió cumplir con los plazos

Page 43: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Cubrimiento de Funcionalidades

Se mantuvo un registro de trazabilidad de las funcionalidades ya ejercitadas.

En función de los resultados obtenidos en cada

jornada, se definían las misiones para las siguientes sesiones.

La realimentación constante fue guiando el foco de las pruebas a lo largo del proyecto.

Page 44: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Sesiones individuales

Cada tester:

• Leía la misión

• Aclaraba las dudas con quien la había diseñado

• Fijaba el itinerario de la sesión

• Ejecutaba las pruebas

El tiempo registrado en cada sesión incluía

• ejecución de las pruebas

• registro en el sistema de seguimiento de los incidentes

encontrados.

Page 45: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Sesiones individuales

La duración promedio de las sesiones dependió

de la persona que ejecutaba la sesión

• Mínimo: sesiones de 1 hora de duración en

promedio

• Máximo: sesiones de 3 horas de duración en

promedio.

Se definieron 20 misiones y 40 sesiones

Page 46: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Registro de las sesiones

Se definió una plantilla:• Ciclo de prueba• Fecha y duración en minutos• Tester que realizó la ejecución• Misión de la sesión• Funcionalidades que fueron ejercitados al realizar la

sesión• Razón por la que se ejecutó cada funcionalidad: por

necesidad, por ser parte de la misión o por curiosidad• Datos de prueba• Observaciones: son aquellas cosas que llamaron la

atención • Identificadores de los incidentes encontrados

Page 47: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Resultados Funcionalidades planificadas: 465 Funcionalidades probadas: 607 Incidentes: 120 Funcionalidades con incidentes: 154

Page 48: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Resultados Cubrimiento de funcionalidades

26%

74%

Con incidentes

Sin incidentes

Page 49: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Resultados

SATISFACCIÓN DEL CLIENTE!

Incidentes por gravedad

1% 16%

74%

9%

urgente

alta

normal

baja

Page 50: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Resultados obtenidos

Satisfacción del cliente• Con cubrimiento e incidentes encontrados

Estrategia útil para obtener resultados rápidamente

Buena práctica guiar las misiones en función de los resultados que se obtenían

Informes de avance diarios permitieron dar visibilidad al cliente

Problemas para unificar la forma en que se redactan las sesiones

Page 51: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Aspectos a mejorar

Utilización de herramientas

• Para gestionar la información de cubrimiento y

avance de las sesiones

• Para documentar las sesiones

Obtener mejores mediciones

• Incidentes detectados por sesión

• Tiempo de preparación y ejecución de la sesión

Page 52: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Aspectos a destacar

Testing exploratorio es esencial en el proceso de testing

Mejora el testing planificado El buen testing requiere desarrollo continuo de

habilidades que pueden ser aprendidas. Es importante documentar los pasos de la sesión y

resultados obtenidos:• elaborar reportes de avance• registrar el itinerario seguido

Page 53: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

¿Preguntas?

Page 54: Testing Exploratorio

TechNight: Si no te gusta la sopa… Dos platos!!!!!

Gracias!

Beatriz Pérez

[email protected]

www.ces.com.uy