Así que pruebas todas tus funcionalidades, pruebas tu design, pasas por todos los requisitos, te aseguras de que todo funcione. Si hay un error, no afecta a tus usuarios finales porque, de nuevo, no tienen acceso a él. No están dirigidos a ellos. Así que cuando hay un error, lo envías de vuelta a tu equipo de desarrollo. Lo corrigen. Lo pruebas de nuevo y ese proceso continuará hasta que tengas una función sin errores en producción.
Y luego, una vez que sabes que tu función está funcionando en producción, puedes activar la bandera sabiendo que tus funcionalidades están funcionando en producción al 100% y no has roto nada que ya existía. Y ahora tus usuarios están felices y están bailando porque tienen una función perfecta y pensé, esto es maravilloso. Este es un gran proceso. Como las banderas de funciones son geniales, pero ¿cómo las automatizas? No puedes probar manualmente cada función cada vez que lanzas una nueva versión. Y con las banderas de funciones, tienes esta complejidad adicional, ¿verdad? Entonces, ¿cómo lo automatizas? Y aquí hay dos opciones para la automatización. Y voy a explicar ambas.
La primera opción es dirigirse a los usuarios de prueba y automatizar los flujos con ellos. Lo que significa es que aquí, cuando te diriges a tus usuarios, también creas un automation robot, solo un usuario de prueba que se utilizará para ejecutar estas pruebas en producción. Así que cada vez que este usuario de prueba inicie sesión, tendrá acceso a esta nueva función. Y lo bueno de esta opción es que la prueba continuará ejecutándose incluso cuando activas la bandera de función, no tendrás que hacer ninguna configuración adicional. La única desventaja de este enfoque es que hay una mayor fragilidad, porque si alguien elimina a ese usuario de la lista de destinatarios o de la lista de permitidos en la bandera de función, tus pruebas fallarán. Así que solo tienes que asegurarte de que, si agregas a ese usuario, nadie lo eliminará de la configuración.
La siguiente opción es anular tus banderas de funciones y crear una abstracción personalizada de la bandera de función. Básicamente, esto significa que para cada función tienes tres pruebas. En la primera prueba, simulas que la bandera de función está activada. Y durante esta prueba, si recibes alguna solicitud preguntando si la bandera de función está activada, como si la prueba llega y pregunta, oye, ¿está activada la bandera de función?, dices que sí, y luego ejecutas la prueba de esa manera. Y luego, en la segunda prueba, simulas que la bandera de función está desactivada. Y si alguna solicitud llega desde la prueba preguntando si la bandera de función está activada, dices que no, y ejecutas la prueba de esa manera. Y luego, en la última prueba, quieres validar que puedes pasar por todo el flujo, independientemente de si la bandera está activada o desactivada. Y así, con este enfoque, eres muy explícito en la prueba, y la prueba se vuelve mucho más autoexplicativa y descriptiva. Así que cada vez que se ejecute una prueba utilizando banderas de funciones, el sistema en prueba simulará todas las variantes en el experimento. Y debido a que es simulado, se reducirá la complejidad de los diferentes escenarios, lo que significa pruebas más rápidas. Básicamente, lo que estás haciendo es establecer el estado de la bandera durante la duración de la prueba.
Comments