Las pruebas de caja negra, no tienen en cuenta el funcionamiento interno del programa, sino unicamente el resultado de las comunicaciones entre objetos. Dichas interacciones se verifican mediante el uso de asserts.
Un assert es una condición que se debe dar en un programa para que no se produzca un error.
Esta metodología de diseño garantiza que una clase en particular se comporte de una forma en particular.
Mediante esta metodología y a través del uso del desarrollo dirigido por pruebas, podemos garantizar ese comportamiento en concreto. Para realizar las pruebas hacemos uso de la librería TestNg
En esta metodología seguimos el siguiente proceso:
1 Elegir un requerimiento
2 Escribir una prueba:
3 Verificar que la prueba falla:
4 Escribir la implementación: Escribir el código más sencillo que haga que la prueba funcione. Se usa la metáfora "Déjelo simple" ("Keep It Simple, Stupid" (KISS)).
5 Ejecutar las pruebas automatizadas:
6 Eliminación de duplicación: eliminar código repetido.
7 Actualización de la lista de requerimientos:
A modo de ejemplo:
Tenemos la siguiente clase, public class Taquilla{...};
La taquilla tiene el método Entrada:ventaEntrada(Pelicula,Fecha)
Sean los comportamientos deseados:
- Si la Pelicula no se proyecta lanza excepcion RuntimeException("La pelicula no se emite")
- Si la Fecha es anterior a hoy lanza excepcion RuntimeException("Fecha incorrecta")
- Si la película se emite y la fecha es correcta devuelve una entrada.
El proceso de diseño de la prueba sigue los siguientes pasos:
1.Nombre de la prueba.
public class VentaEntradasTest
2. Nombre del método
@Test
public void ventaEntradas()
3.Definir el objeto a probar.
Taquilla taquilla=new Taquilla();
4. Escenario de la prueba
Cine cine=new Cine();
Date hoy=new Date(YYYY,MM,DD)
/*El cine debe contener películas
Es necesario en este paso compilar, ver lo que falla, comunicar métodos.
Inicializar el escenario
*/
5.INVOCACION
entrada=ventaEntrada(Pelicula,fecha);
6.COMPROBACIÓN RESULTADOS Y MENSAJES ERROR
Con el uso de assert podemos verificar los resultados y dar los mensajes de error correspondientes.
En esta fase se escribe el minimo código necesario para que la prueba pase.
boolean enCartelera=cine.cenCartelera(Pelicula)
assert(enCartelera):”La película no se emite”;
boolean fechaOk=hoy.before(Fecha);
assert(fechaOk):”La fecha es anterior a hoy”;
No hay comentarios:
Publicar un comentario