Testing
Principios, estrategias y prácticas para evaluar el comportamiento y la calidad del software.
13 guías
Fundamentos
- ¿Qué es el testing?
Qué podemos conocer sobre un sistema a través de las pruebas, qué límites tienen y cómo ayudan a evaluar su calidad.
Tests unitarios
- ¿Qué es un test unitario?
Qué caracteriza a un test unitario, qué significa aislar una unidad y cómo evitar que la prueba dependa demasiado de la implementación.
- F.I.R.S.T.: principios para tests unitarios
Cinco criterios para escribir tests rápidos, independientes y repetibles, con resultados claros y creados en el momento adecuado.
- AAA: cómo estructurar un test
Preparar el escenario, ejecutar una acción y verificar el resultado. Cómo usar Arrange, Act, Assert para escribir tests fáciles de entender.
- Dobles de test: dummy, stub, spy, mock y fake
Qué función cumple cada tipo de doble y cómo elegir el adecuado para controlar las dependencias de una prueba.
- Test-Driven Development (TDD)
Cómo el ciclo de escribir un test, hacerlo pasar y refactorizar guía la implementación y ayuda a revisar el diseño.
Niveles de testing
- Testing de integración
Qué problemas aparecen al conectar componentes y cómo probar esas interacciones más allá de los tests unitarios.
- Testing de sistema
Cómo evaluar el comportamiento del sistema completo y en qué se diferencia de probar la integración entre componentes.
- Pruebas de aceptación de usuario (UAT)
Cumplir una especificación no garantiza que el sistema responda a las necesidades del negocio. Cómo evaluar su aceptación y quiénes participan.
Testing no funcional
- Testing de performance
Cómo evaluar tiempos de respuesta y capacidad bajo distintas cargas, sin depender solo de los promedios.
- Testing de seguridad
Cómo evaluar controles de acceso y detectar vulnerabilidades con pruebas y análisis estático y dinámico. Qué aporta cada enfoque.
- Testing de usabilidad y su relación con UX
Cómo evaluar si las personas pueden entender y usar el sistema, y en qué se diferencia de otras actividades de investigación de UX.
- Testing de compatibilidad
Cómo verificar que el software funciona en los entornos previstos y que sus cambios mantienen la compatibilidad necesaria con versiones anteriores.