Otro paso hacia la automatización del ciclo de vida de las pruebas
Director Asociado - Automatización Inteligente
Las pruebas efectivas son una fase esencial en el proceso de desarrollo de software. Para mejorarlas, las empresas han empezado a pasar a la automatización extrema de las pruebas. El canal de integración/entrega continua (CI/CD) permite una mayor cobertura de la automatización, maximizando la eficiencia de todo el proceso. Sin embargo, sigue habiendo desafíos. El ingeniero de desarrollo de software en pruebas (SDET) a menudo necesita ayuda para escudriñar los informes y registros de automatización y para depurar los resultados de las pruebas. Gracias a los avances tecnológicos, los ingenieros pueden ahora obtener ayuda a través de una nueva solución automatizada de clasificación de defectos. Esta solución/estrategia forma parte de un concepto conocido como automatización del ciclo de vida de las pruebas, que reduce sustancialmente los errores humanos. Además, ayuda a las empresas a ofrecer aplicaciones sin errores a sus usuarios.
Este artículo es el último de una serie de tres partes sobre este tema. El primer artículo, "Automatización de pruebas de autocontrol - un paso hacia la automatización del ciclo de vida de las pruebas", se publicó en julio de 2021, y el segundo, "Selección y priorización de pruebas automatizadas basadas en el impacto," se publicó en marzo de 2022.
Incluso cuando las pruebas se automatizan, las actividades auxiliares (como el mantenimiento de scripts, el análisis de impacto y la clasificación de defectos) pueden verse relegadas. La persistente naturaleza manual de estas actividades puede ralentizar el desarrollo del software. Persiste la necesidad de una automatización que se lleve a cabo durante todo el ciclo de vida de las pruebas y que agilice el ciclo de vida del desarrollo de software (SDLC). Afortunadamente, el auge de las técnicas de inteligencia artificial/aprendizaje automático (IA/ML) y las capacidades de programación han creado un cambio de paradigma para abarcar la automatización del ciclo de vida de las pruebas y no limitarse a la automatización de las mismas. Ahora, los ingenieros de automatización pueden centrarse únicamente en la creación de nuevos scripts de prueba.
Dentro del mundo de la automatización del ciclo de vida de las pruebas, la selección automatizada de defectos (ADT) está atrayendo interés, y los clientes están tomando nota. La mayoría de los ingenieros de automatización y SDET siguen un proceso de tres partes:
Este enfoque es razonable cuando el volumen de pruebas es bajo o cuando la ejecución de pruebas es poco frecuente. Sin embargo, es fácil imaginar un escenario en el que muchos scripts de prueba automatizados deban ejecutarse diariamente. Los ingenieros de automatización pueden verse abrumados y necesitar un mecanismo automatizado que les ayude a clasificar y registrar los defectos.
Figura 1: Flujo de trabajo de una ADT
La solución ADT utiliza un modelo de IA/ML para autocategorizar los scripts de prueba fallidos en categorías predefinidas basadas en la ejecución de pruebas y en los patrones de fallo. Ayuda a identificar las causas raíz de las ejecuciones fallidas y sugiere acciones recomendadas basadas en el conocimiento de las ejecuciones anteriores.
Consta de los siguientes pasos:
Paso 1: Cotejo del resultado de la ejecución del script de prueba
Independientemente del marco de automatización de pruebas que se utilice — ya sea basado en herramientas de código abierto como selenium/extent reporter o en herramientas comerciales existentes (COTS) como UFT — los resultados de las pruebas deben recopilarse en una ubicación de acceso común para el operador de ADT.
Paso 2: Supervisión mediante el agente de ADT
El agente sondeará continuamente los informes y el seguimiento de la pila de resultados de la ejecución de las pruebas para recopilar todos los resultados y trasladarlos a una base de datos.
Paso 3: Clasificación automatizada de defectos (ADT)
La solución ADT recopila los datos que el operador de ADT envía a una base de datos. Tras la preparación inicial de los datos, éstos se introducen en un modelo clasificador, que ayuda a determinar el motivo del fallo. El fallo de la prueba se clasifica basándose en la descripción del resultado y cotejando patrones con los datos históricos. Esta clasificación determina si el fallo se debió a un fallo de configuración, a un fallo de la infraestructura de pruebas o a un fallo del producto. Si en algún momento el modelo clasificador no puede autoclasificar el defecto debido a una baja confianza, el humano en el bucle (HITL) entra en escena para ayudar con el flujo de trabajo.
Paso 4: Desduplicación de defectos
Una vez determinada la causa del fallo, se pasa a la desduplicación de los defectos, y el modelo trata de identificar los defectos de predicado similares que ya existen en la herramienta de gestión de defectos. Si el modelo de clasificación no puede tener éxito debido a una baja confianza, el humano en el bucle entra en escena para ayudar con el flujo de trabajo.
Paso 5: Registro de defectos
El registro de defectos es el último paso del proceso, que cierra el bucle. La solución debe actualizar el defecto existente si se encuentra un duplicado, o debe registrar un nuevo defecto dentro de la herramienta de gestión de defectos.
El resultado de la solución ADT es amplio, ya que mejora los siguientes procesos:
Los algoritmos de clasificación populares de coincidencia adecuada pueden utilizarse para varios modelos de clasificación. Además, debería realizarse una prueba de concepto (PoC) con datos existentes para determinar el algoritmo adecuado. El equipo de ADT debe trabajar con el equipo de garantía de calidad (QA) para volver a entrenar el modelo con regularidad y clasificar los defectos. La solución ADT ayuda a reducir significativamente el trabajo de clasificación de los fallos de los scripts de prueba. En un modelo sprint con un alto nivel de automatización de DevOps, existe una presión constante sobre los ingenieros de pruebas para que realicen pruebas continuas ajustadas a plazo, y para que lo hagan con eficiencia. Los atascos del proceso manual de clasificación de defectos consumen el ancho de banda de los SME, a menudo cuando deberían centrarse en las pruebas. Este efecto se magnifica cuando hay miles de scripts automatizados. Sería sensato que las empresas invirtieran en una solución que tratará de solucionar estos retos.
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