análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · análisis y...

35
Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea [email protected] Mayo 3, 2013

Upload: others

Post on 26-May-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

Análisis y modelación de sistemas de software

4. Pruebas

Blanca A. Vargas Govea [email protected]

Mayo 3, 2013

Page 2: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

2

Contenido

● Introducción a las pruebas de software

Page 3: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

3

Introducción a las pruebas de software¿Cómo pruebas tu software?

Page 4: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

4

Pruebas (testing)

● Proceso de encontrar defectos en elementos de software como diagramas UML o código.

● Un defecto es un error que hace que el sistema falle.

Page 5: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

5

¿Cómo funciona?

● Consiste en utilizar un programa con diferentes combinaciones de entradas para detectar defectos.

● Testing muestra solamente la presencia de defectos, no su ausencia.

¿0 fallas en tus pruebas = ausencia de defectos?

Page 6: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

6

¿Puedes garantizar la ausencia de defectos?

● El número de combinaciones posibles generalmente crece exponencialmente con el tamaño del software

● Errores malintencionados

● Secuencias que activan errores

Page 7: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

7

No es posible probar que un programa funcionará correctamente para todas las secuencias de entrada

imaginables

Page 8: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

8

¿Qué son las técnicas de pruebas de software?

● Son procedimientos para seleccionar ó diseñar pruebas– basados en un modelo

funcional o estructural del software

– exitosas para encontrar fallas

Page 9: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

9

¿Qué son las técnicas de pruebas de software?

● Son métodos o formas de aplicar estrategias de detección de defectos.

● Las estrategias de detección de defectos son teorías acerca de– ¿cómo restringir el número

de pruebas necesarias?

– ¿Cómo lograr cobertura en las pruebas?

– -¿Cómo encontrar cierto tipo de defectos?

Page 10: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

10

¿Por qué son necesarias las pruebas?

● Disminuyen el número de pruebas necesarias– Deben ser un sub-conjunto de todas las pruebas.– El sub-conjunto debe tener una alta probabilidad de

detectar fallas.

● Se necesitan métodos sistemáticos que ayuden a seleccionar los casos de prueba de forma inteligente.

Page 11: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

11

¿Por qué son necesarias las pruebas?

● Que distintas personas tengan las mismas probabilidades de encontrar las fallas.– La idea es tener independencia de las habilidades personales

del tester.

● Pruebas efectivas: encontrar más fallas.– Enfocar la atención en tipos específicos de fallas.

– Saber que se está probando lo correcto.

● Pruebas eficientes: encontrar fallas con menos esfuerzo.– Evitar pruebas redundantes.

– Las técnicas sistemáticas son medibles.

Page 12: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

12

Clasificación tradicional de técnicas de pruebas

Juha Itkonen SoberIT - slides

Page 13: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

13

Tipos de pruebas

Estructural Funcional

● El tester examina la estructura interna del programa y la lógica.

● Caja Blanca.

● El tester prueba el programa con base en las salidas esperadas. No conoce la estructura interna.

● Caja Negra.

Page 14: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

14

Niveles de pruebas

1. Unitarias

3. del Sistema

2. de Integración

4. de Aceptación

5. de Regresión

6. Beta

Stress testing

Performance

Usabilidad

Page 15: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

15

1. Pruebas unitarias

● Es la prueba de software que se hace generalmente en una clase o componente, una función.

● Documentos: código, diseño de bajo nivel.

● Tipo: Caja Blanca.

● Testers: desarrolladores.

Page 16: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

16

2. Pruebas de Integración

● Los componentes de software son combinados y probados para evaluar la integración entre ellos.

● Documentos: diseño de bajo y alto nivel

● Tipo: Caja negra/Caja Blanca.

● Testers: desarrolladores.

Page 17: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

17

3. Pruebas del Sistema

● El sistema se prueba como un todo para evaluar si cumple con los requerimientos.

● Documentos: diseño de alto nivel, especificación de requerimientos.

● Tipo: Caja negra.

● Testers: desarrolladores.

Page 18: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

18

3.1 Stress testing

● Se evalúa el sistema más allá de los límites de sus especificaciones.

● Se está desarrollando un sistema para cajas registradoras. Un requerimiento dice que se podrán operar simultáneamente 30 cajas. Se ejecutan pruebas automáticas con 34 cajas durante 12 horas contínuas para ver si el sistema excede sus requerimientos.

Page 19: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

19

3.2 Performance

● Se evalúa si el sistema o componente cumple con las especificaciones.

● En la prueba de cajas registradoras el requerimiento decía que la búsqueda de precios la completan en menos de 1 segundo. Las pruebas evalúan si el sistema cumple aún con 30 cajas operando simultáneamente.

Page 20: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

20

3.3 Usabilidad● Evalúa el alcance en el cual

el usuario puede aprender a operar, preparar entradas e interpretar salidas de un sistema o componente.

● Se selecciona un grupo de personal de caja para hacer pruebas de usabilidad. Estas pruebas no son automáticas.

Page 21: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

21

4. Pruebas de Aceptación

● Determinan si el sistema satisface o no el criterio de aceptación establecido por el usuario.

● Documentos: especificación de requerimientos.

● Tipo: Caja Negra.

● Testers: aunque el cliente es el que evalúa si se acepta o no, los desarrolladores son responsables de realizar las pruebas previamente.

Page 22: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

22

5. Pruebas de Regresión

● Probar contínuamente el sistema o componente para verificar que las modificaciones no han causado efectos inesperados.

● Documentos: cambios en la documentación, diseño de alto nivel.

● Tipo: Caja Blanca/Caja Negra.

● Testers: desarrolladores.

Page 23: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

23

6. Beta

● Cuando se tiene una versión completa o muy cercana se da a usuarios beta que reportarán los errores.

● Documentos: ninguno.

● Tipo: Caja Negra.

● Testers: usuarios beta.

Page 24: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

24

Los tipos de pruebas en los seis niveles

Caja Blanca Caja Negra

Page 25: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

25

Testing basado en estados

Page 26: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

26

Enfoque: máquina de estados

Se define un conjunto de estados para evaluar el comportamiento de la unidad comparando los estados actuales con los esperados

Page 27: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

27

Pasos

1. Construir el diagrama de estados para la unidad que se va a probar.

2. Definir estados y transiciones. Para una clase, las transiciones ocurren generalmente al invocar un método.

3. Se seleccionan valores de prueba para cada estado.

4. Un conjunto de prueba consiste en definir escenarios que pasen por un camino dado del diagrama.

Page 28: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

28

Cobertura

● El objetivo es – Cubrir los estados al menos una vez– Cubrir las transiciones válidas al menos una vez– Disparar las transiciones inválidas al menos una vez

● El objetivo no es– Cubrir todas las combinaciones de caminos

Page 29: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

29

● Los caminos

1-2-3-5-6-7-11-16

1-2-4-5-6-8-9-11-16

serían suficientes para probar puesto que tocan todos los estados y todas las transiciones

● Combinaciones como

1-2-4-5-6-7-11-16

no son necesarias

Page 30: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

30

Page 31: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

31

Estados: Cerrado (C), Abierto (A), Procesando(P), Bloqueado (B)Eventos: clave-válida, clave-inválida

max = 3

Caso Camino Evento equivocaciones

T1 C-A clave-válida 0

T2 C-P-A clave-inválida 1

T3 C-P-B clave-inválida 4

● Se pasa por todos los estados● Se pasa por todas las tran-● siciones● Se prueba el valor inválido

Page 32: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

32

Caso Camino Evento equivocaciones

Resultado esperado

Resultadoactual

Estatus

T1 C-A clave-válida 0 Abierto Abierto Pass

T2 C-P-A clave-inválida

1 Abierto Abierto Pass

T3 C-P-B clave-inválida

4 Bloqueado Abierto Fail

Pruebas

Page 33: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

33

Actividad 26 - Equipo

● De su proyecto, seleccionar las unidades de software a evaluar.

● Construir la máquina de estados (es posible que ya la tengan).

● Definir los casos de prueba, construir la tabla (como la del slide 32).

Page 34: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

34

Tarea 26 - equipo

● A partir de la Actividad 26, ejecutar las pruebas y elaborar un reporte que incluya

– Máquina de estados a evaluar (si ya existe, poner la referencia).

– Tabla de casos de prueba con el estatus (Pass/Fail)

– Agregar al reporte final del proyecto.● Entrega de reporte final: Martes 7 de Mayo

Page 35: Análisis y modelación de sistemas de softwareblancavg.com/tc2004ma/s26ma.pdf · Análisis y modelación de sistemas de software 4. Pruebas Blanca A. Vargas Govea vargasgovea@itesm.mx

35

Referencias● Ballena Photo Credit: <a

href="http://www.flickr.com/photos/82882348@N00/2636021346/">somenice</a> via <a href="http://compfight.com">Compfight</a> <a href="http://creativecommons.org/licenses/by-nc/2.0/">cc</a>

● Errores Photo Credit: <a href="http://www.flickr.com/photos/11821713@N00/3647655051/">Zanthia</a> via <a href="http://compfight.com">Compfight</a> <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/">cc</a>