Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Diseño de Casos de Prueba
Diseño de Casos de Prueba
Condiciones de prueba
Esta es la reacción esperada de un
sistema frente a un estímulo particular,
este estímulo está constituido por las
distintas entradas.
Una condición de prueba debe ser
probada por al menos un caso de prueba
1
CASOS DE PRUEBA
Un caso de prueba es la unidad de la
actividad de la prueba.
CASOS DE PRUEBA
“Los bugs se esconden en las esquinas
y se congregan en los
límites ..."
Boris Beizer
2
CASOS DE PRUEBA
Los casos de prueba se deben confeccionar en forma
paralela al desarrollo.
Si contamos con casos de uso, los utilizaremos como
base para el desarrollo de casos de prueba para
probar la funcionalidad requerida del sistema.
3
Derivación de Casos de Prueba
4
En base a documentos del cliente
En base a documentos de
relevamiento
Se puede caer en supuestos equivocados para aplicar
un testing funcional, de carga, performance, etc.
Así como en el relevamiento se puede basar un
diseño de software, así también puede basarse el
diseño de casos de pruebas.
El diseño de casos de pruebas, debería ser más
completo que el logrado en base a documentos del
cliente.
Se pueden perder detalles que se contemplan en el
diseño, pero deben completarse más adelante,
incluso en el ciclo 0 del testing.
5
En base a documentos de
relevamiento
Cobertura condicionada: dependerá de
cuán completa sea la documentación de
relevamiento.
Aconsejable para las pruebas de
sistema.
No debería ser pobre para un testing
funcional.
En base a documentos de
relevamiento
Si se detectan omisiones o supuestos
equivocados en el relevamiento, se debe
informar para corregir.
El diseño de casos de pruebas generado
de estos documentos tiene que servir al
testing, y no hay que confundir con el
diseño del desarrollo.
6
En base a Casos de Uso
Cobertura completa del diseño.
El diseño de casos de pruebas logrado
es bien detallado.
Aconsejable para las pruebas
funcionales.
No se cae en supuestos equivocados.
7
En base a Casos de Uso
8
En base a Casos de Uso
Casos de uso vs. Casos de prueba
Cada alternativa de un caso de uso define
automáticamente un caso de prueba.
Normalmente hay más de un caso de prueba para cada
alternativa de un caso de uso.
Además recordar que los casos de uso no especifican
requerimientos no funcionales.
Y los casos de uso no contemplan la interacción entre
ellos, con lo que hay que definir casos de prueba
específicos.
En base a especificaciones de
programación
En Testing se reciben las mismas especificaciones
que se le envían al programador.
Si un programador puede codificar en base a estas
especificaciones, Testing debe poder diseñar casos
de prueba y testear.
Más completo que el diseño que se logra en base a
documentos del cliente y de relevamiento. Más
detalle.
Se puede lograr un diseño de casos de prueba de
amplia cobertura
9
En base a especificaciones de
programación
Sirve para el testing funcional.
Si las especificaciones incluyen
un prototipo de pantalla, se
pueden diseñar casos para testing
de usabilidad.
En base a especificaciones de
programación
DESVENTAJA:
Si empezamos acá a diseñar casos de prueba, ya
hemos empezado tarde las tareas de testing. Lo
que implica que los errores que encontremos
serán más caros de corregir para la organización.
10
En base a código
En Testing se recibe el CODIGO.
Es aplicable en el diseño con técnicas de CAJA
BLANCA.
Adquiere las mismas ventajas y desventajas que esta
técnica tiene.
Es complementario al diseño de casos de prueba en
base a documentación.
Amplia cobertura del código y por supuesto del diseño.
Se usa para el diseño de casos de prueba de Test de
Componentes.
Permite completar los casos de prueba para asegurar
una mayor cobertura
Prueba de Software
11
CASOS DE PRUEBA vs. CASOS DE USO
Estrategia de Prueba
La actividad de construcción de casos de prueba puede distribuirse
a lo largo del desarrollo de software en lugar de dejarlo para el final.
Muchas cosas pueden salir mal en un sistema, tal vez lo más fácil de
probar sea la funcionalidad del sistema definida por un Modelo de
Casos de Uso.
Muchos tipos de problemas están relacionados con requerimientos
no funcionales, que están más allá del modelado de casos de uso.
Un problema a tener en cuenta es la interacción entre casos de uso,
dado que el modelo no muestra secuencialidad orden natural.
El control de rangos y el manejo de errores en el ingreso de valores
representan otra clase de problemas a considerar.
Los rangos pueden reflejar la habilidad del sistema para crecer a lo
largo del tiempo.
12
Estrategia de Prueba
13
Ejemplo: Caso de Uso “Generar Factura”
Precondiciones: no aplica
Post- Condiciones: factura generada, el use case se cancela si no se confirma la generación de la misma o si no se selecciona ningún pedido.
4. El sistema muestra los datos completos del pedido y calcula el monto total
S
a cobrar
S 5. El sistema solicita la confirmación de la generación de la factura.
14
Grafo de Caminos para el Caso de Uso “Generar Factura”
A1
S7 3. A1 – SE2.
4. A1 – S2- A3- S4- S5- AE6.
S8
AE9
A9
15
Plantilla para la Construcción de Casos de Prueba
Id del Caso de Nombre del Caso de
Prueba Prueba Tipo de Prueba
Juego de Prueba Prioridad
Camino de Prueba
Resultado
Condiciones de
Inicio
Ciclo 0
Id de
Paso Descripción Resultado Esperado Resultado Obtenido Estado Problema
Prueba de Interacción
Las interacciones entre caso de uso son las áreas más difíciles de
probar.
Esto se debe a la gran cantidad de combinaciones, aún en un
sistema de tamaño moderado.
Se pueden utilizar técnicas para buscar áreas donde la interacción
entre casos de uso pueda traer problemas.
Caso de Prueba 1 -3
Use case 1
Juego de Pruebas 1 +
Caso de Prueba 14-1
Juego de Pruebas 1
32 Ing. Judith Meles
16
Prueba de Interacción
Una forma de buscar interacciones es buscar objetos compartidos
entre use cases.
Las matrices CRUD pueden utilizarse entre para ver use cases
relacionados.
En especial se buscan situaciones donde los objetos son: LEIDOS,
ACTUALIZADOS o BORRADOS en un use case y creados en otro.
¿Qué pasa cuando los objetos no existen? “Leer antes de crear”.
¿Qué pasa cuando borramos objetos que otros leen o actualizan?
“Leer después de borrar”.
Veamos la matriz de interacción:
Los Use Cases son un punto de partida excelente para definir caso de prueba, y en
particular los casos de prueba de aceptación de usuarios:
Se debe crear al menos un caso de prueba por cada caso de uso.
En general, se tendrán 4 o 5 casos de prueba por cada caso de uso.
Se debe crear al menos un caso de prueba por cada alternativa de un caso de uso.
Si hay una relación de extensión, se debe plantear un Caso de Prueba que la
contenga y uno que no.
Si hay alternativas se debe preparar al menos un caso en que la expresión contenga
el curso normal y uno con cada alternativa.
Por cada caso de uso, debo incluir al menos un caso de prueba con una acción
inválida por parte del usuario.
En todos los casos de prueba se debe especificar el comportamiento esperado del
sistema.
Es muy importante crear los casos de prueba en el momento en que finalizó la
documentación de los caso de uso, si es posible antes que se dé por concluido el
análisis.
17