Equipo editorial de Getronics
En este artículo:
A medida que las empresas digitales dan más importancia a la calidad del software y al cumplimiento de los plazos de publicación, las tecnologías de automatización de pruebas aplicadas a las fases finales de las pruebas y el aseguramiento de la calidad (QA) adquieren mayor relevancia.
La décima edición (2018-2019) del Informe Mundial de Calidad, publicado por Capgemini y Sogeti en colaboración con Micro Focus, revela que la automatización es parte integral de las prácticas ágiles y DevOps, sirviendo como el medio más eficaz para mejorar el rendimiento del usuario.
El informe, elaborado a partir de entrevistas con aproximadamente 1700 ejecutivos de TI de 32 países (50 de ellos en Italia), subraya el imperativo de garantizar la satisfacción del usuario como objetivo principal de las pruebas y el control de calidad. Este objetivo se clasificó como clave para el 42% de los encuestados este año, frente al 27% en 2017, junto con la necesidad de identificar errores antes de entrar en funcionamiento (42%, frente al 34% en 2017). Para el 41 % de los encuestados (frente al 29 % en 2017), las capacidades de control de calidad y pruebas contribuyen al crecimiento del negocio y a los ingresos de la empresa.
El control de calidad y la automatización de pruebas están revolucionando el ciclo de vida del desarrollo. Tras años de implantación en entornos específicos y segregados, estas prácticas se han expandido y están remodelando el ciclo de vida del desarrollo.
Según los autores, las tendencias más significativas en la actualidad giran en torno a las pruebas basadas en modelos (para la generación automática de guiones y las pruebas automatizadas; disponibilidad prevista el año que viene para el 61 % de los encuestados), la automatización robótica de procesos (RPA 54 %) y la automatización cognitiva (49 %). Las pruebas automatizadas de API se perfilan como una tendencia inminente para los próximos dos años. El informe indica que el 18% de las pruebas funcionales ya se realizan con herramientas de scripting, mientras que el 16% utiliza herramientas de automatización de pruebas. La automatización se emplea en el 16% de las pruebas de rendimiento y en el 16% de las pruebas de seguridad. Además, el 15% de los encuestados emplea la automatización de pruebas de extremo a extremo en todos los escenarios.
¿Es la automatización de escenarios de pruebas una solución adecuada?
Los escenarios de las pruebas pueden automatizarse cuando las funciones críticas requieren pruebas repetitivas o son demasiado complejas para manejarlas manualmente. Por ejemplo, las pruebas que implican grandes volúmenes de datos o procedimientos intrincados de introducción de datos se adaptan a la automatización.
Ventajas de las herramientas de automatización de pruebas sobre las pruebas manuales
Hoy en día, la automatización de pruebas es una estrategia esencial, sobre todo cuando se analizan productos o aplicaciones complejos con miles o millones de líneas de código, que utilizan rutinas de prueba largas, repetitivas y tediosas. Gracias a las herramientas de automatización de pruebas, los probadores no sólo pueden agilizar su trabajo, sino también reducir o eliminar posibles errores. Las pruebas automatizadas pueden programarse para funcionar sin supervisión y facilitar la comparación de los resultados con los previstos. Sin embargo, esto no implica una falta de control, ya que las herramientas de automatización de pruebas pueden integrar funciones de generación de informes capaces de registrar la actividad de cada script de prueba, supervisando el progreso y el estado en un momento dado.
La automatización de pruebas permite ahorrar tiempo y recursos al mejorar la precisión y la cobertura de las pruebas e identificar fallos y errores de código de forma más eficaz y eficiente. También permite a los equipos de control de calidad aumentar la reutilización y la adopción de guiones de automatización de pruebas, garantizando una configuración y unos procedimientos de prueba coherentes con cada nueva comprobación del código. Además, la automatización de pruebas permite la automatización de pruebas funcionales, pruebas de rendimiento y pruebas de estrés a gran escala. Por ejemplo, puede aplicarse para realizar comprobaciones en infraestructuras multilingües y sitios distribuidos por diversas zonas geográficas.
En el modelo DevOps, la automatización de las pruebas adquiere una importancia aún mayor
La importancia de las herramientas de automatización de pruebas sigue aumentando en el contexto del modelo DevOps, que, a diferencia de las metodologías tradicionales basadas en el paradigma clásico de "cascada", pretende potenciar la agilidad y la automatización en el ciclo de desarrollo y distribución de software. Hoy en día, los métodos de desarrollo Agile y DevOps se adoptan ampliamente en los departamentos de TI para acelerar la publicación de software, reducir costes y mantener la calidad y fiabilidad del código. Mediante las prácticas CI/CD (integración continua, entrega continua/despliegue continuo), DevOps fomenta una canalización de creación, distribución e implementación de código totalmente integrada y automatizada.
Sin embargo, dentro de este proceso altamente automatizado, la fase de pruebas no debe obstaculizar el proceso general. Por lo tanto, el modelo DevOps adopta pruebas continuas, en las que el código se prueba en cada etapa del proceso de despliegue continuo a través de un mecanismo recursivo de retroalimentación continua. Por ejemplo, cuando se modifica el código, se somete a una verificación inmediata mediante un conjunto de pruebas unitarias automatizadas. Si la prueba falla, el código se rechaza; si tiene éxito, pasa a las siguientes etapas de despliegue, y así sucesivamente. Las pruebas continuas se complementan con las "pruebas por turnos", una estrategia que pretende introducir las pruebas de software en una fase temprana del ciclo de desarrollo.
Un componente fundamental de las pruebas continuas
Las pruebas continuas, como metodología de pruebas, no pueden lograrse únicamente mediante la implantación de nuevas tecnologías o herramientas de pruebas; requieren un cambio cultural en la mentalidad de los probadores y una transformación de los procesos de desarrollo. Sin embargo, las pruebas continuas no pueden realizarse sin herramientas de automatización de pruebas adecuadas.
En el contexto de las pruebas continuas, las pruebas automatizadas se emplean para ejecutar múltiples operaciones automáticamente. Esto abarca, por ejemplo, la verificación de componentes y segmentos individuales del código del programa (pruebas unitarias), las pruebas funcionales, las pruebas de regresión (centradas en la validación de la funcionalidad del software tras la adición de nuevas características y funciones) y las pruebas de integración (que evalúan el comportamiento del sistema de forma holística y la precisión de las interacciones entre los módulos del programa, las API, el software de terceros y otros componentes de la arquitectura de la aplicación).