Cómo el aprendizaje automático y la IA están revolucionando las pruebas
La inteligencia artificial y el aprendizaje automático pueden ayudar a probar, probar y volver a probar. Hoy en día, la mayoría de las empresas confían en complejas arquitecturas de sistemas informáticos para gestionar la multitud de tareas diferentes. El núcleo suele ser un SAP S/4 basado en la nube, complementado con otras soluciones de software específicas. Dependiendo de los requisitos, estas pueden ser, por ejemplo, sistemas de ejecución de fabricación (MES) personalizados, soluciones de gestión de relaciones con los clientes (CRM) o software de ciclo de vida del producto (PLM).
Esto proporciona a las empresas una TI de alto rendimiento. Sin embargo, esto también da lugar a numerosas interfaces e interrupciones de los medios de comunicación y, por tanto, a muchas fuentes potenciales de error, por ejemplo, como resultado de una transferencia de datos poco limpia. El grupo informático SAP, con sede en Walldorf, también es consciente de los retos asociados y, por ello, ofrece desde hace algún tiempo una caja de herramientas en forma de SAP Business Technology Platform (BTP), con la que se pretende, entre otras cosas, simplificar considerablemente la interacción de los distintos componentes individuales. BTP ofrece diversas herramientas para este fin, como la gestión de API dentro de SAP Integration Suite.
Las herramientas BTP son extremadamente útiles y a menudo facilitan mucho el trabajo de los departamentos internos de TI. Sin embargo, sigue siendo válido un viejo principio: si las empresas quieren garantizar procesos fluidos y entre sistemas, no pueden prescindir de realizar pruebas periódicas de sus entornos de sistemas. En vista de las actualizaciones y mejoras cada vez más frecuentes, se trata de una tarea tediosa. Los procesos modernos que se basan en el uso de la inteligencia artificial (IA) y los conceptos de aprendizaje automático pueden ayudar en este sentido.
Reconocer las causas de los errores con ML
"Desde hace algún tiempo, las empresas se centran cada vez más en la automatización de las pruebas", afirma Thomas Steirer, especialista en pruebas e IA de la empresa de ingeniería digital Nagarro, que actualmente participa en varios proyectos de investigación en este ámbito. "Pero a menudo no utilizan los métodos más modernos, en parte porque simplemente no tienen una visión general de lo que ya es técnicamente posible. También hay numerosos interrogantes conceptuales".
"Para los consultores es esencial obtener una visión general de los procesos actuales de una empresa en el menor tiempo posible".
Thomas Steirer,
Especialista en pruebas e IA,
Nagarro
Por ejemplo, la cuestión de dónde deben empezar las estructuras modernas de pruebas. Thomas Steirer señala que el análisis automático de errores en los casos de pruebas fallidas ofrece información muy útil a las empresas: "Nuestra experiencia práctica demuestra que muchas pruebas de sistemas fallidas suelen deberse a unas pocas causas. Una vez conocidas éstas, los departamentos informáticos pueden optimizar su infraestructura de pruebas de forma mucho más específica. El requisito previo para ello es que analicen y clasifiquen los archivos de registro de las pruebas fallidas utilizando modelos de aprendizaje automático. Por desgracia, a menudo hay que ponerse al día en este aspecto".
La razón es que este procedimiento no es trivial. Para poder realizar una clasificación adecuada, los expertos en pruebas deben entrenar primero el algoritmo ML necesario, por ejemplo: Para ello, le dan las categorías de error habituales -como errores de base de datos, de red o de interfaz de usuario- y luego practican manualmente la clasificación correcta utilizando datos de entrenamiento. De este modo, el algoritmo aprende gradualmente a reconocer automáticamente patrones y a agrupar errores de forma independiente. En la mayoría de los casos, la clasificación es correcta.
Las ventajas particulares de este planteamiento son que el departamento informático ya no tiene que ver y procesar los errores identificados de forma aislada debido a la clasificación predefinida, sino que puede eliminar directamente las causas raíz de los errores. El proceso también es compatible con la mayoría de los marcos y herramientas de automatización y pruebas. Como resultado, los costes de inversión para las empresas siguen siendo manejables. Thomas Steirer comenta: "En esencia, las empresas están llevando a cabo una especie de metaprueba y simplificando así el análisis de las causas profundas. En última instancia, los resultados les ayudan a eliminar las fuentes habituales de error de la forma más eficaz posible."
La agrupación basada en inteligencia artificial es una forma de optimizar sistemáticamente las pruebas existentes. Pero las visualizaciones inteligentes también pueden ayudar, sobre todo cuando las empresas quieren evaluar grandes carteras de pruebas. Thomas Steirer afirma: "Los ordenadores son excelentes para analizar grandes cantidades de datos según criterios predefinidos. Sin embargo, las soluciones de IA actuales no son (todavía) capaces de buscar de forma independiente estructuras ineficientes detrás de las montañas de datos, por ejemplo. Los humanos tienen aquí una clara ventaja, siempre que estas estructuras se preparen de una forma que les resulte fácil de entender."
Thomas Steirer sugiere un sencillo truco que Nagarro utiliza con gran éxito con sus clientes una y otra vez: Para que el departamento de TI no tenga que evaluar cada prueba individualmente, puede visualizar varios escenarios mediante gráficos. Éstos se pueden derivar fácilmente de los archivos de registro existentes y visualizar la lógica "detrás" de los casos de prueba individuales -en particular, la secuencia de los pasos individuales llevados a cabo- como un modelo fácil de usar.
En última instancia, estos modelos son una herramienta útil para los humanos: A diferencia de la IA actual, son extremadamente buenos a la hora de reconocer patrones, solapamientos o incluso errores estructurales de planificación, a menudo a primera vista. De este modo, muchos errores potenciales de planificación pueden reconocerse y eliminarse en una fase temprana. Thomas Steirer: "Por supuesto, sigue habiendo errores. Por ello, el equipo de pruebas debe validar en la práctica cada ajuste de la lógica. Pero, básicamente, el procedimiento proporciona una herramienta sencilla para adaptar gradualmente las herramientas de prueba y automatización utilizadas a las necesidades propias, sobre todo porque las visualizaciones son cada vez más sencillas gracias a las herramientas de IA pertinentes."
Tanto en las pruebas de software individuales como en las de sistemas completos, siempre surgen dificultades de comunicación entre usuarios, informáticos y las soluciones de software utilizadas.
Corrección autónoma de errores y autorreparación
Esta es otra de las razones por las que a las empresas les gusta utilizar actualmente los conceptos de DevOps: su objetivo es simplificar y acortar los canales de comunicación entre todas las partes implicadas, y contribuir así a una corrección de errores más sencilla.
Una simple analogía muestra por qué es necesario: si un usuario descubre un uso incoherente del idioma en un sitio web -por ejemplo, una mezcla de alemán e inglés-, debe informar de ello para que el departamento de TI pueda corregirlo en el sistema CMS o directamente en el código HTML. En el caso de errores más complejos, esto puede llevar mucho tiempo y resultar engorroso.
Por lo tanto, sería mejor que los usuarios autorizados (y posiblemente especialmente formados) pudieran informar de tales errores directamente al software e iniciar estas correcciones independientes, o al menos hacer sugerencias al equipo de desarrollo. El requisito previo para ello es un reconocimiento semántico inteligente, fiable y prácticamente libre de errores, así como algoritmos muy potentes que puedan asignar directamente descripciones o paráfrasis de un error en lenguaje humano a las causas probables del error. Estas soluciones aún no están listas para el mercado. Por tanto, las aplicaciones de la IA se limitan actualmente a ayudar activamente a los programadores en la codificación, por ejemplo.
Sin embargo, los rápidos avances de los últimos años también están poniendo al alcance de la mano estos conceptos avanzados de aplicación de la IA. Por ello, Thomas Steirer se muestra confiado: "La IA y el aprendizaje automático ya están cambiando masivamente la forma en que las empresas prueban sus entornos de sistemas y soluciones de software. Y solo estamos al principio de este desarrollo. Con los avances en la investigación de la IA, probablemente será posible automatizar las pruebas operativas de formas que hoy apenas podemos imaginar. Sin embargo, los humanos seguirán siendo indispensables para el trabajo conceptual y creativo".
A la entrada de socios: