Proceso de Testing Funcional Independiente Tesis de Maestría en Informática Beatriz Pérez Lamancha Setiembre 2006 PEDECIBA informática Instituto de Computación (InCo) Facultad de Ingeniería Universidad de la República. Montevideo, Uruguay
Temario Centro de Ensayos de Software Contribuciones Proceso de Testing Funcional Principales características Roles Etapas Caso de Estudio Ajustes realizados Conclusiones Trabajo a Futuro Tesis de Maestría en Informática 2
Centro de Ensayos de Software Financiado por la Unión Europea, parte del proyecto proyecto Desarrollo tecnológico en sectores clave de la economía uruguaya Laboratorios Testing Funcional Ensayos de Plataformas Servicios Prueba independiente de productos de software Consultoría Mejora de los procesos de prueba Colaborar en la creación y consolidación del àrea de prueba Capacitación Motivación Definición de procesos y procedimientos Tesis de Maestría en Informática 3
Contribuciones Estudio del estado del arte sobre Pruebas de software Proceso de pruebas de software ProTest Definición proceso para pruebas funcionales independientes Validación y ajuste mediante caso de estudio Usado en el Laboratorio de Testing Funcional del CES DeVeloPro Herramienta para la documentación y administración de procesos Tesis de Maestría en Informática 4
Definiciones* Testing Verificación dinámica del comportamiento de un programa usando un conjunto finito de casos de prueba, seleccionados desde el dominio infinito de ejecución, contra el comportamiento esperado. La verificación dinámica implica que para realizar las pruebas siempre hay que ejecutar el programa para los datos de entrada Testing Funcional Validar si el comportamiento observado del software probado cumple o no con sus especificaciones. * SWEBOK - IEEE's Software Engineering Body of Knowledge Tesis de Maestría en Informática 5
Proceso de Testing Funcional Principales características Independiente del proceso de desarrollo Testing funcional de productos Desde su comienzo En etapas avanzadas de desarrollo Mantenimiento Testing basado en los riesgos del producto Guiado por los Ciclos de Prueba Pruebas a partir de los Requerimientos Adaptado a cada proyecto de prueba Tesis de Maestría en Informática 6
Testing basado en los riesgos del No es posible probar todo qué probar? producto Identificar junto al cliente las funcionalidades que: presenten mayor riesgo para el negocio en caso de no funcionar correctamente Identificar junto a los desarrolladores las funcionalidades que: es mas probable que tengan defectos. son mas complejas de desarrollar Priorizar las funcionalidades que serán verificadas Identificar las funcionalidades que no serán verificadas y el riesgo asociado Tesis de Maestría en Informática 7
Guiado por los Ciclos de Prueba Cada ciclo de prueba está asociado a una versión ejecutable del producto a probar Cada nuevo ciclo de prueba implica una nueva versión de uno o más componentes del sistema En un ciclo de prueba se puede ejecutar una, alguna o todas las pruebas planificadas para el producto. Tesis de Maestría en Informática 8
Pruebas basadas en los Requerimientos Decidir si la salida observada al ejecutar el programa es la salida esperada. Los requerimientos son analizados y catalogados en el Inventario de Pruebas Si no es posible realizar el diseño de las pruebas a partir de los requerimientos se trabaja junto con desarrolladores y cliente en mejorar los requerimientos existentes Se explora versiones anteriores del producto Estudio incremental de los requerimientos en cada ciclo Tesis de Maestría en Informática 9
Etapas del Proceso de Testing Tesis de Maestría en Informática 10
Roles Equipo de testing: Líder del Proyecto de Testing Dirige el proyecto de testing. Diseñador Diseña los casos de prueba Tester Cliente Ejecuta los casos de prueba y reporta los resultados Quien desarrolla el producto Quien compra el producto Desarrollador (Contraparte técnica) Tesis de Maestría en Informática 11
Estudio Preliminar Objetivo: Definir alcance y cronograma para las pruebas Cliente, Líder de Proyecto Actividades y Entregables Tesis de Maestría en Informática 12
Estudio Preliminar Salidas: Propuesta de Servicio Alcance de las Pruebas Agenda Cotización Acuerdo de Confidencialidad Tesis de Maestría en Informática 13
Planificación Objetivo: Planificar el proyecto de prueba Tesis de Maestría en Informática 14
Planificación Tesis de Maestría en Informática 15
Planificación Actividades y Entregables Tesis de Maestría en Informática 16
P8 - Definición del Proceso de Un incidente puede ser: un defecto del producto una mejora a realizar o una observación El sistema de seguimiento de incidentes permite al equipo de testing: reportar administrar analizar los incidentes reportados Incidentes y la tendencia de los mismos en cada ciclo de prueba Tesis de Maestría en Informática 17
Ciclos de Prueba Objetivo: Generar y ejecutar las pruebas planificadas para el ciclo Tesis de Maestría en Informática 18
Seguimiento del Ciclo Objetivo: Planificación, seguimiento y control del ciclo Cliente, Líder de Proyecto Actividades y Entregables Tesis de Maestría en Informática 19
Seguimiento del Ciclo Tesis de Maestría en Informática 20
Configuración del Entorno Objetivo: Configurar el ambiente de pruebas, separando los ambientes de desarrollo y testing Actividades y Entregables Entorno de trabajo en el cliente en el laboratorio del CES en laboratorios asociados Tesis de Maestría en Informática 21
Diseño de las Pruebas Objetivo: Diseñar los casos de prueba a partir de la especificación del producto Cliente, Desarrollador, Diseñadores Actividades y Entregables Tesis de Maestría en Informática 22
Diseño de las Pruebas Tesis de Maestría en Informática 23
D1 - Diseño de los casos de Técnicas de Caja Negra Incluye: Diseñar las pruebas Identificar los datos de prueba Matriz de trazabilidad prueba Conocer qué casos de prueba cubren qué elementos de prueba Tesis de Maestría en Informática 24
Ejecución de las Pruebas Objetivo: Contrastar el comportamiento esperado del producto con su comportamiento real Tester, Cliente, Desarrolladores Actividades y Entregables Tesis de Maestría en Informática 25
Ejecución de las Pruebas Tesis de Maestría en Informática 26
Evaluación Objetivo: Evaluar y archivar el proyecto de prueba Actividades y Entregables Tesis de Maestría en Informática 27
Evaluación Tesis de Maestría en Informática 28
Caso de Estudio Aplicación de Gestión Lleva varios años en producción Existían dos versiones de la aplicación en clientes distintos Unificación en una sola versión Cliente es el gerente de desarrollo Documentación Manual de usuario sin actualizar Estudio Preliminar 3 reuniones con el cliente Tesis de Maestría en Informática 29
Etapa: Planificación Plan de Pruebas Alcance para los Ciclos Proceso de Incidentes Bugzilla Tesis de Maestría en Informática 30
Etapa: Ciclo de Prueba 1 S1 Planificación del Ciclo Tesis de Maestría en Informática 31
Etapa: Ciclo de Prueba 1 Principales desviaciones P2 Revisión de Requerimientos, D1-Diseño de las pruebas y D2 Validación de los Casos de Prueba llevaron dos semanas más E2 Ejecución de las Pruebas, E3-Testing Exploratorio y E4-Reporte de Incidentes llevaron una semana más de lo planificado Tesis de Maestría en Informática 32
Etapa: Ciclo de Prueba 2 Atraso en la nueva versión 2 semanas para comenzar el Diseño 5 semanas para comenzar la Ejecución La nueva versión unifica dos versiones existentes de la aplicación S1 Planificación del Ciclo Pruebas de regresión: Ejecutar 42 casos de prueba Tesis de Maestría en Informática 33
Etapa: Ciclo de Prueba 2 Tesis de Maestría en Informática 34
Etapa: Evaluación Encuesta de satisfacción del cliente Evaluación del Proyecto e Informe Final Funcionalidades, Casos e Incidentes 205 106 18 38 57 25 8 8 42 16 34 79 Ciclo 1 Ciclo 2 Regresión Total Cant. Funcionalidades Cant. Casos de Prueba Cant. Incidentes Cantidad Incidentes por Tipo 32 20 20 21 10 7 1 7 12 13 5 3 1 0 0 6 Ciclo 1 Ciclo 2 Regresión Total Funcional - Implementación Incorrecta Interfaz de Usuario Mensajes erróneos y Falta de Mensaje. Tesis de Maestría en Informática Validación faltante o incorrecta 35
Etapa : Evaluación Cantidad Incidentes por Criticidad 33 18 14 3 2 3 4 2 0 Ciclo 1 Ciclo 2 Regresión Alta Media Baja Ciclo 2 12% Ciclo 2 12% Ciclo 2 - Regresión 13% 16% 16% 0% Alta 72% 72% 87% Media Baja Tesis de Maestría en Informática 36
Conclusiones ProTest permitió realizar un proyecto de prueba que resultó de valor para quién contrató el servicio Las características del proceso resultaron una guía útil Aspectos positivos de comunicación Colaboración del cliente para priorizar y validar Plan de Pruebas Informes de Avance Sistema de seguimiento de incidentes web Tesis de Maestría en Informática 37
Ajustes Realizados Planificación Mejora en las mediciones para mejorar las estimaciones Se agregan elementos PSP Mejoras en la forma en como se reporta el esfuerzo Tiempo de ejecución de las pruebas para mejorar planificación de pruebas de regresión Mejoras en las mediciones realizadas Cambios en nombre de actividades y momento en que se realizaban Tesis de Maestría en Informática 38
Mediciones usadas Tesis de Maestría en Informática 39
Documentación y Administración de ProTest La documentación del Proceso debe estar: Disponible a todos los miembros de la organización En un formato imprimible Herramienta DeVeloPro Se definieron los requerimientos que debía cumplir Seguimiento de su desarrollo cumpliendo el rol de cliente Validación de los distintos prototipos Un grupo de estudiantes de PIS desarrolló esta herramienta El sitio web de ProTest fue generado automáticamente con la herramienta DeVeloPro Tesis de Maestría en Informática 40
DeVeloPro Tesis de Maestría en Informática 41
Documentación de ProTest Tesis de Maestría en Informática 42
Conclusiones ProTest modela las etapas de un proyecto de pruebas Guía útil para el equipo de prueba Usado actualmente en el Laboratorio de Testing Funcional del CES Documentado con DeVeloPro Tesis de Maestría en Informática 43
Trabajo a Futuro Probarlo en un contexto donde el cliente sea quien compra el producto Definir un proceso común a ambos laboratorios del CES. Contar con datos históricos resultado de las mediciones introducidas para realizar las actividades de ProTest A partir de estos datos se espera mejorar las estimaciones Extender ProTest para la automatización de pruebas funcionales Instrumentación del Proceso Uso de herramientas que ayuden en todo el proceso de pruebas Tesis de Maestría en Informática 44
Gracias por su atención Preguntas? PEDECIBA informática Instituto de Computación (InCo) Facultad de Ingeniería Universidad de la República. Montevideo, Uruguay