Las 4 claves DevOps: 2. Completar los procesos de testing

ayscom-testing-devops

Clave 2 DevOps:

Las 4 claves para alcanzar el éxito en la metodología DevOps

Completar los procesos de testing

devops-ayscom

Breve introducción a la metodología DevOps  

En los últimos años, la metodología DevOps se ha afianzado como la respuesta a la necesidad de estandarizar un proceso mediante el cual, un desarrollo software (nueva funcionalidad, mejora o corrección) pasa de la implementación a la explotación.

Se trata de un enfoque ágil cuyo objetivo principal es reducir los tiempos necesarios dentro del ciclo de vida software (migración entre versiones, ejecución de pruebas, detección de bugs, etc.).

Para alcanzar ese objetivo, la metodología se basa en la idea de reducir la distancia entre los técnicos de Desarrollo (Dev) y los de Sistemas (Ops), permitiendo a ambos equipos trabajar de forma más cercana, aportando mayor agilidad y productividad al entorno de trabajo.

El pilar fundamental sobre el que se basa el sistema de trabajo es la automatización de todos los procesos que intervienen en el ciclo de vida de una aplicación: integración, pruebas, despliegue, monitorización y operación.

Implica un cambio en la cultura y organización global de los equipos de trabajo, fomentando así la colaboración, interacción y cooperación.

En la siguiente tabla, se resumen las implicaciones que tienen los beneficios de la metodología DevOps:

ayscom-beneficios-metodologia-devops-tabla

En esta entrega vamos a explicar la segunda de las 4 fases, las cuales han de llevarse a cabo de manera secuencial y se irán repitiendo en distintas iteraciones en forma de bucle infinito.

Asumir todas las fases de esta metodología DevOps puede suponer un gran reto. Avalados por la dilatada experiencia de Ayscom, proporcionamos los mecanismos necesarios para aplicar este proceso de manera exitosa, lo que repercutirá claramente el la calidad final del producto.

ayscom-DevOps

«La experiencia adquirida por Ayscom tras años aplicando metodologías de desarrollo ágil nos ha permitido identificar estas etapas que tradicionalmente se habían relegado, y trabajar junto con nuestros clientes para ayudarles a afrontarlas de manera exitosa.»

ayscom-testing-devops

Clave 2: Completar los procesos de testing

ayscom-monolithic-and-microservice-architecture

En la fase anterior, Romper con la arquitectura monolítica, se explicó cómo las arquitecturas de microservicios se han convertido en el punto de partida básico para el uso de la metodología DevOps, y se destacaron los factores a tener en cuenta para adoptar este modelo de desarrollo software.

ayscom-development-operations-QA

Si algo ha aumentado en importancia dentro de las empresas que se dedican al desarrollo de software ha sido el papel que juega el Aseguramiento de la Calidad (QA).

Si hace unos años se produjo un crecimiento significativo en el interés por la realización de pruebas funcionales, en la actualidad, la implementación de pruebas de rendimiento se está convirtiendo en uno de los factores clave a la hora de medir la calidad de un producto desarrollado.

Multitud de estudios demuestran la importancia de estas comprobaciones en la experiencia que obtienen los clientes, y es por eso por lo que el testing supone otra etapa clave dentro de la metodología de trabajo marcada por DevOps. El impacto que tiene el conjunto de pruebas que se ejecutan durante el proceso de desarrollo sobre la calidad del producto final es equivalente al del tipo de arquitectura que se utilice o a la calidad del código que se implemente.

El impacto del testing automatizado

La ejecución de los procesos de prueba, de acuerdo con las pautas que marca DevOps, se debe realizar de forma automatizada, devolviendo feedback de todas las comprobaciones que se realicen para que, en caso de superar todas las pruebas, se autorice el despliegue del código implementado. Dentro de la metodología DevOps los principios de testing y feedback automatizado han cobrado especial relevancia, hasta el punto de considerar a los expertos de Aseguramiento de la Calidad como una pieza fundamental más junto con los grupos de Desarrollo y Sistemas.

experiencia-usario-ayscom-devops

Fuentes:

Implantar esta cultura de testing automatizado es una tarea compleja pero que, una vez completada, aporta grandes ventajas en el proceso de desarrollo software, como son la detección temprana de errores en el nuevo código desarrollado o la prevención del despliegue de software con fallos a entornos críticos.

El principal reto al que se enfrentan los equipos de trabajo en el ámbito del testing es ser capaces de dedicar el tiempo suficiente a la implementación de las pruebas necesarias, ya que esta tarea supone un alto esfuerzo para los desarrolladores y, en ocasiones, las circunstancias de un proyecto obligan a priorizar tareas más críticas o urgentes frente al desarrollo de tests. Además, otra situación que puede darse en equipos que ya aplican una metodología de testing es limitarse a la realización de un tipo de pruebas concreto, dejando de lado otras pruebas que son igualmente importantes para verificar el correcto funcionamiento del sistema.

Pruebas de rendimiento para asegurar la calidad

El ámbito de las pruebas de carga o de rendimiento supone uno de esos casos en los que sale a la luz la falta de dedicación en muchos equipos de desarrollo. En ocasiones, para evitar la preocupación por los problemas de rendimiento que puedan darse en un sistema, se tiende a sobredimensionar la infraestructura con el fin de que nunca se pueda llegar a la máxima capacidad de esta. En otros casos, las pruebas de carga se limitan a ejecuciones de «fuerza bruta» en la que se pretende alcanzar el límite de un sistema para conocer el punto en el que se colapsa. Hace algunos años, cuando predominaban las arquitecturas monolíticas, esta forma de actuar era suficiente para conocer las capacidades del sistema.

En la actualidad, la arquitectura de microservicios permite construir sistemas más escalables y dinámicos, en los que limitarse a conocer el punto en el que va a colapsar una infraestructura se queda lejos de las necesidades reales de los equipos de prueba. Hoy en día, ya no basta con verificar que un sistema funciona, sino que es necesario medir el rendimiento del mismo para analizar cómo se comporta en diversas situaciones, con el fin de asegurar unos niveles de calidad en la entrega del servicio acordes a las expectativas marcadas.

Performance testing automatizado

Es importante que, a la hora de seleccionar soluciones y servicios de testing, se analicen correctamente los escenarios de pruebas que se precisan en cada proyecto, destacando la importancia de que dichas herramientas permitan integrarse en los procesos de desarrollo de cada equipo de trabajo. En lo relativo a pruebas de rendimiento, un ejemplo de solución que destaca por su integración con entornos de desarrollo ágil es NeoLoad. Con el objetivo de abrazar completamente los procesos de testing automatizado y el DevOps, NeoLoad ha desarrollado funcionalidades específicas para que la creación, mantenimiento y ejecución de las pruebas se realicen de la manera más ágil posible.

Entre estas funcionales, destacan:

Parametrización automática de los test cases.

Creación de scripts de pruebas con menor necesidad de código.

Actualización automática de los scripts de prueba.

Facilidad para compartir los resultados de las pruebas entre equipos.

Infraestructura dinámica.

API para ejecución automática de pruebas.

Integración con herramientas de monitorización.

neoload-testing-ayscom

Fuente: Neoload.

Todas estas capacidades convierten a NeoLoad en la herramienta más completa para realizar pruebas de rendimiento en entornos DevOps, situándola a la cabeza de las soluciones de performance testing. Además, las opciones de automatización que ofrece la herramienta en lo relativo a creación y actualización de las pruebas a realizar, suponen una reducción en los tiempos necesarios para dichos trabajos. Esto implica que, además de reducir el coste de los trabajos de implementación de los planes de prueba, se agilizan los procesos de testing dentro del equipo, consiguiendo ciclos de trabajo más rápidos y reduciendo el «time to market» de cada nueva versión del software, aumentando aún más los beneficios que se obtienen con las metodologías ágiles. 

«Hoy en día, ya no basta con verificar que un sistema funciona, sino que es necesario medir el rendimiento del mismo para analizar cómo se comporta en diversas situaciones, con el fin de asegurar unos niveles de calidad en la entrega del servicio acordes a las expectativas marcadas.»

Artículo de Alejandro Redondo

Desarrollador de negocio
alejandro_redondo@ayscom.com

aumentar-visibilidad-ayscom-devops

No te pierdas la siguiente entrega:

Aumentar la visibilidad

En el siguiente artículo de inminente publicación, hablaremos de la tercera fase de este proceso, dentro de las 4 claves que propone Ayscom para alcanzar el éxito en la metodología DevOps:  Aumentar la visibilidad.

Descarga el Whitepaper

No te pierdas la siguiente publicación en el blog de Ayscom, mantente informado en nuestras redes sociales y además, aquí tienes a tu disposición el Whitepaper completo sobre las 4 claves de la metodología DevOps:

descargar aquí
WHITEPAPER-DEVOPS-AYSCOM

Deja una respuesta

Tu dirección de correo electrónico no será publicada.