Testing Exploratorio
Centro de Ensayos de Software
Beatriz Pérez
2007
La sopa y el testing
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
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
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.
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?
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Errores, defectos y fallas
?!
puede generar que puede generar
un error humano
Un defecto
una falla
(interno)
(externa)
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.
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
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
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Las pruebas en el tiempo
Pruebas
Unitarias
Pruebas
de Integración
Pruebas
Funcionales
Pruebas
del Sistema
Pruebas
de Aceptación
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
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
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
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
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
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)
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Desarrollo y Testing
Ciclo de vida del desarrollo
Planificar el
Proyecto
Planificación del
Testing
Capturar los
Requerimientos
Diseñar las
Pruebas
Diseñar el
Sistema
Configurar el
Entorno
Desarrollar el
Sistema
Ejecución de
las Pruebas
Seguimiento de
Incidentes
Ciclo de vida del testing
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Proceso
Actividades
Ciclo de Prueba
Planificación
Diseño de
las Pruebas
Configuración
Ejecución
Evaluación y
Cierre
Seguimiento y Control
Artefactos
Plan de
Pruebas
Inventario de
Prueba
Casos de
Prueba
Reporte de
Prueba
Informe Final de
Pruebas
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
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Pruebas
Casos
de
Prueba
Producto
Testing Exploratorio
 El testing exploratorio es un proceso
simultáneo de exploración del producto
(aprendizaje), diseño y ejecución de pruebas.
James Bach
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Sesión de testing exploratorio
Casos
de
Prueba
Misión
Resultados
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Testing Exploratorio
mente abierta
nuevas ideas
de pruebas
porque podemos
encontrar sorpresas
Periódicamente hay que reubicarse
respecto a la misión!
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
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
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
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.
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
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
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
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
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
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.
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Testing exploratorio
en la práctica
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Centro de Ensayos de
Software
 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
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Servicios
 Testing independiente
 Consultoría
 Capacitación
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
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
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
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
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.
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Seguimiento
 Inventario de Funcionalidades
 Incidentes
• Se utilizó la herramienta Mantis
Interfaz 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
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.
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.
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
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
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Resultados




Funcionalidades planificadas: 465
Funcionalidades probadas: 607
Incidentes: 120
Funcionalidades con incidentes: 154
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Resultados
C u b rim ie n to d e fu n c io n a lid a d e s
26%
C on inc identes
S in inc identes
74%
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Resultados
Incidentes por gravedad
9%
1%
16%
urgente
alta
normal
baja
74%
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
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
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
TechNight: Si no te gusta la sopa… Dos platos!!!!!
¿Preguntas?
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Gracias!
Beatriz Pérez
[email protected]
www.ces.com.uy
TechNight: Si no te gusta la sopa… Dos platos!!!!!
Descargar

TechNight_200611_BeatrizPerez_TestingExploratorio