Definición
Testing es el proceso de ejecutar un programa con el objetivo de encontrar errores. Si el "testing" es exitoso, entonces podemos sersioramos que los features están cumplidos.
Las ventajas de poseer testing son:
- Conocemos mejor el código y sus implicaciones en otros procesos (integración testing).
- Reducimos el tiempo de desarrollo y horas de revisión para encontrar el "error".
Contamos con un despertador que todas las mañanas a las 9 AM suena su alarma, pero desde hace unos días ya no lo hace, eso es una anomalía, en caso de que hubiera llegado con una manecilla rota, seria defecto, si necesita luz para funcionar y por una tormenta se nos va la luz y ya no sirve, es fallo y por último si utilizas tu despertador para que te ayude a volver con tu ex, es un error.
Tipos de testing
Pruebas unitarias
Las pruebas unitarias son el nivel básico, limitadas al recurso de la aplicación. Consisten en las pruebas individuales de métodos y funciones de clases, componentes o módulos.
Pruebas de integración
Las pruebas de integración verifican que, los diferentes módulos o servicios, trabajen para su objetivo.
Pruebas funcionales
Enfocadas sobre los requerimientos de una aplicación, validan la salida de una acción y no se detienen para revisar estados intermedios de un sistema.
Pruebas de satisfacción o Alpha
Son pruebas que son ejecutadas para verificar si un sistema satisface sus requerimientos de negocio. Requieren que la aplicación esté en una fase llamada "testing or test", el cual supone que se encuentra lista para replicar el comportamiento del usuario.
Entre sus validaciones pudieran ser:
- El rendimiento del sistema.
- Cambios visuales o adaptativos.
Son típicamente echas por el equipo de QA.
Pruebas de usuario o Beta
Esta prueba es conducida por uno o varios clientes. Esta versión es lanzada para "simular" un entorno real.
Dependiendo de su ámbito, puede contener diferentes contextos:
- Escala o audiencia.
- Sistema operativo o dispositivo final.
- Seguridad.
- Estrés.
- Comunicación.