devops testing tutorial
Tutorial de pruebas de DevOps: Una encuesta reciente de RightScale descubrió que el 54% de las empresas han adoptado DevOps y el interés en torno a DevOps está aumentando rápidamente.
En este artículo, aprenderemos cómo esta nueva metodología de desarrollo de software afectará la garantía de calidad y cómo la función de garantía de calidad en su conjunto debería evolucionar para adoptar este cambio.
Echa un vistazo => Serie completa de tutoriales de DevOps
En este artículo, aprenderemos más sobre DevOps y cómo afectará el control de calidad y sus funciones.
Lo que vas a aprender:
¿Qué es DevOps?
DevOps: es una combinación de Development yEneraciones - Es una metodología de Desarrollo de Software que busca integrar todas las funciones de Desarrollo de Software desde el desarrollo hasta las operaciones dentro de un mismo ciclo.
Esto requiere un mayor nivel de coordinación entre las diversas partes interesadas en el proceso de desarrollo de software (a saber Desarrollo, control de calidad y operaciones )
Ciclo de DevOps
Un ciclo de DevOps ideal comenzaría desde:
documento de plan de prueba de muestra para aplicación móvil
- El código de escritura del desarrollador
- Creación e implementación de binarios en un entorno de control de calidad
- Ejecutando casos de prueba y finalmente
- Implementación en producción en un flujo integrado y fluido.
Obviamente, este enfoque pone un gran énfasis en la automatización de la compilación, la implementación y las pruebas. El uso de herramientas de integración continua (CI), las herramientas de pruebas de automatización se convierten en una norma en un DevOps ciclo.
¿Por qué DevOps?
Aunque existen sutiles diferencias entre Pruebas ágiles y DevOps , aquellos que trabajan con Agile encontrarán DevOps un poco más familiar para trabajar (y eventualmente adoptar). Si bien los principios ágiles se aplican con éxito en las iteraciones de desarrollo y control de calidad, es una historia completamente diferente (y a menudo una manzana de la discordia) en el lado de las operaciones. DevOps propone corregir esta brecha.
Ahora, en lugar de la integración continua, DevOps implica 'desarrollo continuo' , donde el código se escribió y se comprometió con el Control de versiones, se compilará, implementará, probará e instalará en el entorno de producción que está listo para ser consumido por el usuario final.
Este proceso ayuda a todos en toda la cadena, ya que los entornos y procesos están estandarizados. Todas las acciones de la cadena están automatizadas. También da libertad a todas las partes interesadas para que concentren sus esfuerzos en diseñar y codificar un entregable de alta calidad en lugar de preocuparse por los diversos procesos de construcción, operaciones y control de calidad.
Reduce drásticamente el tiempo de vida a unas 3-4 horas, desde que se escribe y confirma el código de tiempo, hasta la implementación en producción para el consumo del usuario final.
En pocas palabras, DevOps es una extensión de Agile o me gusta llamarlo 'Agile con esteroides'.
Cambio de rol de QA en DevOps
Tradicionalmente, QA obtendría una compilación que se implementaría en su entorno designado y QA luego comenzaría su Funcional & Pruebas de regresión . Lo ideal sería que la compilación se sentara con el QA durante un par de días antes de la aprobación de QA en la compilación. Todos estos pasos cambian en DevOps.
Cambios de control de calidad para DevOps Testing:
- Se requiere QA para alinear sus esfuerzos en el ciclo de DevOps.
- Deben asegurarse de que todos sus casos de prueba estén automatizados y alcancen una cobertura de código cercana al 100%.
- Deben asegurarse de que sus entornos estén estandarizados y que la implementación en sus cajas de control de calidad esté automatizada.
- Todas sus tareas de prueba previa, limpieza, tareas de prueba posterior, etc. están automatizadas y alineadas con el ciclo de Integración Continua.
Como ya se mencionó, DevOps requiere un alto nivel de coordinación entre varias funciones de la cadena de entregables. Esto también significa que los límites entre los distintos roles de los contribuyentes en la cadena se vuelven porosos.
DevOps anima a todos a contribuir a la cadena . Entonces, entre otras cosas, un desarrollador puede configurar implementaciones. Los ingenieros de implementación pueden agregar casos de prueba al repositorio de control de calidad. Los ingenieros de control de calidad pueden configurar sus casos de prueba de automatización en la cadena DevOps.
Colectivamente, todos en la cadena son responsables de la calidad y puntualidad de los entregables.
DevOps y automatización de pruebas
Para lograr tal velocidad y agilidad, es importante automatizar todos los procesos de prueba y configurarlos para que se ejecuten automáticamente cuando se complete la implementación en el entorno de control de calidad. Se utilizan herramientas de pruebas de automatización especializadas y herramientas de integración continua para lograr esta integración.
Esto también requiere la construcción de un marco de pruebas de automatización maduro a través del cual se pueden escribir rápidamente nuevos casos de prueba.
Estrategia de prueba de DevOps: consejos para el éxito de DevOps
- Es necesario identificar los casos de prueba que deben ejecutarse para una compilación en particular.
- La ejecución de la prueba debe ser esencialmente ajustada.
- El QA y Dev deben sentarse juntos e identificar las áreas afectadas debido a una construcción en particular y ejecutar esos casos de prueba relacionados más una prueba de cordura.
- También debe configurar herramientas de cobertura y análisis de código especializadas para asegurarse de lograr una cobertura de código cercana al 100%.
- El concepto de ejecutar todos Los casos de prueba de regresión para un pase de prueba pronto se vuelven obsoletos.
- La estrategia en torno a la prueba de nuevas funciones debe formalizarse y las compilaciones provisionales se pueden suministrar a QA, quien, a su vez, creará scripts de prueba y ejecutará estas pruebas de automatización en las compilaciones provisionales hasta que el código se vuelva lo suficientemente estable como para ser implementado en el entorno de producción. .
- Todos los entornos necesarios para las pruebas deben estar estandarizados y las implementaciones deben automatizarse.
- Utilizando varias técnicas de automatización, QA debería poder activar las pruebas de automatización en varios entornos multiplataforma (y entre navegadores en el caso de aplicaciones web).
- La ejecución paralela de pruebas ayuda a reducir el tiempo de vida, que a su vez es el quid de una implementación exitosa de DevOps.
- Los criterios de salida deben establecerse para cada ejecución, de modo que cuando los resultados de las pruebas se realicen a la cadena, se tome una decisión de ir / no ir a Producción.
- Los errores bloqueadores o críticos encontrados deben informarse y corregirse y pasarse por la misma cadena de eventos antes de que el código se implemente en el entorno de producción.
Monitoreo de aplicaciones
El control de calidad también debería poder detectar problemas de forma temprana e informarlos de forma proactiva. Para lograr esto, necesitan configurar el monitoreo en el entorno de producción para poder exponer errores antes de que causen una falla.
La configuración de contadores especializados como tiempos de respuesta, memoria y utilización de CPU, etc. puede proporcionar una gran cantidad de información sobre la experiencia del usuario final.
Por ejemplo , si el tiempo de respuesta promedio para el inicio de sesión aumenta gradualmente a lo largo de las distintas compilaciones, QA debe informar de manera proactiva este problema para optimizar el código de inicio de sesión; de lo contrario, las compilaciones futuras podrían causar frustración en el usuario final debido a los altos tiempos de respuesta.
ejemplo de árbol binario de c ++
QA también puede utilizar un pequeño subconjunto de casos de prueba de alta prioridad existentes para ejecutarlos periódicamente en producción, para monitorear activamente el entorno. Errores como 'Este error aparece a veces' o ' No puede reproducirse ”Se puede captar a través de esta estrategia que, al final, hace que la aplicación sea más estable y también consigue que los usuarios finales estén más satisfechos.
Nuevamente, estos monitores deben configurarse para ejecutarse automáticamente con informes completos (como registros y capturas de pantalla de fallas, etc.).
Conclusión
Waterfall dio paso a V-Model, que a su vez fue reemplazado por Agile como la opción preferida para el desarrollo de software.
DevOps es el futuro. Es un ciclo de mejora continua al que se someten los modelos de desarrollo de software de vez en cuando. Necesitas abrazarlo, comprenderlo e inculcarlo.
Debe dominar las diversas herramientas de automatización e integración continua para que sus esfuerzos de automatización agreguen valor a la cadena y sean lo suficientemente esbeltos para adaptarse rápidamente a los cambios. Puede estar trabajando en proyectos que pueden involucrar alfa , beta y UAT entornos antes de ser implementados en el entorno de producción.
El concepto esencialmente sigue siendo el mismo. La automatización y más automatización es el núcleo de un ciclo DevOps exitoso. Pero, como QA, también debería poder trazar una línea en cuanto a cuánta automatización es demasiada automatización.
Sobre el Autor: Aniket Deshpande está trabajando como QA Manager en Nuestras tecnologías , Pune y ha estado trabajando en el campo de las pruebas de software durante los últimos 9 años en varios dominios y plataformas. Es un apasionado de DevOps y trabaja como consultor para guiar a las organizaciones en la adopción de estrategias de prueba de DevOps.
Si está interesado en saber más, o está buscando implementar DevOps y el enfoque de prueba asociado en su organización, no dude en contacto el autor.
¿Qué opinas sobre DevOps Testing? ¿Cree que hacer que los desarrolladores y la gente de operaciones trabajen juntos puede beneficiar al proyecto?
Háganos saber sus comentarios / sugerencias sobre este artículo.
PREV Tutorial | SIGUIENTE Tutorial
Lectura recomendada
- Pruebas continuas en DevOps
- Tutorial de DevOps: la guía definitiva para DevOps (más de 25 tutoriales)
- Desmitificando DevOps: tutorial en vídeo (parte 1)
- 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)
- ¿Qué son las pruebas de software? Más de 100 tutoriales de prueba manuales gratuitos
- Pruebas funcionales versus pruebas no funcionales
- Pruebas alfa y beta (una guía completa)