Clase 05b pruebas introduccion

Post on 28-Jun-2015

319 views 1 download

Tags:

Transcript of 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

2

¿qué es unaprueba de software?

3

Pruebas de Software

4

¿Qué es una Prueba?

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

Manejador de la Prueba(Test Driver)

5

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

¿qué es una prueba “automatizada”?

6

¿quién pruebael software?

7

¿quién?

¿desarrolladores / programadores o un equipo separado de pruebas?

8

¿quién prueba?

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

9

tiposde pruebas de software

(técnicas)

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

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

12

¿cómo se seleccionan los valores de entrada?

(para las pruebas caja negra)

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

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

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

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

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

18

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

bajo prueba?

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

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

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/

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

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)

24

Métodos / Procesos / Técnicas

proceso de pruebas /

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

Lámina 40-42

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

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

27

Gracias

¡Gracias!