Recientemente me contrataron para un proyecto que implica trabajar con y alrededor de varios sistemas de "empresa" de terceros. Debido a lo que imagino sería el costo astronómico y el esfuerzo requeridos para construir una réplica suficientemente fiel del entorno de producción, la posibilidad de tener un entorno de desarrollo real parece muy escasa.
Por supuesto, esto no es lo ideal. En el lado positivo, me imagino que debe haber personas por ahí que prueben e implementen software de manera segura en entornos irreplicables como este, y probablemente pueda seguir sus pasos.
¿Cómo lo hacen quienes manejan efectivamente este tipo de situaciones?
testing
development-process
Jason Swett
fuente
fuente
Respuestas:
Esto sucede todo el tiempo en el mundo real. Conozco a un tipo que escribe aplicaciones que controlan gigantescos invernaderos agrícolas: ventilación, calefacción, control de humedad, lo que sea. No tiene un "invernadero de prueba", pero tiene un programa de simulador proporcionado por la compañía que construye los sistemas de hardware reales. Si el código funciona correctamente con el simulador, se supone que funciona correctamente con el equipo real. En raras ocasiones, el simulador resulta estar equivocado, pero ese es el problema de la empresa de hardware de invernadero para tratar, porque no está simulando correctamente.
fuente
Estas son situaciones en las que la documentación API, los documentos de control de interfaz y los emuladores son primordiales. En una empresa para la que trabajé anteriormente, esto realmente sucedió, esto sucedería con frecuencia dentro de un proyecto durante ciertas fases de integración en las que un segmento estaba listo, pero otros estaban atrasados, se estaba trabajando en otra característica o por alguna otra razón no podían implementar La última versión de su segmento para nuestro sistema de prueba. Entonces, sí, en realidad teníamos una réplica fiel de nuestro entorno de producción que probamos; sin embargo, en la práctica, todos los segmentos nunca estuvieron listos a tiempo, pero las interfaces habían sido acordadas y bloqueadas antes del inicio del desarrollo, y se habían creado emuladores que podían imitar en su mayor parte el comportamiento de los otros segmentos.
Como dijo otra respuesta, el emulador es lo que permitirá que las pruebas se realicen antes de la implementación. Un buen emulador; sin embargo, depende de interfaces y documentación bien definidas.
fuente
Estoy en tales situaciones todo el tiempo.
Seguramente no necesita interactuar con toda la aplicación, sino probablemente con algunas interfaces de algún tipo. Asegúrese de haber confirmado y detallado la documentación de las interfaces, luego configure los simulacros de estas interfaces solo para verificar que su código agregado / modificado funciona de la manera en que desea que funcione.
También puedes hacer un híbrido. Intente replicar las partes que puede hacer con bastante facilidad, luego "conéctese" a los sistemas reales (si esto es posible en su situación). Lo hice con cierto éxito, en algunos casos donde mi lógica y el software del servidor se ejecutaban localmente, pero todavía tenía conexiones con el sistema ERP real para verificar las facturas, etc. No es ideal, pero las cosas rara vez lo son.
Dado que solo tiene un sistema de producción con el que trabajar, tenga en cuenta que no puede contar solo el tiempo de desarrollo ahorrado en la configuración de una réplica, sino que debe tener en cuenta el riesgo comercial de usar código en gran medida no probado con datos comerciales en vivo. Su código SERÁ menos confiable que el código probado contra una réplica. ¿Pueden los sistemas estar inactivos por algún tiempo? ¿Se pueden restaurar en caso de corrupción de datos? ¿Cuánto cuesta eso?
Una práctica recomendada en las empresas es colocar una réplica (o quizás más de una) de la producción en el momento en que se configura el entorno de producción. En ese momento, el costo adicional no será tan grande.
fuente
Nuestro sistema funciona con varios sistemas externos grandes. Combinamos los siguientes enfoques cuando los probamos si no tenemos una configuración completa de extremo a extremo:
fuente