Sé que deberíamos tener al menos 3 entornos diferentes mientras desarrollamos una solución:
- Desarrollo : los programadores son libres de cambiar e impulsar cambios en cualquier momento para probar rápidamente su código e integrarse con otros cambios, sin temor a romper nada; esto está conectado a las bases de datos y servicios de TEST;
- UAT : los desarrolladores deben tratarlo con reverencia, ya que debe contener una copia "lo mejor posible" del entorno de producción con respecto al hardware, con la diferencia de que este entorno está conectado a las bases de datos de UAT con una copia editable de los datos de producción. es utilizado tanto por el equipo de preguntas y respuestas como por los usuarios para validar los cambios que irán a producción
- Producción : el verdadero negocio.
He examinado esta pregunta en SoftwareEngineering y esta pregunta en ServerFault , y parecen diferir en lo que significa el entorno de ensayo. Además, la página de Wikipedia sobre el tema establece que:
El uso principal de un entorno de ensayo es probar todos los scripts y procedimientos de instalación / configuración / migración, antes de que se apliquen al entorno de producción. Esto asegura que todas las actualizaciones mayores y menores al entorno de producción se completarán de manera confiable y sin errores, en un tiempo mínimo.
Para mí, Staging es igual a UAT, donde debes probar los procedimientos de aplicación e implementación antes de pasar al mundo real. Entonces, empujamos el paquete con los cambios a UAT de la misma manera que empujamos a la producción, totalmente automatizado y con toda la ceremonia que deberíamos tener con el entorno de producción.
Dicho esto, ¿cuál es la diferencia adecuada entre un entorno UAT y un entorno de ensayo?
-
EDITAR: Para ser claros, estoy pensando en términos de una aplicación web, ya sea un sitio web de Internet o un sitio web de intranet. No hay aplicaciones "formularios" o aplicaciones móviles.
Respuestas:
La diferencia son los datos.
Se configura un entorno UAT para la "aceptación del usuario" de la nueva funcionalidad. Para probar esa funcionalidad, el control de calidad o las partes interesadas pueden configurar perfiles de usuario de una manera particular para ejercer funciones particulares, o pueden configurar productos o configuraciones simuladas para verificarlos todos.
Un entorno de ensayo a menudo se configura con una copia de los datos de producción, a veces anonimizados. Algunas corporaciones regularmente "actualizan" su base de datos provisional desde una instantánea de producción. El objetivo principal es garantizar que la aplicación funcione en producción de la misma manera que funcionó en UAT. En lugar de configurar nuevamente los datos, los evaluadores buscarán en la base de datos perfiles y productos que coincidan con un conjunto esencial de casos de prueba. A menudo, los datos "reales" tienen peculiaridades que dan lugar a casos extremos inesperados que se perdieron durante UAT. Además, cualquier prueba de migración de datos debería realizarse en el entorno de ensayo.
fuente
Aquí, la definición de uso es muy amplia y podría incluir todo tipo de cosas, desde cambios en la configuración realizados por los usuarios finales hasta costosas características de infraestructura que no están disponibles en el entorno UAT. Es importante destacar que la versión del producto de software en la puesta en escena puede ser nueva o actual, pero siempre una que ya haya pasado la aceptación.
En otras palabras:
Nota: como se describió en la pregunta en sí, hay diferentes interpretaciones del "entorno de ensayo" y uno utilizado en su empresa / entorno podría ser diferente.
fuente
El uso de estos entornos diferentes realmente depende de sus necesidades. Por su comentario de que "puesta en escena == UAT", suena como si tuviera una aplicación muy pequeña sin equipo de control de calidad y solo un par de desarrolladores.
Los entornos de aplicaciones más grandes pueden tener un entorno de prueba de integración, así como un entorno de control de calidad, el primero donde los desarrolladores ejecutan sus pruebas de integración y el segundo donde el equipo de control de calidad ejecuta sus pruebas. Puede haber un entorno de entrenamiento que tenga datos de stock que se restauran antes de cada sesión de entrenamiento. El entorno de preparación estaría bajo el control del equipo de operaciones para garantizar que los despliegues se realicen correctamente. El equipo del cliente utilizaría el entorno de prueba de aceptación del usuario (UAT). También puede haber un entorno de producción de instantáneas para reproducir los problemas del cliente.
Mi punto es tener cuidado con el punto de vista único al determinar los entornos que necesita.
fuente
UAT significa " Prueba de aceptación del usuario " y es el entorno en el que se realizan las pruebas de aceptación del usuario. Tenga en cuenta el énfasis en el usuario: sus pruebas de control de calidad son diferentes, UAT es una oportunidad para que los usuarios reales (o al menos su equipo de capacitación, ventas, personal de soporte, etc.) prueben nuevas funciones y evalúen el software antes de implementarlo. sus sistemas de producción
Lo que esto significa exactamente dependerá de sus procesos:
En términos de implementación continua / entrega continua, el entorno de preparación se utiliza para probar el software en un entorno "similar a la producción", ya que es probable que los desarrolladores trabajen en un entorno con diferencias significativas en la producción (por ejemplo, sin equilibrio de carga, un menor conjunto de datos, etc ...)
fuente