The Art of Software testing
MYERS
Saquen una hoja ...

Escribir un conjunto de casos de
prueba, un conjunto de datos que van a
testear bien el siguiente programa.
– El programa lee tres enteros. Los tres
valores representan la medida de los lados
de un triángulo. El programa imprime un
mensaje que determina si el triángulo es
esacaleno, isóceles o equilátero.
Evaluar el conjunto de los casos
de prueba




Un caso de prueba que representa un triángulo
válido
– escaleno (1,2,3 / 2,5,10)
– equilátero
– isósceles (2,2,4)
Al menos tres casos de una posibilidad válida, en
donde se permuten los datos (3,3,4 4,3,3 3,4,3)
FI:
uno con un 0
En todo triángulo
uno con un valor negativo
un lado es menor
que la suma de
los otros dos y
mayor que su
diferencia
Evaluar el conjunto de los casos
de prueba








la suma de dos de los números es igual al tercero
(1,2,3)
idem anterior + la permutación de lugar
la suma de dos de los números es menor al tercero
(1,2,4)
idem anterior + permutación del lugar
(0,0,0)
números no enteros
valor erróneo (asdfk dfjka aldj)
para cada caso de prueba especificó la salida
Evaluar el conjunto de los casos
de prueba
Buenos programadores 7 u 8,
entre 14
Casos de Prueba


Caso de prueba son un conjunto de
datos de entrada que me permiten
obtener un valor de salida del sistema.
El objetivo es hallar cuál es el
subconjunto de todos los casos de
prueba que tiene una mayor
probabilidad de detectar errores.
Test de Unidad

Tipos
– Caja Blanca
•
•
•
•
statement coverage
Decision coverage
decision / condition coverage
Multiple-condition coverage
– Caja Negra
•
•
•
•
partición equivalente
análisis de los valores límites
Grafo de causa efecto
adivinación/suposición de errores
Caja Blanca
A
> = 20
B
Caja Blanca

Testeo exhaustivo de caminos o testeo
exhaustivo de entradas
– Imposibilidad real de hacerlo
– No asegura la corrección del programa
• No necesariamente machea las especificaciones
• Pueden faltar caminos
• Errores que se manifiestan dependiendo de los datos
que estemos usando

Si bien el testeo exhaustivo de entradas es
superior al testeo exhaustivo de caminos,
ninguna de las dos estrategias son
convenientes.
Caja Blanca / Statement
Coverage
a
A>1 AND
B=0
v c
X=X/A
A B X
ace
b
f
v
e
A=2 OR
X>1
f
d
X=X+1
2 0 3
Caja Blanca / Decision /
Coverage
a
A>1 AND
B=0
v
c
f
b
A=2 OR
X>1
f
d
v
e
X=X/A
A B X
acd
3 0 3
abe
2 1 1
X=X+1
Si AND en vez
de OR
Caja Blanca / Decision/
Condition Coverage
a
A>1 A<=1
A>1 AND
B=0
c
X=X/A
B=0 B=/0
A=2 A=/2
X>1 X<=1
b
A=2 OR
X>1
d
e
X=X+1
A B X
ace
2 0 4
abd
1 1 1
Caja Blanca / Condition
A>1 A<=1
Coverage
a
A>1 AND
B=0
B=0 B=/0
c
A=2 A=/2
X=X/A
X>1 X<=1
A B X
b
A=2 OR
X>1
d
e
X=X+1
abe
1 0 3
abe
2 1 1
Caja Blanca / Multiple
Condition Coverage A
a
A>1 AND
B=0
c
X=X/A
b
A=2 OR
X>1
B
A
X
>1 =0
2
>1
>1 =/0
2
<=1
<=1 =0
=/2 >1
<=1 =/0
=/2 <=1
A B X
e
2 0 4
X=X+1
2 1 1
1 0 2
d
1 1 1
Caja Negra / Partición
equivalente




Maximizar el número de errores encontrados en
un número finito de casos de prueba
Incluir la mayor cantidad posible de condiciones
de entrada en los casos de prueba para minimizar
el número total de casos de prueba
Se debe tratar de particionar los dominios de las
entradas del programa en un número finito de
clases equivalentes (el test del valor
representativo es equivalente al test de cualquier
otro valor)
Se deben definir las clases equivalentes válidas y
las no válidas
Caja Negra / Partición
Equivalente
Identificación de los los casos de prueba a partir de la
entrada




Rango de valores
– una clase equivalente válida
– dos clases inválidas
Número de valores
– una clase equivalente válida
– dos clases inválidas
Conjunto de valores de entradas, manejados en
forma diferente por el programa
– uno válido y otro inválido
“debe ser”
Caja Negra / Análisis de Valores
límites



Un rango de valores para la entrada / salida
– caso de prueba para los extremos del intervalo
– caso de pruebas inválidos alrededor de los
extremos
Un número de valores entrada / salida
– un caso de prueba para el máximo y otro para
el mínimo
– un caso de prueba en los alrededores del
número
Si la entrada o salida es un conjunto ordenado
– focalizarse en el primero y último elemento
Caja Negra / Grafo de causa
efecto


Explora las circunstancias en donde se
dan combinaciones de las entradas
Tabla de Decisión
– Causas son las entradas
– Efectos son las salidas
– Columnas de la Tablas son los casos de
Prueba
Recomendación

Se recomienda hacer casos de testeo
usando los métodos de caja negra y
después desarrollar casos de testeo
suplementarios de caja blanca, cuando
sea necesario.
Recomendación




Si las especificaciones contienen combinaciones
de las entradas, comenzar con un grafo de causa
efecto
Siempre usar análisis de los valores límites
(entrada o salida), completando el anterior
Completar los casos de prueba, identificando las
clases equivalentes para las entradas y las
salidas. Usar suposición de errores para agregar
adicionales casos de prueba
Examinar los casos de prueba considerando la
lógica del programa.
Descargar

CASOS DE PRUEBA1