Un versionado e integración adecuada de las pruebas automáticas son críticos para garantizar que la verificación esté alineada con el estado actual del proyecto.
Historia del problema
Inicialmente, las pruebas automáticas se realizaban a menudo por separado del proyecto principal, lo que llevaba a incompatibilidades y problemas de mantenimiento. El desarrollo de múltiples ramas, lanzamientos frecuentes de software y pruebas — generó la necesidad de un sistema de control de versiones común.
Problema
Sin versionado e integración coordinada, surgen:
Solución
Enfoque moderno:
# Enfoque general: git checkout -b feature/new_login # La función y las pruebas se desarrollan y prueban juntas # Después de la revisión se fusionan juntas en la rama principal
Características clave:
¿Se pueden almacenar las pruebas en un repositorio separado (del código del proyecto)?
Sí, pero entonces es más difícil mantener la actualidad de las pruebas, se requiere sincronización manual, hay riesgo de "olvidar" actualizar algo al realizar un lanzamiento o una corrección de errores.
¿Las pruebas deben cubrir todo el nuevo funcionalidad al crear un PR?
Idealmente — sí, pero en la práctica muchas veces cubren MVP/espectros principales en el primer PR, y casos complejos — como tareas separadas. Lo principal es que la funcionalidad crítica esté cubierta de inmediato.
¿Se pueden revertir solo los cambios en las pruebas sin revertir el código?
Si las pruebas y el código están juntos en una misma rama — sí, se pueden revertir las revisiones. Pero es mejor evitar la "reversión" de pruebas sin el código: esto deteriora la calidad de la verificación.
Proyecto con un repositorio separado de pruebas automáticas. Después del lanzamiento, los programadores "olvidaron" actualizar las pruebas — las pruebas fallaban, se realizaban verificaciones no actualizadas, se encontraban errores en producción.
Ventajas:
Desventajas:
Las pruebas y el código del proyecto se llevan en una misma rama de git: en cualquier nuevo pull request, las pruebas automáticas se actualizan obligatoriamente para el código añadido. Todos los cambios pasan por revisión de código y comprobaciones automáticas.
Ventajas:
Desventajas: