Inteligencia Artificial en el Aseguramiento de la Calidad del Software

mtp
Por mtp

La Inteligencia Artificial (IA) es una rama de la computación que nació en los años 40 del pasado siglo con el objetivo de replicar o imitar las funciones cognitivas del ser humano, dotando a las máquinas de autonomía en todos los sentidos. Hasta la década de los 90 se aplicó de manera experimental, no yendo más allá del desarrollo de agentes conversacionales u ordenadores capaces de jugar al ajedrez.

Pero lo cierto es que ahora la IA se va colando de forma casi imperceptible en la vida cotidiana. Por ejemplo,  cuando Google sugiere el camino más rápido para llegar al trabajo, Amazon recomienda un nuevo objeto de deseo o Netflix decide por el espectador cuál será su próxima serie favorita.

Los fundamentos matemáticos detrás de la IA no son precisamente nuevos. La gran cantidad de datos digitales que se generan cada día, la mejora de las capacidades de proceso, almacenamiento o ancho de banda y la aparición de herramientas como TensorFlow o Caffe  han creado el contexto perfecto para su desarrollo. Los principales sectores que han abrazado esta tecnología son el financiero, seguros, sanidad, fabricación o el aeronáutico. Se trata de aquellos sectores en los que la identificación de patrones dentro de grandes volúmenes de datos puede aportar valor.

La Inteligencia Artificial, sin embargo, aún no se está aplicando con mucha intensidad en el ámbito del desarrollo de software. De hecho, se está aún lejos de que las IAs usurpen el trabajo de los desarrolladores para generar por ellas mismas código efectivo, eficiente y sin errores. Hasta que llegue ese momento, existe un campo dentro de la ingeniería del software donde la Inteligencia Artificial, a día de hoy, sí es capaz de ofrecer grandes beneficios: el Aseguramiento de la Calidad del Software (SQA).

 ¿Cómo da soporte la Inteligencia Artificial a los ingenieros de SQA?

En el área del Aseguramiento de la Calidad del Software la Inteligenicia Artificial puede ayudar a conseguir especificaciones de requisitos o historias de usuario de mayor calidad. Utilizando técnicas de “text mining” es posible detectar inconsistencias o carencias en las especificaciones como, por ejemplo, la ausencia de roles o de criterios de aceptación coherentes en la definición de historias de usuario. Es posible, incluso, identificar incumplimientos de una hipotética guía de estilo. De igual forma, utilizando estas mismas técnicas junto con clasificadores, los profesionales de SQA podrán obtener automáticamente propuestas de categorización para su colección de requisitos.

Si se cuenta con información histórica de las pruebas realizadas sobre los proyectos previos, las redes neuronales podrán ayudar también a predecir la duración y el alcance de las campañas de test.

Por otro lado, cuando se disponga de información histórica de la calidad de código del software, las leyes bayesianas serán capaces de encontrar correlaciones que pueden pasar desapercibidas a los ojos del ingeniero de SQA. Por ejemplo, sería posible determinar qué componentes de baja complejidad, pero mal documentados, son el origen de fallos críticos o están asociados a un determinado equipo de desarrollo o a una dinámica concreta de integración.

Como se ve, a pesar de que aún no ha alcanzado todo su potencial, la Inteligencia Artificial puede ser de gran ayuda para el ingeniero de SQA. Todo apunta a que en los próximos años los procesos de desarrollo y pruebas se van a abordar de una manera muy diferente a la actual, precisamente, gracias al desarrollo de la Inteligencia Artificial.

Aitor Elorriaga

Consultor de MTP

Lo que necesitas saber sobre QA

uxinteligencia artificial