Post on 28-Jun-2015
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!