Download - Clase 05b pruebas introduccion

Transcript
Page 1: Clase 05b pruebas introduccion

1

Pruebas de Software(to err is human but to really foul things up requires a computer)

Universidad de los AndesDemián Gutierrez

Febrero 2013

Page 2: Clase 05b pruebas introduccion

2

¿qué es unaprueba de software?

Page 3: Clase 05b pruebas introduccion

3

Pruebas de Software

Page 4: Clase 05b pruebas introduccion

4

¿Qué es una Prueba?

estructura general de una pruebaHay Frameworks como JUnit que facilitan escribir pruebas

Manejador de la Prueba(Test Driver)

Page 5: Clase 05b pruebas introduccion

5

¿qué es una prueba “ad-hoc”?

¿qué es una prueba “automatizada”?

Page 6: Clase 05b pruebas introduccion

6

¿quién pruebael software?

Page 7: Clase 05b pruebas introduccion

7

¿quién?

¿desarrolladores / programadores o un equipo separado de pruebas?

Page 8: Clase 05b pruebas introduccion

8

¿quién prueba?

aunque los métodos ágiles han cambiado un poco esta visión

Page 9: Clase 05b pruebas introduccion

9

tiposde pruebas de software

(técnicas)

Page 10: Clase 05b pruebas introduccion

10

Pruebas De Defectos

Caja Negra(entradas vs

salidas, sin vercódigo)

Caja Blanca(viendo código,

en base alcódigo)

De Regresión(Automatizadas)

Pruebas de Software

Page 11: Clase 05b pruebas introduccion

11

Salida?Entrada

Se desconoce cómo funciona internamentela unidad de software bajo prueba, la idea es aplicar

un conjunto de entradas y obtener un conjunto de salidassi las salidas concuerdan con las especificaciones

entonces la prueba pasa

Pruebas Caja Negra

Page 12: Clase 05b pruebas introduccion

12

¿cómo se seleccionan los valores de entrada?

(para las pruebas caja negra)

Page 13: Clase 05b pruebas introduccion

13

¿como se seleccionan los valores de entrada?

(para las pruebas caja negra)

valores representativos del conjuntode entradas posibles

valores fronteras

valores o combinaciones de valores conflictivos

Page 14: Clase 05b pruebas introduccion

14

Pruebas De Defectos

Caja Negra(entradas vs

salidas, sin vercódigo)

Caja Blanca(viendo código,

en base alcódigo)

De Regresión(Automatizadas)

Pruebas de Software

Page 15: Clase 05b pruebas introduccion

15

Salida

while ((line = rd.readLine()) != null) { line = line.trim();

if (line.startsWith("#")) { continue; } if (line.equals("")) { continue; }

String[] values = line.split("(\\s)+");

int r = Integer.parseInt(values[0]); int g = Integer.parseInt(values[1]); int b = Integer.parseInt(values[2]); colorList.add(new Color(r, g, b));}

Entrada

el conocimiento del código define las pruebas y las entradas

las pruebas se diseñan de manera que se garanticela cobertura de cierta cantidad de código

Pruebas Caja Blanca

Page 16: Clase 05b pruebas introduccion

16

Pruebas De Defectos

Caja Negra(entradas vs

salidas, sin vercódigo)

Caja Blanca(viendo código,

en base alcódigo)

De Regresión(Automatizadas)

Pruebas de Software

Page 17: Clase 05b pruebas introduccion

17

De Regresión

pruebaprueba pruebapruebaprueba prueba prueba

pruebaprueba pruebapruebaprueba

prueba pruebapruebaprueba

La idea es contar con un conjunto de pruebas automatizadas que formen una “red de seguridad”y permitan verificar “con un sólo click” que el sistema está funcionando correctamente y que no se ha roto nada de forma inesperada

Page 18: Clase 05b pruebas introduccion

18

¿pueden las pruebas mostrar la ausencia totalde errores en el software

bajo prueba?

Page 19: Clase 05b pruebas introduccion

19

Pruebas de Software

Las pruebas pueden mostrarla presencia de errores,

pero no su ausencia, de hecho,no es posible demostrar la ausencia

de errores en un sistema

Dijkstra

Esto, curiosamente, tiene mucho que ver con los conceptos dedecidibilidad y computabilidad

Page 20: Clase 05b pruebas introduccion

20

Pruebas de Software

las pruebas permiten detectar errores

luego...

estos errores de deben registrar (bugtracking)

se deben corregir(depuración)

y se les debe hacer seguimiento(bugtracking)

aunque el seguimiento no se hace sólo al final, sino al lo largo de todo el proceso

Page 21: Clase 05b pruebas introduccion

21

y sin embargo...probar es mucho más que encontrar bugs, probar es

generar conocimiento(aprender sobre

el sistema bajo prueba)

Agile Testing Quadrantshttp://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/

Page 22: Clase 05b pruebas introduccion

22

¿Costos de las Pruebas?

Las pruebas de software representan la actividad más extenuante y costosa del desarrollo de software, se estima que:

30% - 50% de los recursos requeridos en un proyecto de desarrollo de software son asignados a las pruebas

60% del tiempo de los desarrolladores es utilizado en la corrección de errores (Capers Jones, 1996)

Curso IS-412 Unidad 1 V2.0.ppt CEISOFT/BIOSOFT

Page 23: Clase 05b pruebas introduccion

23

¿Costos de las Pruebas?

Curso IS-412 Unidad 1 V2.0.ppt CEISOFT/BIOSOFT

sin embargo...Un estudio realizado por el Instituto de Estándares de EEUU (NIST) en el 2002

encontró que:

El costo de realizar inadecuadamente pruebas de software oscila entre 22-60 millardos de dólares por año (sólo en EEUU)

Se ha estimado que el costo ocasionado por las fallas de software se puede

reducir en más de un tercio (1/3) mejorando las pruebas (NIST, 2002)

Page 24: Clase 05b pruebas introduccion

24

Métodos / Procesos / Técnicas

proceso de pruebas /

plan de pruebasCurso IS-412 Unidad 1 V2.0.ppt

Lámina 40-42

Page 25: Clase 05b pruebas introduccion

25

● Las actividades requeridas para llevar a cabo el proceso de pruebas

se representan mediante un modelo de procesos

El Modelo de Procesos de Prueba de Pfleeger

(1998)

Concepto: El proceso de pruebas

Page 26: Clase 05b pruebas introduccion

26

● Plan de Pruebas– Es un documento que describe en detalle lo siguiente:

● Los objetivos de las pruebas● Los niveles y tipos de pruebas que deberán realizarse● Los criterios de terminación de cada tipo de prueba● El modelo de proceso que se seguirá para ejecutar las pruebas● El cronograma de actividades de pruebas● Las responsabilidades de los miembros del grupo de pruebas● Las técnicas y estrategias que se emplearán● Los recursos requeridos para ejecutar las pruebas● Los documentos que deben producirse durante las pruebas● Los procedimientos de pruebas: casos de pruebas

Concepto: El plan de pruebas

Page 27: Clase 05b pruebas introduccion

27

Gracias

¡Gracias!