¿Cuál es la diferencia entre los escenarios y los entornos UAT?

10

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.

Machado
fuente
44
Quiero que más personas pesen, pero esto parece basarse principalmente en la opinión. En mi entorno actual, Staging y UAT son diferentes. UAT es un entorno público en vivo que está sincronizado con implementaciones de producción pero con una carga de datos diferente para permitir a los usuarios jugar con el software. Nos referimos a él como un entorno de Sandbox para los usuarios. La puesta en escena es un lugar privado para probar la implementación y los cambios de infraestructura antes de ejecutarlos en Producción y UAT. Hay obligaciones para los clientes con respecto a la disponibilidad y el uso de UAT, pero no a la puesta en escena. Es probable que otras compañías sean diferentes.
Thomas Owens
@ThomasOwens el punto es precisamente eso: ambos entornos son diferentes y para algunas personas parece ser una cosa y para otras personas significa otras cosas. La pregunta sobre la falla del servidor indicó que usted usa la puesta en escena apuntando a los datos de producción en línea y simplemente "cambia el interruptor", lo que creo que es un enfoque interesante, pero es una visión diferente de lo que está diciendo.
Machado el
2
El hecho de que sea una cosa para algunas personas y otra para otras personas es lo que hace que esto se base principalmente en la opinión: no hay una respuesta. Todavía no he apretado el gatillo al cerrarlo, en caso de que me equivoque. Es una pregunta bien escrita, y puede haber una definición estándar por ahí. Ahora, si las personas eligen ignorar esa definición estándar y usar la propia, es otra historia.
Thomas Owens
@ThomasOwens, declaración justa. Si no le importa, manténgalo abierto durante un par de días y si solo genera respuestas basadas en opiniones, con gusto votaré para cerrar con usted. :)
Machado el
@ThomasOwens estuvo de acuerdo, creo que esta pregunta también es algo subjetiva en lo que la gente llama puesta en escena. Nuestro UAT y el entorno de preparación son la "misma cosa", pero esto se debe a que tenemos muchas versiones, por lo que cuando estamos listos para el lanzamiento, nos hacemos cargo del entorno de preparación y lo preparamos para que UAT lo libere. Los desarrolladores que están trabajando en sus propias cosas todavía tienen una manera de usar ramas de características en nuestro entorno de escenario para que no las bloquee.
agosto

Respuestas:

10

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.

John Wu
fuente
1
| Environment | Software version  | Way of usage of software |
 ------------- ------------------- --------------------------
| UAT         | New               | Same as production       |
| Staging     | New or production | New for this version     |

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:

  • UAT existe para demostrar que la nueva versión del producto de software funcionaría si se usa de la misma manera que la versión actual.
  • La puesta en escena existe para demostrar que la nueva forma de uso del producto de software con alguna versión aceptada del producto de software funcionaría de la misma manera que la versión actual del producto de software que se usa ahora.

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.

Vlad
fuente
0

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.

BobDalgleish
fuente
Parece que tiene 3 entornos de prueba diferentes, con diferentes propósitos, pero aún entornos de prueba: 1 enfocado en preguntas y respuestas, 1 enfocado en desarrolladores y uno enfocado en equipo de operaciones. Pero todos ellos todavía están probando entornos y vinculados a bases de datos de prueba, por ejemplo. ¿Es correcto o me falta algo?
Machado el
Cada uno de ellos estaría vinculado a sus propias bases de datos, sí.
BobDalgleish
-1

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:

  • UAT (el entorno) podría estar "nivelado" con la producción, y es esencialmente un entorno limitado para que los usuarios prueben nuevas funciones.
  • UAT (el entorno) podría estar "por delante" de la producción, por lo que las nuevas características no se implementarán en producción hasta que se hayan evaluado. (No estoy interesado en este enfoque, ya que necesariamente significa que tiene plazos de entrega más largos).
  • Si tiene un sistema de múltiples inquilinos, es posible que ni siquiera necesite un entorno UAT; en cambio, puede elegir que los usuarios evalúen las nuevas características en los sistemas de producción haciendo uso de indicadores de características.

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 ...)

Justin
fuente