Prueba de Software
Prueba de Software
Prueba de Software
----
---
Edsger Dijkstra
Sobre las pruebas
¿Cómo pruebo
algo que aún no
está desarrollado?
La prueba primero
Preparación de la prueba
Diseño
Etapas
Desarrollo
de
trabajo
Ejecución de la prueba
¿Porqué?
La prueba primero
Buscan verificar que la relación entre las entradas y las salidas sea
correcta.
Pruebas de caja blanca (o caja de cristal)
Pruebas funcionales
Pruebas de aceptación
Pruebas de estrés
Lote de prueba
Programa probador
Etc.
Métodos de caja blanca
Lote de Programa
prueba probador
Lote de prueba
Lote de prueba
Nombre: caso_01_no_considera_al_ultimo_usuario
IN OUT (esperado)
5 5
2 5 3 15
2 7 7
1 6
2 7 3
3 7 2 6
Ejemplo de definición de caso de prueba
Nombre: caso_01_no_considera_al_ultimo_usuario
IN OUT (esperado)
5 5
2 5 3 15
2 7 7
1 6
2 7 3
3 7 2 6
Lote de prueba
Caso de prueba ##
Caso de prueba 02:
Caso de prueba 01:
SALIDA 01
ENTRADA 01
(esperada)
comparación
SALIDA
ENTRADA 01 SISTEMA
(del sistema)
Los casos de prueba pueden
contemplar:
• Casos de enunciado del problema
• Casos de flujos normales
• Casos de flujos particulares y/o
excepcionales
• Casos borde (extremos, tipo de dato, etc.)
• Casos de fatiga
• Etc.
Lote de Pruebas - Salidas múltiples
Recordar:
Un buen caso de prueba es aquel que se enfoca en
un único aspecto del sistema, tal que, si falla,
permite detectar fácilmente cuál es el error.
SALIDA
ENTRADA SISTEMA
(del sistema)
PROGRAMA
true / false
PROBADOR
Programa probador: complejidad
5833 6
-54 972 El input del problema original es:
433 - el dividendo: 5833
-42 - el divisor: 6
13
-12 El output del problema es:
1
- el cociente: 972
- el resto: 1
Programa probador: complejidad - ejemplo 1
5833 6
-54 972 Para validar este problema, nuestro
433
programa probador recibiría tanto el
-42
13 input como el output, y el proceso de
-12 validación se realizaría mediante:
1
cociente * divisor + resto = dividendo
A x A-1 = I
Nombre: caso_01_programa_probador_detecta_error
Salidas únicas ✓ ✓
Salidas múltiples ✘ ✓
Si falla un caso, se sabe Si falla, no nos brinda
Identificación de
cuál podría ser el información del
errores
problema. problema.