Testing Colombia

Testing con calidad

Automatizacion, Comunidad, Metodologias

10 buenas practicas para las pruebas unitarias

  1. Una prueba unitaria no debe probar más que solo una cosa. Es muy normal caer en la tentación de hacer muchas validaciones de cosas que creemos importantes en una prueba unitaria, pero cuando se trata de pruebas unitarias debe tener un objetivo único de la prueba. Es recomendable hacer una validación por test, si algo mas es importante para validar, lo mejor es crear otra prueba unitaria para dicha validación.
  2. Ejecución rápida. Las pruebas unitarias están ligadas a la integración continua, con lo cual su ejecución debe ser muy rápida, además que la complejidad de las pruebas unitarias es reducida al igual que su robustez, pero un buen test no debería superar los 30 segundos de ejecución.
  3. Resultado consistente. las pruebas unitarias deben ser tan confiable que nos debe garantizar que lo que se prueba está en realidad hecho correctamente.
  4. Pruebas unitarias aisladas. la prueba unitaria no puede depender de otras pruebas o de la intervención de otro agente externo a la prueba, como lo puede ser una respuesta de BD o un servicio web por citar algunos, la prueba debe tener un alcance de método o función por ejemplo y no requerir otro tipo de dependencias.
  5. Si falla debe ser fácilmente reconocible el fallo. Cuando la prueba es lo suficientemente robusta y consistente deberá especificar claramente un log con la descripción en caso de fallo de la prueba.
  6. Totalmente automatizado. las pruebas unitarias deben ser completamente automáticas y no requerir una intervención humana o de ajustar un ambiente de prueba, etc.
  7. Repetible. una prueba unitaria se debería poder ejecutar las veces que fuese necesario y no requerir alguna configuración adicional.
  8. Ejecutable por cualquier persona. Las pruebas unitarias deben ser tan sencillas y ágiles que cualquier persona debería estar en capacidad de ejecutar las prueba sin ninguna preparación o entrenamiento previo.
  9. Relevante en el futuro. Cuando se diseñan pruebas unitarias se debe estar seguro de que lo que se desea probar tiene sentido a futuro y el comportamiento deberá ser el mismo, salvo que cambie la lógica del objeto de prueba
  10. Veracidad de la prueba. El test debería asegurar que podría fallar si se cambia la lógica del objeto de prueba, es común solo ejecutar y ver que la prueba pasa correctamente, pero deberíamos también inducir al fallo y ver que en realidad la prueba unitaria identifica el error.

Deja un comentario

Tema creado por Anders Norén