pruebas de software
Pruebas.
Javier Gutiérrez / javierj@us.es
Introducción al proceso de pruebas
Objetivo: repasar las ideas
principales sobre las pruebas del
software y, en concreto, las que
usaremos para probar casos de uso.
1
Índice
1.
2.
3.
4.
5.
Introducción a las pruebas.
Un resumen del proceso de prueba.
Niveles de prueba.
Pruebas de casos de uso.Automatización de pruebas.
1. Introducción a las pruebas.
2
Introducción a las pruebas
Ariane 5.
Lanzado por primera vez el 4 de junio de
1996.
Ariane 5.
36.7 segundos después explotó.
Motivo:
Fallo software. La programación no se había probado lo suficiente.
Introducción a las pruebas
Un reto a la
Sistemas software: Ingeniería de
Software.
• Mayor tamaño.
• Mayorcomplejidad.
• Menor tiempo de
desarrollo.
• Mayor calidad.
Pruebas:
• Más importancia y
protagonismo día a día.
• Garantizan la calidad del
software.
• Garantizan la satisfacción de
los requisitos.
• Ahorran tiempo y recurso
en el desarrollo.
• Su objetivo: localizar, para
subsanarlas, el mayor número
de deficiencias lo antes
posible.
3
Introducción a las pruebas
Definición deprueba:
Software testing consists of the
dynamic verification of the
behaviour of a program on a finite set
of test cases […].
Dynamic verification means that
testing always implies executing the
program on (valued) inputs.
Fuente: SWEBOK 2004
Introducción a las pruebas
Definición de prueba:
1
Verificación dinámica del
comportamiento del software a
partir de un conjunto finito decasos de prueba.
Validación y Verificación dos
conceptos muy relacionados:
2
Validación: proceso de evaluar un
sistema o componente durante o al
final del proceso de desarrollo para
determinar si satisface los requisitos
especificados.
Verificación: proceso de evaluar un
sistema o componente para
determinar si los productos de una
determinada fase satisfacen las
condicionesimpuestas al comienzo
de la fase.
No implican ejecución de código.
4
Introducción a las pruebas
Definición de prueba:
Verificación dinámica del
comportamiento del
software a partir de un
conjunto finito de casos de
prueba.
Para probar un programa
tenemos que ejecutarlo.
La prueba tiene un límite.
No vale ejecutar el
programa de cualquier
manera.
Introducción a las pruebasUna prueba consta, al
menos, de tres
elementos:
2
3
1
5
Introducción a las pruebas
Veamos un ejemplo sencillo:
¿Funciona el teléfono?.
Valores de
prueba
123-45-67-89
Acciones
1. Descolgar auricular.
2. Marcar número de Pepote.
3. Esperar contestación.
Resultado esperado
(Pepote): “Digameee”.
Introducción a las pruebas
Veamos otro ejemplo sencillo:
¿Me estábien esta camisa?
Valores de
prueba
Mi cuerpo.
Acciones
1. Ponerme la camisa.
2. Abrochármela.
3. Moverme un poco.
4. Mirarme al espejo.
Cuidado con la etiqueta o con arrugarla
por si hay que devolverla
Resultado esperado
Elegancia y confort.
6
Introducción a las pruebas
¿Qué casos de prueba podemos escribir?.
public int suma(int a, int b)
Valores de
prueba
AccionesResultado
esperado
???
{
Suma(a, b)
???
return a + b;
}
Los casos de prueba son
finitos (y cuantos menos,
mejor).
Los casos de prueba buscan errores,
queremos el menor número que
encuentre los máximos errores.
Introducción a las pruebas
¿Qué casos de prueba podemos escribir?.
public int suma(int a, int b)
Valores de
prueba
{
Acciones
Resultado
esperado0, 0
Suma(a, b)
0
0, b = no 0
Suma(a, b)
b
return a + b;
}
3, 4
Suma(a, b)
7
-2, -8
Suma(a, b)
-10
-3, 6
Suma(a, b)
Integer.MAX_V
ALUE, 6
Suma(a, b)
3
-2147483643
Y algunas permutaciones más.
7
Características de una buena prueba
• Ha de tener una alta probabilidad de encontrar un
fallo. Cuanto más, mejor.
• No debe ser...
Regístrate para leer el documento completo.