Skip to main content

¿Está la inteligencia artificial haciendo que los testers de software sean obsoletos? Probablemente no. Es más probable que la IA haga obsoletos a los desarrolladores de software. Pero no hay duda de que la IA significa un cambio importante en las pruebas de software. Esta publicación analiza algunos de los cambios que probablemente veremos muy pronto.

Hace tiempo, la automatización de pruebas reemplazó a los testers que hacían el trabajo de robots, es decir, ejecutar pruebas diseñadas por otra persona. Los testers no desaparecieron. Su tiempo se liberó para diseñar más y mejores pruebas y, obviamente, automatizarlas. Más tarde, se suponía que los métodos ágiles y DevOps harían redundante al tester porque los desarrolladores probarían su código mientras lo construyen. Resultó que la mayoría de los desarrolladores preferían escribir código que probarlo. También aprendimos que es necesario probar todo el proceso empresarial a través de los límites de las aplicaciones. Los testers de software ampliaron su alcance hacia las pruebas exploratorias y las pruebas de extremo a extremo.

¿Cómo transformará la IA las pruebas de software?

La IA transformará el rol del tester al convertirse en un gran ayudante en actividades que los testers no realizan muy bien. Es probable que la IA moldee todo el proceso de pruebas en lugar de solo mejorar tareas individuales.

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

Este campo es un campo de validación y debe quedar sin cambios.
Name*

Es característico del trabajo de un tester que las mismas tareas se realicen varias veces con poca variación y mucha espera. Los testers esperan:

  • un nuevo lanzamiento para probar.
  • que terminen las ejecuciones automáticas de pruebas.
  • una corrección de un error que impide continuar las pruebas.
  • Y así sucesivamente...

Los testers también realizan tareas que requieren mucha atención al detalle y pueden no ser muy motivadoras, como analizar los resultados de ejecuciones automáticas de pruebas, mantener pruebas automatizadas que fallaron por cambios en la aplicación, o calcular e informar el estado de las pruebas. Cada minuto que dedican a estas tareas importantes, hay alguien esperando los resultados de las pruebas.

Human software tester playing chess with AI robot software tester
Esta imagen fue creada con una simple instrucción usando una herramienta de IA

La mayor parte del trabajo de pruebas es la ejecución de pruebas. Está mayormente automatizada, pero sigue requiriendo esfuerzo humano; y ese esfuerzo humano ralentiza todo el ciclo de pruebas. Todavía necesitamos personas para automatizar las pruebas que se ejecutarán por un robot, para mantener esas pruebas cuando la aplicación cambia y para analizar los resultados de las pruebas. Ya existen herramientas de pruebas habilitadas con IA que pueden seleccionar y ordenar las pruebas según la probabilidad de detectar errores, autocurar pruebas rotas o rellenar automáticamente los informes de defectos. 

El Impacto Inmediato de la IA para los QAs

En la próxima ola de creación de pruebas automatizadas, veremos herramientas que generarán pruebas directamente a partir de una descripción de caso de uso o incluso más directamente observando a un tester humano explorando la aplicación. Este es un gran paso de las pruebas automatizadas hacia las pruebas autónomas. Sin embargo, aún no hemos llegado del todo. La mayoría de las aplicaciones y procesos empresariales son propietarios, y los datos necesarios para entrenar la IA están dispersos en diferentes herramientas de testing de software. Por lo tanto, es probable que primero veamos pruebas supervisadas por humanos en lugar de pruebas totalmente autónomas.

La mayoría de los equipos de software tienen pocas pruebas en vez de demasiadas. Con el uso de la IA, es probable que el tamaño de los activos de pruebas aumente. Si bien ejecutar pruebas automatizadas es prácticamente gratis, la velocidad de obtención de los resultados sigue siendo importante. Por lo tanto, sería ventajoso organizar las ejecuciones de regresión de manera que primero se realicen aquellas pruebas con mayor probabilidad de encontrar errores. Si la IA comprende lo suficientemente bien los datos del ciclo de vida, puede observar los cambios en el código y los resultados anteriores de las pruebas, determinar cómo organizar las pruebas y así acelerar el ciclo de retroalimentación.

Si la IA puede seleccionar pruebas según la probabilidad de detectar errores, también debería poder predecir dónde es probable que se encuentren los errores. Un tester humano también puede beneficiarse de esta información, enfocando los esfuerzos de pruebas exploratorias manuales en esas funciones.

Para muchas personas, IA es sinónimo de las capacidades de generación de lenguaje natural demostradas por ChatGPT. Esas capacidades también tienen su lugar en las pruebas. Si la IA sabe cómo crear un caso de prueba, también sabe cómo describir la ejecución de la prueba en un informe de defectos. Es probable que un informe de defectos generado por IA sea más fácil de entender que uno redactado apresuradamente por una persona deseando pasar al siguiente caso de prueba.

Además de los informes de defectos, las pruebas producen muchos datos cuantitativos sobre la calidad del software e incluso sobre el proceso que crea el software. El problema es que las personas cercanas a las pruebas, que entienden los datos, no se preocupan por explicarlos a quienes deberían comprenderlos, y quienes deberían comprenderlos tal vez no se preocupen en escuchar. La IA puede hacerle un gran favor a ambas partes y a sus líderes, transformando las estadísticas de pruebas en conclusiones, recomendaciones e ideas expresadas de forma verbal. 

¿Reemplazará la IA a los QAs?

Es tentador imaginar cuál es más fácil para la IA reemplazar: ¿un tester o un desarrollador? Es más sencillo generar una prueba que generar código. Por otro lado, generar pruebas significativas requiere más imaginación. Después de todo, programar transforma un requisito en código que hace funcionar la aplicación, mientras que probar debería transformar un requisito en una o más pruebas que deberían hacer que la aplicación falle.

A gran escala, el diseño de pruebas es más simple que programar, sin embargo. Construir un gran sistema de información es mucho más desafiante que escribir el código para una sola función. Diseñar pruebas para un sistema de información grande no es mucho más difícil que diseñar pruebas para una característica individual. Simplemente es más trabajo. Sin embargo, la configuración de las pruebas puede ser mucho más desafiante.

Por ejemplo, configurar y verificar una prueba que crea una orden en una aplicación móvil, que luego se procesa en Salesforce y finalmente pasa al cumplimiento en SAP, es una tarea muy compleja—aunque el escenario de prueba en sí sea bastante sencillo. Necesitaremos humanos asistidos por IA, así como IA asistida por humanos.

Incluso estos pequeños ejemplos demuestran que las cosas serán muy diferentes ya en un futuro cercano. La IA mejorará la velocidad y la productividad en la construcción de software, pero todavía no será capaz de construir software y asegurar su calidad de manera autónoma.

Si yo fuera tester de software a tiempo completo hoy, no me preocuparía por que la IA me quite el trabajo. Me preocuparía por cómo puedo probar la IA.

¿Te interesa más información sobre IA y pruebas de software? Entonces suscríbete al boletín del CTO Club para conocer todas las tendencias más recientes.