Gran pregunta No creo que haya una respuesta correcta "oficial" a esto. Depende de qué tan rápido pueda hacer la prueba.
El problema esencial es que cada fusión, compilación o incluso implementación, potencialmente puede crear un error. Cuanto más 'ascendente' esté la cadena que pruebe, antes sabrá acerca de los errores, pero también más veces tendrá que volver a realizar la prueba.
Para estar seguro de que ha probado el software que usan los clientes, realmente tiene que probar la implementación en vivo antes de que el tráfico de los clientes (suponiendo que una aplicación web) se enrute a esos servidores a través de un patrón de implementación azul / verde.
¡Pero obviamente esto es un poco tarde en el día para ser la primera vez que revisas el código!
Si prueba una rama de liberación en un entorno qa, entonces puede correr el riesgo y reducir la prueba en vivo a pruebas de humo solamente. y aplique correcciones de errores a la rama de lanzamiento. Pero no puede evaluar si una función está completa antes de crear una versión
Si prueba el desarrollo, obtendrá mini ramas de corrección de errores. Las características aún se fusionan antes de que se evalúen, además de las características para la próxima versión pueden colisionar con la prueba de la versión actual.
Si prueba las ramas de características, necesita un millón de entornos y debe orquestar el orden de las fusiones y las aprobaciones de prueba. además de muchas nuevas pruebas.
Desde mi experiencia, recomendaría:
Prueba rápida de la rama de características en la máquina de desarrollo. solo asegúrese de que su función esté completa y los probadores / desarrolladores acuerden qué significan los requisitos.
Pruebas diarias / pruebas automatizadas en sucursales de desarrollo implementadas en servidores qa. Le permite probar todas las funciones juntas y decir cuándo está listo para lanzar.
Si todas las funciones están activadas pero la prueba no ha finalizado. Por ejemplo, el sprint está completo. haga una rama de lanzamiento e implemente en un segundo entorno qa. Esto permite que la corrección / prueba de errores en la versión 1 continúe al mismo tiempo que las características para la versión 2.
(los devotos de scrum dirán que solo debes poner correcciones de errores en el sprint 2, pero seamos prácticos)
Pruebas de humo en la implementación verde / azul en vivo antes de cambiar. Estos son súper importantes, ya que detectará errores de configuración / ambientales que nadie realmente busca durante el desarrollo.