Perspective

Clasificación automatizada de defectos

Otro paso hacia la automatización del ciclo de vida de las pruebas

Ajit Rajshekar,

Director Asociado - Automatización Inteligente

Publicado: octubre 4, 2022

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.

La necesidad de una clasificación automática de defectos (ADT)

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:

  1. Identificar los scripts de prueba que han fallado.
  2. Analizar manualmente el fallo del script de prueba.
  3. Clasificar los problemas según sus verdaderas razones para el fracaso.

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.

¿Cómo funciona la clasificación automática de defectos (ADT)?

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.

 

Ventajas clave:

El resultado de la solución ADT es amplio, ya que mejora los siguientes procesos:

  • Clasificación de los fallos de las pruebas
  • Análisis de la causa raíz de los defectos 
  • Recomendación de pasos de resolución 
  • Identificación de defectos duplicados 
  • Creación de un resumen de los defectos de las pruebas, incluyendo detalles de desglose 
  • El suministro de alertas/notificaciones a los expertos en la materia (SME) en relación con los defectos críticos y de alta gravedad; esto permite una acción rápida y decisiva 

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.

Ajit Rajshekar

Ajit Rajshekar

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.

Contenido relacionado