continuous testing devops
preguntas de la entrevista de prueba de servicios web restful
¿Qué son las pruebas continuas y la canalización de pruebas continuas en DevOps?
Espero que hayan disfrutado del último tutorial de Implementación continua en DevOps .
Sabemos la importancia de las pruebas en cualquier entrega de software y DevOps es un ciclo corto de entregas, es imposible ejecutar todos los casos de prueba diseñados cada vez de forma manual, cuando se actualiza una sola línea de código en la herramienta de control de versiones y ahí es donde continua Las pruebas y la canalización de pruebas continuas automatizadas entran en escena en DevOps.
Lectura sugerida => Tutorial de formación de DevOps desde cero
Beneficios de la TC:
-
- La calidad y la velocidad son los grandes beneficios de la TC.
- Comentarios más rápidos y rápidos sobre el código.
- Aumenta la confianza del equipo y les anima a mejorar continuamente.
VIDEO Parte 3 Bloque 4: Prueba continua- 14 minutos 39 segundos
Transcripción:
En este bloque, aprenderemos sobre Prueba continua y tubería de prueba continua en detalle.
Las pruebas continuas son otro proceso importante de la tubería de entrega continua junto con la Integración Continua, en una tubería, incluye, varias fases de prueba en el que las pruebas automatizadas se ejecutan junto con las puertas de calidad automatizadas intermedias.
Por lo tanto, las pruebas continuas son, ejecutando pruebas automatizadas, continua y repetidamente contra el código base y los diversos entornos de implementación.
Principalmente, las pruebas unitarias, el análisis de código estático, el análisis de código de seguridad, las pruebas de integración, las pruebas de carga y rendimiento son parte de las pruebas continuas que se ejecutan en una tubería de prueba continua automatizada.
Como la integración continua y la implementación continua se denominan CI, CD, las pruebas continuas se denominan más a menudo como CT.
Si ve este diagrama, que es una canalización de entrega continua, esta canalización incluye dos canalizaciones, una es una canalización de compilación que es una canalización de CI o una canalización de integración continua, que consiste en un disparador de compilación automatizado, compilación, construcción e implementación.
El otro es una tubería de prueba, que es una tubería de prueba continua
Ahora veamos más sobre las pruebas continuas.
Sabemos la importancia de probar, probar cada línea de código ... probar cada vez ... y probar en diferentes etapas y es casi imposible ejecutar todas las pruebas diseñadas cada vez manualmente cuando una línea de código se actualiza en el control de versiones.
Ahí es donde entran en juego las pruebas continuas.
Por lo tanto, a menos que el código que ingresa en la tubería integrada continua automatizada se pruebe a fondo y garantice la calidad requerida, no tiene sentido entregar el software a los clientes. Quiero decir que no se puede garantizar la calidad a menos que el código se pruebe a fondo.
Por lo tanto, la prueba continua, como se definió anteriormente, es ejecutar varios tipos de pruebas, continuamente en la base del código y en diferentes entornos en los que se implementa, según lo predefinido y diseñado en la tubería de entrega continua.
Como puede ver en la imagen, las pruebas unitarias ocurren en el propio servidor CI, que prueba cada unidad del sistema de forma aislada.
Las pruebas de integración ocurren en el entorno de integración, que básicamente verifica los componentes integrados juntos. Pruebas del sistema en el entorno de prueba del sistema donde el sistema GRANDE con todos los componentes e interfaces integrados se prueba a través de escenarios a nivel de sistema en un entorno de prueba del sistema, etc.
Y la profundidad de las pruebas a menudo progresa a medida que la simulación del entorno se acerca a la producción.
Las pruebas continuas se vuelven progresivamente más difíciles y más largas con la progresión hacia el entorno de producción, ya que necesitamos agregar lentamente una serie de pruebas y pruebas más complicadas a medida que el código madura y la complejidad del entorno avanza.
No es que se ejecuten los mismos casos de prueba en todo momento, los casos de prueba deben actualizarse cada vez en diferentes fases y los scripts automatizados se actualizan, a medida que el código madura, progresa a un nivel superior de entorno donde las configuraciones y la infraestructura también avance, hasta que entre en producción.
Por lo tanto, incluso el tiempo necesario para ejecutar las pruebas aumenta a medida que las pruebas avanzan hacia el punto de lanzamiento, por ejemplo, las pruebas unitarias pueden tardar mucho menos en ejecutarse, mientras que algunas pruebas de integración o algunas pruebas del sistema o pruebas de carga pueden tardar algunas horas en ejecutarse o pueden tardar pocos días para correr.
Aquí, la prueba continua consistiría principalmente en ejecutar los casos de prueba automatizados automáticamente con un disparador. Pero como definimos anteriormente, la entrega continua también implica ciertas pruebas manuales y puertas, en las que ciertas pruebas se llevan a cabo manualmente, antes de entrar en producción.
Estas puertas de calidad intermedia en cada etapa de la prueba y aumentan la confianza en el código.
Por lo tanto, la tubería de prueba continua como tal incluye pruebas unitarias junto con verificaciones de seguridad automatizadas preliminares. Luego pasa a un nivel de pruebas de integración, donde se ejecutan pruebas de integración automatizadas, luego a un nivel de sistema donde los escenarios a nivel de sistema se automatizan y ejecutan.
Aquí también se llevan a cabo algunos escenarios de prueba de rendimiento.
Luego pasa a la 'Prueba de aceptación' que básicamente incluye los casos de prueba de aceptación del sitio automatizados y finalmente a la 'Prueba de aceptación del usuario' que podría ser una ejecución manual e incluye la participación del usuario final para llevar a cabo las pruebas y esto será una especie de aprobación final en el producto o una función, donde se invoca la puerta manual y finalmente se implementa en el sitio de producción.
Entonces, básicamente, a medida que avanza la prueba continua, la complejidad de las pruebas y el entorno de prueba aumenta y llega al entorno que está más cerca de la producción, como la simulación.
No necesito mencionar específicamente que todas estas etapas de prueba también incluyen pruebas de verificación de construcción, pruebas de cordura, pruebas de humo y pruebas de regresión, nuevamente, como dije, depende de lo que diseñamos en la tubería de prueba y entrega continua.
Esta es la típica tubería de prueba continua, bueno, puede ser diseñada por el equipo en función del tipo de producto y los diferentes niveles de prueba y tipos de prueba que exige el producto.
Las pruebas continuas requieren la integración del marco de automatización con el control de versiones y la herramienta CI y las diversas herramientas automatizadas para llevar a cabo las pruebas funcionales y no funcionales en las diferentes fases de las pruebas, como:
- Sonda para análisis de código estático,
- Fortify para un análisis de código seguro,
- Selenio para pruebas funcionales,
- Corredor de carga para pruebas de carga, etc.
Microsoft TFS, Jenkins, chef, puppet son algunas de las herramientas que están disponibles en el mercado para diseñar la canalización CI-CD.
Pero la cuestión es que estas herramientas pueden no admitir la automatización completa de un extremo a otro, dependiendo de la herramienta de control de versiones utilizada, por lo que pocas organizaciones pueden preferir desarrollar sus propios marcos de automatización, lo que permite la automatización de extremo a extremo de la canalización de entrega desde el código. comprometerse con la entrega del código.
Por lo tanto, las pruebas continuas, que son una parte muy importante de las pruebas, garantizan la calidad del producto o lanzamiento y se debe tener mucho cuidado con la selección de una herramienta, marco, etc., que determina principalmente la calidad y la velocidad de entrega.
Por lo tanto, la configuración de la tubería de prueba continua correcta lleva un poco más de tiempo en la tubería de entrega continua. No solo en la parte de herramientas y marcos, sino también en la parte de casos de prueba. Las pruebas continuas también incluyen la definición de la tubería de implementación dentro.
Porque CT requiere la implementación automatizada de la compilación en varios entornos en diferentes fases, lo que requiere automatizar la implementación y configurar los entornos a través de scripts automatizados.
Estos scripts automatizados que incluyen la configuración de la infraestructura y el entorno como un código se registran en la herramienta de control de versiones y la canalización de entrega los recoge de la herramienta de control de versiones para llevar a cabo la implementación. Esto se llama canalización de implementación.
Ahora veamos los beneficios de la TC,
Lograr calidad y velocidad es la mayor ventaja de las pruebas continuas.
cuál es el mejor removedor de software espía
A diferencia de antes, donde las pruebas solían ocurrir solo al final, la prueba completa es el concepto de prueba continua y, por lo tanto, la prueba continua en una tubería de entrega, permite al equipo introducir puertas de calidad en cualquier lugar y cualquier número de puertas de calidad que quieran, en orden. para lograr el grado de calidad que necesitan.
Entonces, si el código falla para probar en cualquier punto o puerta en particular en una tubería, el equipo puede retroceder y fallar automáticamente toda la implementación hasta ese punto.
Esto da una indicación clara tanto para el equipo de desarrollo como para el de operaciones de que falta algo y que el equipo puede trabajar para solucionarlo. Por lo tanto, esta es la ventaja y la flexibilidad de la tubería de prueba continua.
Por lo tanto, la introducción de puertas de calidad en varias fases de prueba gobierna mejor la calidad del código en la tubería.
Cuanto mayor sea el número de puertas por las que pase el código, mayor será la confianza del equipo en el código de que puede llegar a la producción con un mayor nivel de calidad.
Por lo tanto, las pruebas continuas aumentan la confianza del equipo y lo alienta a mejorar continuamente.
En general, si el equipo realmente no descuida ninguna de las fallas de prueba en ninguna fase de prueba o puerta de calidad en la tubería, definitivamente las pruebas continuas serán una ventaja para lograr objetivos de alta calidad.
Entonces, para concluir con las pruebas continuas, desde las pruebas unitarias que se ejecutan durante la etapa preliminar hasta las pruebas de aceptación, las pruebas de rendimiento e incluso ciertas pruebas manuales que se van a ejecutar son MUY MUY críticas para definir las pruebas continuas en el proceso de DevOps.
Esto completa nuestra discusión sobre los temas de la Parte 3 de integración continua, entrega continua y pruebas continuas.
En nuestro próximo tutorial, discutiremos más sobre Gestión de la configuración, gestión de versiones y supervisión del rendimiento de las aplicaciones.
PREV Tutorial | SIGUIENTE Tutorial
Lectura recomendada
- Implementación continua en DevOps
- Entrega continua en DevOps
- Las 10 mejores herramientas de prueba continua para pruebas de DevOps (Lista 2021)
- Mejores herramientas de prueba de software 2021 (Herramientas de automatización de pruebas de control de calidad)
- Tutorial de pruebas de DevOps: ¿Cómo afectará DevOps a las pruebas de control de calidad?
- Resumen de los tutoriales en vídeo de DevOps
- Integración continua en DevOps
- Descarga del libro electrónico Testing Primer