tesis de maestría en informática - ces.com.uy · tesis de maestría en informática 3 centro de...

45
PEDECIBA informática Instituto de Computación (InCo) Facultad de Ingeniería Universidad de la República. Montevideo, Uruguay Proceso de Testing Funcional Independiente Tesis de Maestría en Informática Beatriz Pérez Lamancha Setiembre 2006

Upload: ngohanh

Post on 19-Sep-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

PEDECIBA informáticaInstituto de Computación (InCo)

Facultad de IngenieríaUniversidad de la República.

Montevideo, Uruguay

Proceso de Testing Funcional IndependienteTesis de Maestría en Informática

Beatriz Pérez Lamancha

Setiembre 2006

Tesis de Maestría en Informática 2

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 3

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 4

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 5

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 6

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 7

Testing basado en los riesgos del producto

� No es posible probar todo• ¿qué probar?

� 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 8

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 9

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 10

Etapas del Proceso de Testing

Tesis de Maestría en Informática 11

Roles

� Equipo de testing: • Líder del Proyecto de Testing

�Dirige el proyecto de testing.

• Diseñador�Diseña los casos de prueba

• Tester�Ejecuta los casos de prueba y reporta los resultados

� Cliente• Quien desarrolla el producto• Quien compra el producto

� Desarrollador (Contraparte técnica)

Tesis de Maestría en Informática 12

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 13

Estudio Preliminar

� Salidas: • Propuesta de Servicio

�Alcance de las Pruebas�Agenda�Cotización�Acuerdo de

Confidencialidad

Tesis de Maestría en Informática 14

Planificación

� Objetivo: Planificar el proyecto de prueba

Tesis de Maestría en Informática 15

Planificación

Tesis de Maestría en Informática 16

Planificación

� Actividades y Entregables

Tesis de Maestría en Informática 17

P8 - Definición del Proceso de Incidentes� 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 • y la tendencia de los mismos en cada ciclo de prueba

Tesis de Maestría en Informática 18

Ciclos de Prueba

� Objetivo: Generar y ejecutar las pruebas planificadas para el ciclo

Tesis de Maestría en Informática 19

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 20

Seguimiento del Ciclo

Tesis de Maestría en Informática 21

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 22

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 23

Diseño de las Pruebas

Tesis de Maestría en Informática 24

D1 - Diseño de los casos de prueba

� Técnicas de Caja Negra � Incluye:

• Diseñar las pruebas

• Identificar los datos de prueba• Matriz de trazabilidad

�Conocer qué casos de prueba cubren qué elementos de prueba

Tesis de Maestría en Informática 25

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 26

Ejecución de las Pruebas

Tesis de Maestría en Informática 27

Evaluación

� Objetivo: Evaluar y archivar el proyecto de prueba

� Actividades y Entregables

Tesis de Maestría en Informática 28

Evaluación

Tesis de Maestría en Informática 29

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 30

Etapa: Planificación

� Plan de Pruebas� Alcance para los Ciclos

� Proceso de Incidentes• Bugzilla

Tesis de Maestría en Informática 31

Etapa: Ciclo de Prueba 1

� S1 – Planificación del Ciclo

Tesis de Maestría en Informática 32

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 33

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 34

Etapa: Ciclo de Prueba 2

Tesis de Maestría en Informática 35

Etapa: Evaluación

� Encuesta de satisfacción del cliente� Evaluación del Proyecto e Informe Final

Funcionalidades, Casos e Incidentes

18 8 8

34

106

5742

205

3825 16

79

Ciclo 1 Ciclo 2 Regresión Total

Cant. Funcionalidades Cant. Casos de Prueba Cant. Incidentes

Cantidad Incidentes por Tipo

107

3

20

7

12 13

20

1 0

21

1

5

0

6

32

Ciclo 1 Ciclo 2 Regresión Total

Funcional - Implementación IncorrectaInterfaz de UsuarioMensajes erróneos y Falta de Mensaje.Validación faltante o incorrecta

Tesis de Maestría en Informática 36

Etapa : Evaluación

Cantidad Incidentes por Criticidad

3 3 224

0

33

18

14

Ciclo 1 Ciclo 2 Regresión

Alta Media Baja

Ciclo 2

12%

16%

72%

Ciclo 2

12%

16%

72%

Ciclo 2 - Regresión

13%

0%

87%

Alta

Media

Baja

Tesis de Maestría en Informática 37

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 38

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 39

Mediciones usadas

Tesis de Maestría en Informática 40

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 41

DeVeloPro

Tesis de Maestría en Informática 42

Documentación de ProTest

Tesis de Maestría en Informática 43

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 44

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

PEDECIBA informáticaInstituto de Computación (InCo)

Facultad de IngenieríaUniversidad de la República.

Montevideo, Uruguay

Gracias por su atención

¿Preguntas?