05/04/2020

Inteligencia artificial: Transgresora de barreras y aliada irrebatible del testing

COMPARTIR EN:

  • Linkedin Logo
  • Twitter Logo
  • Facebook Logo
  • Mail Logo

Escrito por Guillermo Skrilec, Responsable de QAlified, unidad de negocio de Testing y Aseguramiento de la Calidad de GeneXus Consulting.

Skrilec, llevó adelante una charla cuyo objetivo fue el de entender qué está pasando con la Inteligencia Artificial en el mundo del Testing y dejó en claro que si bien, puede haber preocupaciones entre los testers relacionadas a la autonomía que brinda la IA, se la debe percibir “como un aliado y no como algo que nos va a sustituir”.

En su presentación acerca de Inteligencia Artificial y Testing: ¿Qué está pasando?, Skrilec expuso el panorama actual en este sentido, propuso ejemplos y compartió sus impresiones en torno al uso de redes neuronales en diferentes procesos de testing. Habló de automatización y de autonomía, el primer término más amigable para los testers que el segundo, que promete revolucionar radicalmente el universo del testing.

Comenzó explicando la complejidad y amplitud del término Inteligencia Artificial. Hasta el momento, todos conocen cómo se desarrolla un sistema tradicionalmente, pero “cuando hablamos de IA, el programador no va a trabajar definiendo reglas, sino identificando y procesando los datos que utilizados para entrenar un algoritmo de aprendizaje supervisado podrá realizar inferencias para llegar a un resultado”. Así, deja en claro que la inteligencia artificial llega, rompe nuevas barreras y se consiguen nuevos éxitos incluso en lugares inimaginables.

Resaltó dos grandes temas: por un lado, el testing de aplicaciones que tienen Inteligencia Artificial y cuáles son los desafíos. Por otro lado, se hizo referencia a cómo utilizar IA aplicada en actividades de testing para llevarlas adelante y entender qué nuevas oportunidades brinda.

En la primera parte de la charla, definió tres grandes desafíos del testing de aplicaciones que tienen IA.

El primero, consiste en entender por qué una red neuronal hace lo que hace. Por ejemplo, en el ámbito de la medicina se han visto importantes avances de la aplicación de IA, pero para que un médico pueda apoyarse en estos modelos, debe poder entender el razonamiento aplicado por el modelo, para asegurar que es preciso y poder justificar una decisión importante como el cambio en la medicación de un paciente. En este contexto, donde la IA llega a conclusiones que aún para los especialistas con más experiencia es difícil de diagnosticar, validar este tipo de soluciones es un importante desafío.

El segundo desafío está en la calidad de los datos, que son los que en gran medida definen el resultado de una aplicación basada en IA. Nos movimos de evaluar el resultado de un algoritmo, a tener que evaluar la calidad de los datos que se utilizan para entrenar y validar una solución de este tipo. Cuando hablamos de datos, los sesgos van a estar presentes. Para detectarlos es importante poder evaluar si existen sesgos de la realidad (de la fuente de datos) y los propios de la muestra que se toma.

En tercer lugar el desafío está en los bugs de las aplicaciones basadas en IA. Los bugs van a seguir estando, lo importante es decidir cuales son los bugs que impiden operar, y para esto existe un balance entre la exhaustividad y la precisión. La exhaustividad tiene que ver con los falsos positivos, mientras que la precisión está relacionada a los falsos negativos.

Una vez que identificamos los bugs que son importantes, debemos entender que cuando hablamos de IA no es posible ir a arreglar un caso puntual (fix), ya que las reglas no están programadas. En estos casos es necesario volver atrás, revisar los datos que se están utilizando, ajustar el modelo y volver a probar, esto quiere decir que es un proceso basado en ensayo y error.

Estos desafíos de la IA generan una importante confrontación con el modelo de testing tradicional, ya que antes el rol del tester estaba enfocado en validar resultados, pero ahora debe aportar transparencia, enfocarse en las entradas y no solo en los resultados, y trabajar en un contexto donde la diferencia entre el éxito y el fracaso está en la capacidad de poder distinguir los bugs que realmente importan.

El segundo bloque de la charla se centró en la aplicación de Inteligencia Artificial como herramienta en la tarea de probar aplicaciones. Para esto, Guillermo Skrilec se refirió a dos casos distintos. El primero de ellos, tuvo que ver con las pruebas automatizadas. Históricamente uno de los grandes desafíos de la automatización de pruebas es la construcción de scripts que permitan detectar los elementos de la interfaz de usuario, para realizar acciones sobre los mismos. Actualmente una de las aplicaciones de IA es el reconocimiento de imágenes, por lo tanto es posible pensar en la identificación de botones, links, entre otros elementos de la interfaz de usuario de la aplicación. Explicó que este caso tiene dos ventajas, una de ellas es que mejora el mantenimiento de los scripts de prueba, en la medida de que se haya entrenado bien a la red neuronal. La segunda ventaja es la posibilidad de empezar a pensar en reutilización de pruebas, ya que el nivel de abstracción en la especificación de las mismas es más alto.

El segundo ejemplo de este bloque tuvo que ver con el testing autónomo, que en palabras del expositor, “Es algo que me permite ejecutar pruebas sin necesidad de dirigirlo directamente y que puede explorar la aplicación autónomamente”. Actualmente existen algunas iniciativas que están utilizando bots para ejecutar pruebas de manera autónoma en distintas aplicaciones, combinando distintas técnicas de IA.

Cuando se piensa en una estrategia de testing es común que, por un lado, se medite en torno a los niveles de prueba (unitario, de integración, etc), y por otro lado pensamos en los tipos de prueba. En la mayoría de los casos se hace una matriz, y se planea aplicar testing funcional a cierto nivel, testing de performance en otro nivel, etc. “Yo creo que ahora vamos a tener una dimensión más en donde vamos a tener que considerar también cuál es el nivel de autonomía que vamos a necesitar para cada uno de esos tipos y niveles de testing”, reflexionó Skrilec. Y continuó que para tener autonomía, primero es necesaria la automatización: “Estamos muy familiarizados con el término de automatización un término asociado a productividad, eficiencia. Pero cuando nos hablan de autonomía, nos empieza a preocupar, porque nos preguntamos qué va a ser del rol del tester. Tenemos que trabajar con la IA, tiene que ser un aliado, tenemos que jugar en la misma cancha y no verlo como algo que nos va a sustituir” cerró .

Accede a más información y al video de la charla completa, aquí.

Escrito por Guillermo Skrilec, Responsable de QAlified, unidad de negocio de Testing y Aseguramiento de la Calidad de GeneXus Consulting.