El desarrollo de pruebas está basado en diferentes tipos de pruebas, a continuación presentamos alguna de ellas:
Aceptación: Indica que el código cumple los requerimientos de negocio.
Caja negra: Indica que el contrato de la interfaz se cumple, sin importar el contenido interno.
Caja blanca: Indica que el contrato de la interfaz se cumple, considerando el cómo fue implementada y la estructura de datos interna.
Compatibilidad: Indica que el código se ejecuta adecuadamente en uno o más componentes donde este se ejecutara; por ejemplo, una aplicación web requiere ser visualizada correctamente en Internet Explorer, Chrome, Firefox y dispositivos móviles.
Funcionales: Indica que el código cumple con los requerimientos técnicos producto de los requerimientos de negocio (todas las funciones funcionan como se espera).
Carga/rendimiento/stress: Indica y se mide como un sistema responde cuando la carga de trabajo se incrementa.
Regresión: Se realiza para verificar que un error previo fue corregido o que determinada funcionalidad sigue funcionando.
Unidad de prueba
El propósito de la unidad de pruebas es validar que una simple funcionalidad funciona como se espera en forma aislada. Una unidad de prueba se caracteriza por ser rápida, simple, fácil de ejecutarse y modular. Se puede considerar los detalles de implementación al utilizar las pruebas de Caja Blanca.
Por ejemplo, cada objeto de Java hereda el método Object.hashCode() y el valor de la prueba Object.equals(Object). Cuando el contrato del API llame a hashCode de un objeto igual, debe devolver igual, este es:
1 2 3 4 5 6 7 8 | public void testHashCodeOfEqualsObject{ MyObject a = new MyObject(“a”); MyObject b = new MyObject(“a”); assert a.equals(b) : “Los objetos deberían ser iguales en valor” assert a.hashCode() == b.hastCode() : “Hash en objetos iguales no son iguales” } |
Esta unidad de prueba se ha implementado utilizando la palabra reservada assert, es un ejemplo clásico de una unidad de prueba: este revisa la menor parte de código invariable posible. Muchos expertos indican que una unidad de prueba debe tener solo una assert, esa es una buena práctica a seguir. Más si requiere más de una, utilícela.
Considerando lo mencionado, ¿Que otros tipos de prueba se pueden utilizar? ¿Cuál de estas pruebas utilizan en su empresa? ¿Utiliza algún framework de pruebas?