4. ¿Qué es una Prueba?
Manejador de la Prueba
(Test Driver)
estructura general de una prueba
Hay Frameworks como JUnit que facilitan escribir pruebas 4
5. ¿qué es una prueba “ad-hoc”?
¿qué es una prueba “automatizada”?
5
10. Pruebas de Software
Caja Negra
(entradas vs
salidas, sin ver
código)
Caja Blanca
(viendo código,
Pruebas De Defectos
en base al
código)
De Regresión
(Automatizadas)
10
11. Pruebas Caja Negra
Entrada
? Salida
Se desconoce cómo funciona internamente
la unidad de software bajo prueba, la idea es aplicar
un conjunto de entradas y obtener un conjunto de salidas
si las salidas concuerdan con las especificaciones
entonces la prueba pasa
11
13. ¿como se seleccionan los
valores de entrada?
(para las pruebas caja negra)
valores representativos del conjunto
de entradas posibles
valores fronteras
valores o combinaciones de valores
conflictivos
13
14. Pruebas de Software
Caja Negra
(entradas vs
salidas, sin ver
código)
Caja Blanca
(viendo código,
Pruebas De Defectos
en base al
código)
De Regresión
(Automatizadas)
14
15. Pruebas Caja Blanca
while ((line = rd.readLine()) != null) {
line = line.trim();
if (line.startsWith("#")) {
continue;
}
if (line.equals("")) {
continue;
Entrada } Salida
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));
}
el conocimiento del código define las
pruebas y las entradas
las pruebas se diseñan de manera que se garantice
la cobertura de cierta cantidad de código
15
16. Pruebas de Software
Caja Negra
(entradas vs
salidas, sin ver
código)
Caja Blanca
(viendo código,
Pruebas De Defectos
en base al
código)
De Regresión
(Automatizadas)
16
17. De Regresión
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
prueba prueba prueba prueba
prueba prueba prueba prueba prueba
prueba prueba prueba prueba prueba prueba prueba
17
19. Pruebas de Software
Las pruebas pueden mostrar
la 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 de
decidibilidad y computabilidad
19
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 20
21. y sin embargo...
probar es mucho más que
encontrar bugs, probar es
generar conocimiento
(aprender sobre
el sistema bajo prueba)
Agile Testing Quadrants
http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/
21
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)
22
Curso IS-412 Unidad 1 V2.0.ppt CEISOFT/BIOSOFT
23. ¿Costos de las Pruebas?
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)
23
Curso IS-412 Unidad 1 V2.0.ppt CEISOFT/BIOSOFT
24. Métodos / Procesos / Técnicas
proceso de
pruebas /
plan de pruebas
Curso IS-412 Unidad 1 V2.0.ppt
Lámina 40-42
24
25. Concepto: El proceso de pruebas
● 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)
25
26. Concepto: El plan de pruebas
● 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
26