Las pruebas automatizadas se implementaron para evaluar que los requerimientos y la funcionalidad del software cumplieran con las necesidades del cliente.
La forma en la que se desarrollan los proyectos ha cambiado, en la actualidad se utilizan metodologías como Agile, DevOps y otros, cambiando la forma en la que se enfoca el control de calidad y haciéndolas más creativas y flexible.
Una de las últimas tecnologías propuestas para hacer pruebas automatizadas son la Inteligencia Artificial (IA) y el Machine Learning (aprendizaje automático - ML) aún en desarrollo. Sin embargo, para algunos estas tecnologías no aseguran que los resultados obtenidos sean efectivos.
Ahora, examinaremos los tipos de pruebas de software automatizadas y basadas en AI y ML para determinar dónde encajan en el marco tecnológico de las pruebas y su desafío al adoptarlas.
Un QA Engineer debe tener en cuenta las dificultades que se presentan como:
Algunas aplicaciones que usan IA
Podemos evidenciar la inteligencia artificial en aplicaciones que son utilizadas en la cotidianidad como lo son:
La programación tradicional consta de 3 pasos en el siguiente orden:
Aquí se requiere de los datos de entrada para que las reglas computacionales los procesen y así obtener una salida, finalizando aquí el flujo.
En Machine Learning consta de los mismos tres componentes pero con diferente distribución:
En este caso los datos de entrada son procesados por las reglas computacionales obteniendo una salida, pero esta salida también es procesada y analizada por las reglas computacionales permitiendo a la máquina aprender de un flujo establecido de datos el resultado.
Con este modelo el QA Engineer puede tener el mismo proceso de diseño de casos de prueba o Features, establecer sus pasos para la ejecución e ingresarlos en la máquina para que este los ejecute, los analice, aprenda de ellos y basado en las predicciones se puedan tomar acciones, todo esto de forma autómata.
El proceso que realiza la máquina para tomar los datos, procesarlos, aprender de ellos y entregar como resultado unas predicciones se cataloga en las siguientes fases:
De esta forma se mitigan algunas de las dificultades al realizar pruebas automatizadas por el QA Engineer como lo son:
El proceso general implementado para entrenar a la máquina se distribuye en 9 etapas, estas pueden ser adaptadas por el QA Engineer para el proceso de automatización de pruebas.
Antes de aplicar ML se debe tener en cuenta lo siguiente:
Una vez cumplidos los pasos anteriores se define:
Para este escenario ejemplo se define un inicio de sesión. Se implementa un árbol de decisiones, en lenguaje de testing esto sería equivalente a un flujo básico y un flujo alterno.
Con ML no es necesario identificar de antemano todos los problemas, ya que es posible enseñar al algoritmo a la identificación de patrones en las pantallas.
Para estos casos se usa el lenguaje natural para la especificación de los casos de prueba, es decir, la forma para automatizar las pruebas comúnmente requiere de los selectores y de las APIS para programar, con ML se utiliza un lenguaje más común para cualquier persona; por ejemplo, el actor se llamará Pinocho y le diremos que ingrese al campo nombre de usuario e ingrese el nombre de “José”, que busque y haga clic en el botón con el nombre guardar.