Sie sind auf Seite 1von 35

Automatizacin y gestin de pruebas del software

Macario Polo Usaola Grupo Alarcos Departamento de Tecnologas y Sistemas de Informacin Universidad de Castilla-La Mancha Macario.Polo@uclm.es
1/51

Contenidos
Introduccin Generacin de casos de prueba Metodologas/modelos de proceso
MTPF TMAP

2/51

Objetivo de las pruebas


Encontrar errores en el SUT (System Under Test) Para ello, intentamos ejecutar el SUT de todas las maneras posibles. De alguna manera, tenemos que poder medir cunto sistema se ha ejecutado Conceptos importantes:
Criterios de cobertura Valores de prueba (test data) Ejecucin de servicios Combinacin de valores Existen, adems, diferentes niveles de prueba

3/51

Niveles de prueba

4/51

Pruebas de desarrollo y de sistema


Caja blanca

Caja negra

5/51

Criterios de cobertura
Sentencias Decisiones Condiciones Todos los usos Caminos Funciones Llamadas Bucles Mutantes Casos de uso Escenarios Carga mxima Valores de prueba

6/51

Diseo de pruebas: valores de prueba o valores interesantes


Clases de equivalencia Valores lmite Conjetura de errores Experiencia del tester

Se proponen valores y, luego, se mezclan o combinan de alguna manera


7/51

Lneas de automatizacin
Tareas de generacin de casos
A partir del cdigo A partir del conocimiento del programa A partir de una especificacin formal

Tareas mecnicas
Ejecucin y control Facilidades de reejecucin

Tareas administrativas
Registro de especificaciones Obtencin de informes de resultados
8/51

Generacin de casos
Los valores de prueba se combinan para obtener buenos casos de prueba Estrategias de combinacin:
Todas las combinaciones (all combinations) Each choice Pairwise n-wise Random Antirandom
9/51

Estrategias de combinacin (I)


Supongamos {0, 1, 2, 3, 4, 5, 6} como valores de prueba para los tres lados del tringulo All combinations: 7x7x7=343 casos de prueba:
(0,0,0), (1,1,1), (1,2,4), (2,2,2),

10/51

Estrategias de combinacin (II)


Each choice: Se satisface cuando cada valor interesante de cada parmetro se incluye, al menos, en un caso de prueba.
(0, 1, 2) con este, en los prximos casos no sera necesario probar con el 0 en la primera posicin, ni con el 1 en la segunda, ni con el 2 en la tercera (1, 0, 2) (2, 3, 4) (2, 4, 3) (3, 5, 0) (4, 2, 1) (3, 0, 5) este caso vuelve a emplear el 0 en la segunda posicin; sin embargo, es necesario utilizarlo para probar con el 5 en la tercera posicin (5, 0, 1)

11/51

Estrategias de combinacin (III)


Pairwise (cobertura de pares de valores). Se utiliza porque muchos errores aparecen gracias a la interaccin de dos valores de parmetros. El criterio requiere que cada posible par de valores interesantes de cualesquiera dos parmetros sea incluido en algn caso de prueba.
12/51

Estrategias de combinacin (y IV)


Random: se generan casos de prueba aleatoriamente. Puede utilizarse algn tipo de distribucin de probabilidad. Antirandom: se elige un caso de prueba al azar y se incluye en el suite; se aade el que sea ms diferente; se aade el que sea ms diferente a los dos ya elegidos; luego, el que sea ms diferente a los tres; luego
13/51

Demostracin
Pgina de testing combinatorio:
http://alarcosj.esi.uclm.es/CTWeb

14/51

Redundancia de casos de prueba (I)


En el ejemplo del tringulo, probablemente (3,3,3) sea redundante respecto de (2,2,2) La generacin y ejecucin de pruebas tiene un coste, por lo que los casos redundantes son molestos

15/51

Redundancia de casos de prueba (II)


Un caso de prueba puede ser redundante respecto de un criterio de cobertura, pero no respecto de otro:
if (i+j<=k || j+k<=i || i+k<=j) { tipo=Triangulo.NO_TRIANGULO; return tipo; } else { tipo=Triangulo.ESCALENO; return tipo; }

(1,2,3) y (2,4,2) son redundantes respecto de sentencias, pero no respecto de condiciones

16/51

Redundancia de casos de prueba (y III)


Los casos de prueba redundantes se eliminan bien durante la ejecucin, bien despus de ejecutarlos todos, con un algoritmo voraz. As nos quedamos con un conjunto equivalente y reducido, para las pruebas de regresin

17/51

El Minimal Test Practice Framework (I)


Proceso de mejora para PYMEs. Se estructura en cinco tipos de prcticas y tres niveles de madurez. El objetivo del MTPF es pasar de una estrategias de pruebas ad hoc a un proceso de pruebas claro y estructurado.

18/51

El Minimal Test Practice Framework (y II)

19/51

Metodologa TMAP
Business Driven Test Management Descripcin completa de todo el proceso de pruebas

Adaptable

Kit de herramientas

20/51

1 Formular la misin y recolectar objetivos de las pruebas Factores crticos de xito, cambios, requisitos, procesos de negocio, etc.

BDTM
El elemento clave es determinar qu vamos a probar y con qu profundidad

2 Determinar las categoras de riesgo

3 Determinar cobertura alta o baja 4 5 Asignar tcnicas de prueba

Cliente

Resultados, riesgos, tiempo, dinero Especificar casos de prueba

6 Ejecutar las pruebas

21/51

BDTM
Da control del proceso de pruebas al cliente Utiliza el lenguaje del cliente El esfuerzo de pruebas est relacionado con los riesgos del producto Proporciona la cobertura adecuada en cada lugar Da visibilidad a los resultados de las pruebas
22/51

Kit de herramientas

23/51

Kit de herramientas
El kit de herramientas incluye:
Tcnicas (cmo testear) Infraestructura (dnde y con qu testear) Organizacin (quin testea)

24/51

Kit.Tcnicas
Anlisis de riesgos del producto Estimacin de esfuerzos Gestin de defectos Mtricas Diseo de pruebas Revisin

25/51

Kit.Infraestructura
Entorno de pruebas
Entorno fsico DTAP (desarrollo; test; aceptacin; produccin) Elementos auxiliares: BB.DD.; SS.OO.; interfaces; datos; aplicacin Requisitos del entorno: seguridad, estndares

Herramientas de test Lugares de trabajo


26/51

Kit.Organizacin
Poltica de pruebas Organizacin permanente de pruebas Organizacin de pruebas en proyectos Profesionales de pruebas/Roles

27/51

Descripcin completa de todo el proceso de pruebas

28/51

Descripcin completa de todo el proceso de pruebas


Fases de TMAP:
Mster plan de pruebas, gestin total del proceso de pruebas Pruebas de aceptacin y sistema Pruebas de desarrollo Procesos de soporte

29/51

Descripcin completa de todo el proceso de pruebas


Las fases anteriores:
Son aplicables a todos los niveles de pruebas Permiten coordinar y sincronizar los diferentes niveles de pruebas Transmiten tareas y responsabilidades entre grupos involucrados Dividen el proceso de test en fases, actividades y productos

30/51

Mster plan de pruebas, gestin total del proceso de pruebas

31/51

Fase de Planificacin

32/51

Planificacin.Actividades
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Establishing the assignment (Establecer la misin) Understanding the assignment (Entender la misin) Determining the test basis (Determinar la base de test) Analysing the product risks (Analizar los riesgos del producto) Determining the test strategy (Determinar la estrategia de pruebas) Estimating the effort (Estimar esfuerzo) Determining the planning (Planificar el proyecto) Allocating test units and test techniques (Recolectar uds. y tcnicas) Defining the test products (Definir los productos de test) Defining the organisation (Definir la organizacin) Defining the infrastructure (Definir la infraestructura) Organising the management (Organizar la gestin) Determining the test project risks and countermeasures (Determinar riesgos y contramedidas) Feedback and consolidation of the plan (Realimentar y consolidar el plan) 33/51

Fase de Preparacin

34/51

Preparacin.Actividades
1. Collection of the test basis (Recolectar la base de test) 2. Creating checklists (Crear listas de comprobacin) 3. Assessing the test basis (Evaluar la base de test) 4. Creating the testability review report (Crear informe de testability)
35/51

Fase de Especificacin

36/51

Especificacin.Actividades
1. Creating test specifications (Crear las especificaciones de prueba) 2. Defining central starting point(s) (Definir situaciones iniciales) 3. Specifying the test object intake (especificar la prueba de humo)

37/51

Especificacin.Crear las especificaciones de prueba


Objetivo: definir los casos de prueba para cada unidad que se va a probar Mtodo:
Identificar situaciones de prueba Crear casos de prueba lgicos Crear casos de prueba fsicos Determinar las situaciones iniciales Definir el guin de pruebas (test script)

Tcnicas: diseo de pruebas Herramientas: gestin de defectos, de diseo de pruebas, de gestin de testware, de automatizacin, de rendimiento, de carga
38/51

Especificacin.Definir situaciones iniciales


Objetivo: definir una o ms situaciones iniciales del entorno de test para obtener o crear datos de prueba para las especificaciones de los casos de prueba Mtodo:
Establecer situaciones iniciales Identificar datos de prueba Aadir datos de prueba

Salida: descripcin de situaciones iniciales Tcnicas: no aplicable Herramientas: gestin de testware


39/51

Especificacin.Especificacin de la prueba de humo (object intake)


Objetivo: preparar la validacin del objeto de test, para asegurar que la ejecucin de las pruebas puede empezar lo antes posible (o sea, que el sistema por lo menos parezca que funciona) Mtodo:
Crear una lista de control para validar el objeto de prueba Definir el plan de la prueba de humo

Tcnicas: no aplicable Herramientas: gestin de testware, de datos, de diseo de pruebas, de ejecucin de pruebas

40/51

Fase de Ejecucin

41/51

Ejecucin.Actividades
1. Intake of the test object (Recepcin del objeto de pruebas) 2. Preparing the starting points (Preparacin de situaciones iniciales) 3. Executing the (re)tests (Ejecutar las pruebas) 4. Checking and assessing the test results (Comprobar y evaluar los resultados)
42/51

Fase de Finalizacin (Completion)

43/51

Finalizacin.Actividades
1. Evaluating the test process (Evaluacin del proceso de pruebas) 2. Preserving the testware (Conservacin del testware)

44/51

Finalizacin. Evaluacin del proceso de pruebas


Objetivo: aprender de la experiencia del proyecto e identificar las buenas prcticas que deben consolidarse y los puntos de mejora para el futuro Mtodo:
Reunin de equipo Realizacin de informe

Se obtiene un informe de evaluacin del proceso Tcnicas: Lista de control Evaluacin del proceso de pruebas

45/51

Finalizacin.Conservar el testware
Objetivo: transferir el testware para que sea usable en el futuro Mtodo:
Seleccionar el testware que se conservar Refinar, completar y asegurar su accesibilidad Transferir el testware

Se obtienen:
Testware Inventario de testware

Tcnicas: no aplicables
46/51

Fase de Control

47/51

Control.Actividades
1. 2. 3. 4. Management (Gestin) Monitoring (Seguimiento) Reporting (Informes) Adjusting (Reajustar)

48/51

Tcnicas de especificacin de pruebas

49/51

Qu es una Tcnica de Especificacin de Pruebas


Es un mtodo estandarizado para derivar casos de prueba a partir de una determinada test basis, de manera que se alcance una cobertura especfica Cobertura: ratio entre lo que puede ser probado y lo que se prueba realmente con los casos de prueba Caso de prueba: se utiliza para examinar si el sistema exhibe el comportamiento deseado bajo unas circunstancias bien determinadas.
50/51

Tcnica de Especificacin de Pruebas


Se utilizan en la Fase de Preparacin (tarea 2, Crear especificaciones de prueba):
Identificar situaciones de prueba Crear casos de prueba lgicos Crear casos de prueba fsicos Determinar las situaciones iniciales Definir el guin de pruebas (test script)

Permiten:
Implantar la estrategia de pruebas Detectar defectos de forma efectiva Reproducir las pruebas Disminuir la dependencia entre quien especifica y quien ejecuta Controlar calidad Transferir y mantener Planificar y controlar
51/51

Conceptos fundamentales

Situacin de prueba:
Situacin aislada bajo la cual el objeto de test muestra un comportamiento especfico que necesita ser probado Cada situacin ocurre por lo menos en un caso lgico

Caso lgico:
Describe en trminos lgicos las circunstancias en las que se examina el comportamiento del sistema. Se indican las situaciones de prueba que cubre este caso O sea, un caso lgico cubre una o ms situaciones 52/51 de prueba

Conceptos fundamentales

Caso fsico:
Elaboracin concreta de un caso lgico, con la asignacin de valores reales para las entradas y determinacin exacta del entorno O sea, que incluye: datos de entrada; configuracin del entorno; acciones; resultados esperados

Script:
Combina uno o ms casos fsicos

53/51

Relaciones

Cada situacin debe estar al menos en un caso Cada caso cubre una o ms situaciones Cada caso lgico se traduce a un caso fsico El script puede englobar varios casos fsicos

54/51

Relaciones

Cobertura: ratio entre lo que puede ser probado y lo que se prueba realmente con los casos de prueba
55/51

Ejemplo
Una tienda virtual:
Un pedido de ms de un libro Un pedido de exactamente un libro Si adems hay descuento cuando se supera un cierto umbral de precio total, tenemos: Calcular precio al pedir por encima del umbral Calcular precio al pedir por debajo del umbral Arriba tenemos cuatro situaciones de prueba.
56/51

Ejemplo
A partir de esas cuatro situaciones tenemos, p.ej., dos casos lgicos:
TC1: pedido de ms de un libro, pero por debajo del umbral TC2: pedido de un libro de precio mayor que el umbral

57/51

Ejemplo
Situaciones Un pedido de ms de un libro Un pedido de exactamente un libro Calcular precio al pedir por encima del umbral Calcular precio al pedir por debajo del umbral Casos lgicos TC1: pedido de ms de un libro, pero por debajo del umbral TC2: pedido de un libro de precio mayor que el umbral

58/51

Ejemplo
Casos fsicos:
Umbral: 50 Descuento: 10% Precios de tres libros: 18,50; 25,50; 65,00 TC1 (ms de un libro, por debajo de umbral):
Pedir libros 1 y 2 No esperamos descuento Precio del pedido: 44

TC2 (un libro, por encima);


Pedir libro 3 Esperamos 10% de descuento Precio del pedido: 58,50
59/51

Sobre la cobertura
Cobertura: ratio entre lo que puede ser probado y lo que se prueba realmente con los casos de prueba Tipo de cobertura: forma en la que se expresa la cobertura de las situaciones de prueba Ratio de cobertura: porcentaje de situaciones de prueba, segn el tipo de cobertura, que cubre la prueba
60/51

Tipos de cobertura importantes


Caminos Puntos de decisin Clases de equivalencia Pairwise Arrays ortogonales (otra forma de pairwise) Valores lmite CRUD Perfiles operacionales (simulacin del uso real del sistema) Perfiles de carga (simulacin de carga real del sistema en cuanto a usuarios y transacciones) Caminos correctos y caminos de fallo Listas de comprobacin

61/51

Cobertura de caminos
1 A 3

Situaciones cada camino individual (1,2,3,4,5,6,7) Nivel de cobertura: pasar una vez por cada camino:
Casos lgicos: 1-2-5-3-4-6 y 1-3-47

Nivel de cobertura: pares E/S de cada punto de decisin:


A: (1,2), (1,3), (5,2), (5,3) B: (2,4), (2,5), (3,4), (3,5) C: (4,6), (4,7)

62/51

Cobertura de caminos
1 A 3

A: (1,2), (1,3), (5,2), (5,3) B: (2,4), (2,5), (3,4), (3,5) C: (4,6), (4,7) A: (1,2), (1,3), (5,2), (5,3) Casos lgicos:
1-2-4-6 1-3-5-3-4-7 1-2-5-2-4-6
B: (2,4), (2,5), (3,4), (3,5) C: (4,6), (4,7)

Otra solucin:
7

A: (1,2), (1,3), (5,2), (5,3) B: (2,4), (2,5), (3,4), (3,5) C: (4,6), (4,7)

1-2-5-3-4-6 1-3-5-2-4-7

63/51

Cobertura de caminos
1 A 3

El nivel de profundidad (hemos visto 1 y 2), puede aumentarse a 3, 4, etc.


Para conseguirlo, se construiran las ternas, cuaternas, etc. De forma general: Nivel(n+1)=Nivel(n)+ 1 paso ms en el recorrido del proceso Ternas:
A: 1-2-4, 1-2-5, 1-3-4, 1-3-5, 5-2-4, 5-25, 5-3-4, 5-3-5 Etc.
64/51

Tabla-gua de tcnicas de diseo (I)


Tcnica Tablas de decisin Combinaciones de datos Comparacin elemental Conjetura de errores Testing exploratorio Ciclo de datos Tipo de cobertura MCC Clases equiv. con MCC o PW MCDC Test basis Condiciones individuales Cualquiera Pseudocdigo o espec. Estructuradas Cualquiera Cualquiera Matriz CRUD Reglas de integridad Caracterstica de calidad Funcionalidad detallada Funcionalidad detallada y general Funcionalidad detallada Varias Varias Func. General, conectividad, adecuacin 65/51

Depende CRUD y Decisiones

Tabla-gua de tcnicas de diseo (y II)


Tcnica Ciclo de procesos Tipo de cobertura Pares de caminos Test basis Descripcin estructurada de procesos Perfiles operacionales; perfiles de carga Especificaciones de E/S; reglas de negocio Especificaciones de E/S; descripciones de atributos Casos de uso Caracterstica de calidad Adecuacin

Vida real

Simulacin estadstica MCDC

Efectividad, conectividad, rendimiento Funcionalidad, validacin Funcionalidad, validacin, facilidad de uso Adecuacin, efectividad, 66/51 facilidad de uso

Prueba semntica

Prueba sintctica

Checklist

De casos de uso

Checklist

Mtricas (I)
Horas de test por fase y actividad Entregables Progreso de defectos Productividad:
Horas de test/defecto N de tests por hora N de especificaciones por hora N de defectos/script N de test/defecto Distribucin de horas por fase de TMAP N de test/PF N de test/KLOC Horas de test/PF o KLOC
67/51

Mtricas (y II)
N de horas/pgina de documentacin N de defectos/pgina de documentacin N de casos/pgina N de pginas/PF Porcentaje de defectos detectados

68/51

Contenidos
Introduccin Generacin de casos de prueba Metodologas/modelos de proceso
MTPF TMAP

69/51

Automatizacin y gestin de pruebas del software


Macario Polo Usaola Grupo Alarcos Departamento de Tecnologas y Sistemas de Informacin Universidad de Castilla-La Mancha Macario.Polo@uclm.es
70/51

Das könnte Ihnen auch gefallen