Pruebas, retroalimentación y defectos
Antes de pasar a las pruebas continuas, vamos a tocar la base de lo que son las pruebas, junto con cómo y cuándo juegan un papel crucial.
Las pruebas son un proceso en el que se valida el producto desarrollado frente a los requisitos funcionales y no funcionales. Las pruebas son la fase en la que se averigua si el producto funciona realmente según el diseño, y si el producto cumple con las historias de usuarios que han llenado el historial del producto.
En otras palabras, la fase de prueba le proporciona la información que le ayudará a determinar si se necesitan más cambios. Una retroalimentación más rápida es mejor para usted. ¿Por qué? Porque al ir demasiado lejos por el camino equivocado, te arriesgas a tener que rehacer más de lo que desarrollaste originalmente. En algunos casos, puede que no sea posible arreglar los defectos porque la retroalimentación llegó dos días antes de su despliegue programado. Entonces, ¿qué hace usted? Empujas los defectos a la producción, con la esperanza de arreglarlo algún día. ¿Los defectos siempre se arreglarán en la producción? ¡Ya sabes la respuesta!
¿Qué son las pruebas continuas?
Las pruebas continuas son el proceso en el que las integraciones de código que se construyen durante el proceso de integración continua se envían a un canal de varias pruebas (integración, sistema, rendimiento, regresión y aceptación del usuario, por nombrar algunas) y las pruebas se ejecutan automáticamente, sin ninguna participación humana.
Cada vez que los desarrolladores integran su código, éste pasa por el ciclo de Integración Continua que se discutió anteriormente. Si el proceso tiene éxito, el binario que se construye a partir del proceso de Integración Continua será probado automáticamente. Como se ilustra en la figura 2, el binario se ejecuta automáticamente a través de las pruebas de integración. Si tiene éxito, le sigue la prueba del sistema. Si tiene éxito, sigue la prueba de regresión. Si la regresión tiene éxito, se ejecutan pruebas de aceptación del usuario (UAT) automáticas. De la misma manera, puede agregar, eliminar o modificar cualquier prueba que necesite en este proceso.
El proceso de pruebas continuas asegura que una vez que el código se integra, se prueba automáticamente.
Pruebas automatizadas vs. pruebas continuas
Las pruebas automatizadas son un proceso en el que el código del desarrollador se ejecuta a través de herramientas de prueba alimentadas con scripts de prueba que ejecutan cada prueba. No hay intervención humana en el proceso de pruebas automatizadas, aparte de escribir los guiones de las pruebas.
Las pruebas continuas son un proceso en el que la ejecución de las pruebas se ejecuta a través de las herramientas de prueba de forma automática tras la integración del código . Como antes, las herramientas de prueba están pre-cargadas con los scripts de prueba. No hay intervención humana en las Pruebas Continuas también, excepto con el desarrollo de los scripts.
Entonces, ¿cuál es la diferencia entre las pruebas automatizadas y las pruebas continuas? En la Prueba Automatizada, el código se integra con la línea principal, luego se desarrollan los scripts de prueba automatizada, y los binarios se prueban contra estos scripts automáticamente usando suites de prueba automatizada.
En las pruebas continuas, los guiones de las pruebas se escriben antes de que comience la codificación. Así, cuando el código se integra, las pruebas de automatización se ejecutan automáticamente una tras otra – de ahí el término Prueba Continua. Las metodologías de desarrollo como TDD y BDD se adaptan bien al marco de trabajo de DevOps, ya que son uno de los habilitadores de las Pruebas Continuas.
La ventaja de las pruebas continuas sobre las pruebas de automatización es que una vez que el código se comprueba en el repositorio de código fuente, comienza el proceso de construcción y validación, y la retroalimentación se obtiene rápidamente. No hay ningún hueco en el proceso en el que el mecanismo de integración, prueba y retroalimentación espere la intervención humana.
La diferencia entre las pruebas automatizadas y las pruebas continuas se puede explicar mejor en la figura 3.