Historia de la pregunta
Los entornos de prueba aparecieron a medida que los productos de TI se volvieron más complejos. Destacar un entorno separado permite a los probadores verificar nuevas funcionalidades de manera segura, sin afectar a los usuarios y datos reales.
Problema
Si las pruebas se realizan en el entorno de producción, pueden ocurrir pérdidas de datos, interrupciones en los procesos comerciales o incidentes de seguridad. A veces, los entornos de prueba y producción son diferentes, lo que provoca errores "elusivos": los cambios funcionan en la prueba, pero fallan en producción (o viceversa).
Solución
Se organizan entornos separados para pruebas (test, staging, pre-prod) que reproducen al máximo el entorno de producción. Para las pruebas manuales, es importante que haya una verdadera correspondencia entre la API, los datos, la configuración e incluso el "hardware". Se presta especial atención a la aislamiento de los datos de los usuarios, la configuración de la gestión de registros, la monitorización y los datos de control.
Características clave:
¿Se puede utilizar el entorno de producción para pruebas si las pruebas son inofensivas?
No, siempre existe el riesgo de interrumpir el trabajo de los usuarios o "exponer" los datos de prueba. incluso las pruebas "inofensivas" pueden afectar las estadísticas o causar carga.
¿Cuál es la diferencia entre los entornos de test, staging y pre-prod?
Test — entorno para pruebas manuales y automatizadas principales, puede diferir en los datos. Staging/pre-prod — es lo más parecido a producción, reproduce la infraestructura y los datos para la prueba final.
¿Qué datos se recomienda utilizar en el entorno de prueba: reales, anonimizados o sintéticos?
La mejor opción son los datos anonimizados, que sean cercanos en estructura a los reales. Los datos reales comprometen la seguridad, y los sintéticos no reflejan el comportamiento real.
Las pruebas de corrección de errores se realizan en producción, después de la salida, la corrección solo se realiza en el entorno de prueba, como resultado, en producción hay un nuevo error: los clientes se quejan masivamente.
Ventajas:
Desventajas:
El equipo verifica manualmente la función en un staging separado, los datos de prueba se actualizan regularmente, las pruebas son lo más cercanas a la realidad.
Ventajas:
Seguridad en producción
Desventajas: