Director Asociado - Automatización Inteligente
Las pruebas eficaces son esenciales para todo el proceso de desarrollo de software. Pero los arquitectos de pruebas y las pymes a menudo necesitan ayuda para elegir la prueba óptima para sus necesidades de regresión.
Gracias a los avances tecnológicos, pueden obtener esa ayuda en una nueva solución llamada Automated Impact-Based Test Selection and Prioritization. La solución o enfoque forma parte de un concepto conocido como “automatización del ciclo de vida de las pruebas”, que reduce sustancialmente las posibilidades de que se produzcan errores humanos. Esto, a su vez, ayuda a las empresas a ofrecer aplicaciones sin errores a sus usuarios.
Escribí sobre este concepto en julio de 2021 en una entrada del blog que introdujo el concepto de automatización de pruebas de autorreparación, que utiliza algoritmos para arreglar pruebas defectuosas sin intervención humana. Un extracto:
En los últimos años, una idea ha ido ganando terreno en el sector de las pruebas. Mientras que las pruebas en sí están automatizadas, las actividades auxiliares que forman parte de todo el ciclo de vida de las pruebas, como el mantenimiento de los scripts, el análisis de impacto, la clasificación de los defectos, etc., siguen siendo extremadamente manuales. Depender de procesos manuales tiende a ralentizar el proceso de desarrollo de software. De ahí que ahora veamos un cambio de paradigma en la filosofía para abarcar la automatización del ciclo de vida de las pruebas y no solo la automatización de las pruebas. El auge de las técnicas de IA/ML, junto con las capacidades de programación, contribuye en gran medida a esta filosofía en desarrollo.
Por tanto, el objetivo es automatizar todo el ciclo de vida de las pruebas. Esto acelera el proceso del SDLC porque los ingenieros de automatización pueden centrarse en la creación de nuevos scripts, en la optimización de las pruebas y dedicar menos tiempo al mantenimiento de los antiguos.
Explorar el atractivo de la selección y priorización de pruebas basadas en el impacto
Hoy investigaremos la selección y priorización de pruebas basadas en el impacto, otro engranaje de la rueda de la automatización del ciclo de vida de las pruebas que está despertando mucho interés. Esta solución de pruebas ofrece a las pymes de pruebas un mejor arsenal para limitar los errores humanos y mejorar la calidad de las aplicaciones.
Cuando hablamos con nuestros clientes de Virtusa, nos dimos cuenta de algunos problemas evidentes:
Vamos a profundizar en este aspecto.
Este diagrama ilustra un típico ciclo de sprint: los desarrolladores crean las características para los requisitos del sprint y los SDET (ingenieros de desarrollo de software en pruebas) crean sus guiones de prueba automatizados. Cada compilación incluye un análisis de impacto para determinar el conjunto de regresión; el conjunto de pruebas se ejecuta contra la compilación. Los defectos se registran y el backlog vuelve al siguiente sprint.
En la actualidad, las empresas suelen ejecutar un conjunto de pruebas de regresión estándar en cada compilación. A continuación, las pymes eligen manualmente las pruebas adicionales que se añadirán al conjunto de regresión. El defecto de este enfoque es que depende de la experiencia de las pymes y no del conjunto de cambios para esa compilación.
También tiene muchos pasos manuales que hacen perder tiempo y esfuerzo en cada sprint. Y, lo que es más importante, es propenso al error humano. Por otro lado, las empresas pueden ejecutar todo el conjunto de pruebas como una regresión para estar seguros de la compilación. De nuevo, esto añade tiempo y esfuerzo a todo el proceso de pruebas.
Cómo funciona la selección y priorización de pruebas basadas en el impacto
La selección y priorización de pruebas basadas en el impacto es una solución inteligente que aprende y desarrolla una asignación de código fuente a pruebas. Este método utiliza perfiladores y aplica heurística a partir de datos históricos para generar el conjunto de pruebas basándose en los datos de commit que entran en cada compilación.
Consta principalmente de cuatro pasos principales:
Esta heurística de priorización de pruebas puede refinarse aún más para incluir ciertos algoritmos de aprendizaje reforzado (RL) para ayudar a refinar la lista priorizada de casos de prueba. Para ello, se seleccionan y priorizan los casos de prueba en función de su duración, la última ejecución anterior y el historial de fallos, bajo la dirección de una función de recompensa integrada en el algoritmo.
Principales ventajas de la selección y priorización de pruebas basadas en el impacto
Las ventajas de este proceso son sencillas: ayuda a los equipos de pruebas a seleccionar el conjunto de pruebas de regresión óptimo en función de los cambios de código. Esto, a su vez, mejora la calidad del producto y agiliza la experiencia del cliente. El enfoque del análisis de impacto basado en los datos lo hace inmune a los errores humanos, lo que permite ahorrar mucho tiempo para determinar el conjunto de pruebas de regresión. Esto es crucial para las squads que producen frecuentes compilaciones para probar.
La automatización del ciclo de vida de las pruebas está llamada a ser una de las principales innovaciones que va a revolucionar la forma de realizar las pruebas en la próxima década. El uso de técnicas de IA/ML será un catalizador y el principal motor de crecimiento en el ámbito de las pruebas de software.
Director Asociado - Automatización Inteligente
Ajit Rajshekar es un arquitecto de pruebas con más de 15 años de experiencia en ingeniería de calidad, principalmente en el ámbito de la ingeniería de productos (dispositivos médicos). Sus intereses incluyen la exploración y el uso de nuevas metodologías/herramientas en la automatización de pruebas y la inteligencia cognitiva (AI/ML) en las pruebas.
Suscríbase para estar al día de las últimas novedades del sector, incluidas las perspectivas de la industria y las capacidades de las soluciones innovadoras