09/28/2023

Revolucionando el Testing con ChatGPT

COMPARTIR EN:

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

En la era digital actual, la velocidad vertiginosa con la que avanza la Inteligencia Artificial (IA) está transformando industrias enteras, redefiniendo paradigmas y estableciendo nuevos estándares de eficiencia y precisión.

Desde la medicina hasta la automatización, y por supuesto, en el ámbito del testing de software, la IA se está consolidando como una fuerza disruptiva. En lugar de temerle o verla con preocupación, es recomendable aprovecharla y considerarla como lo que es: una herramienta de trabajo que nos permite mejorar nuestro desempeño.

Testing con Chat GPT

Introducción

En el ámbito del testing, el avance de la IA representa un doble desafío: por un lado, aprender a utilizar herramientas como ChatGPT para mejorar nuestra eficiencia y precisión; y por otro, comprender y adaptarnos a la nueva ola de sistemas impulsados por IA para asegurarnos que se testeen adecuadamente. No solo es esencial aprovechar la IA como herramienta, sino también entenderla como parte integral de los sistemas que estamos testeando. En este contexto, el papel del tester se vuelve aún más crucial, ya que no solo debemos garantizar que los sistemas funcionen como se espera, sino también navegar y adaptarnos a este paisaje tecnológico en constante evolución.

Por todo lo anterior mencionado es que los invitamos a aprender juntos de algunos aspectos más generales, tal como comenzamos acá, y luego continuaremos con posteos más específicos.

¿Qué es el ChatGPT?

ChatGPT es un modelo de lenguaje generativo pre-entrenado que utiliza la IA para interactuar con los usuarios. Este modelo es capaz de comprender y responder a los mensajes de los usuarios en un formato de chat, permitiendo una interacción fluida y coherente. 

Se basa en la arquitectura GPT (Generative Pre-trained Transformer), que ha sido entrenada con vastas cantidades de texto para lograr una comprensión profunda y versátil del lenguaje humano. Su capacidad para proporcionar respuestas rápidas y creativas a una amplia gama de preguntas lo ha convertido en una herramienta muy popular en diversos campos, desde el servicio al cliente hasta la educación, y ahora, en el área de testing.

¿Cómo se usa el ChatGPT?

La utilización del ChatGPT implica una serie de pasos:

1. Acceder a la página de OpenAI y registrarse (https://chat.openai.com/). La plataforma ofrece una versión gratuita del ChatGPT, aunque también hay una versión paga con mayores prestaciones.

2. Iniciar una conversación escribiendo un prompt (pregunta/indicación) en el cuadro de texto. Este prompt debe ser claro y específico para obtener una mejor respuesta.

3. ChatGPT proporcionará una respuesta y se creará un chat en el que se podrá seguir enviando mensajes. Es posible enviar mensajes adicionales sobre el mismo tema o temas nuevos, así como aclarar puntos anteriores.

4. Puedes iniciar un nuevo chat o revisar conversaciones anteriores. Esta funcionalidad permite a los usuarios mantener un registro de sus conversaciones y revisarlas en cualquier momento.

Es importante tener en cuenta que el ChatGPT tiene un límite de conocimiento hasta septiembre de 2021, lo que significa que no está al tanto de eventos o desarrollos posteriores a esa fecha, aunque el modelo se actualiza periódicamente con versiones nuevas. Además, aunque es una herramienta poderosa, no es infalible. Es muy importante verificar la información generada en fuentes confiables.

¿Cómo formular prompts efectivos para el ChatGPT?

Un prompt es básicamente una indicación o instrucción que se proporciona a ChatGPT para obtener la respuesta deseada. La habilidad para formular prompts efectivos es esencial para maximizar la utilidad de ChatGPT, y se ha convertido en una competencia en sí misma, conocida como ingeniería de prompts. 

A continuación, se presentan algunas técnicas prácticas para redactar prompts más efectivos:

Proporcionar instrucciones claras: En lugar de simplemente hacer una pregunta, puedes darle instrucciones detalladas al modelo sobre cómo responder a tu pregunta. Por ejemplo, en lugar de preguntar “¿Cómo puedo entrenar un modelo de regresión lineal?”, podrías decir “Escribe un código en Python para entrenar un modelo de regresión lineal desde cero, incluyendo tanto el código como las explicaciones pertinentes”.

Proporcionar contexto: Proporcionar contexto puede ser útil, especialmente si se está buscando información detallada o si se está planteando una pregunta dentro de una serie de interacciones. Por ejemplo, en lugar de simplemente preguntar “¿Qué es la superposición?”, podrías preguntar “En el contexto de la física cuántica, ¿qué es la superposición?”.

Asignar roles al modelo: Puedes pedirle al modelo que asuma un rol específico y que proporcione respuestas desde esa perspectiva. Por ejemplo, podrías decir “Imagina que eres un desarrollador senior de aplicaciones con conocimientos en bases de datos, computación en la nube y desarrollo de iOS. Diseña una aplicación para rastrear los pasos de las personas”.

Proporcionar ejemplos: Puedes proporcionar un ejemplo (una toma) o varios ejemplos (varias tomas) antes de pedirle al modelo que te dé la respuesta. Esta técnica a menudo resulta en respuestas más precisas y relevantes del modelo.

Solicitar una cadena de pensamiento (CoT-Chain of Thoughts): Cuando se hacen preguntas más complejas que requieren razonamiento, el modelo puede proporcionar resultados erróneos. Sin embargo, si le pides al modelo que explique su razonamiento paso a paso, producirá resultados más precisos. Las investigaciones han demostrado que las indicaciones de CoT pueden mejorar los resultados en tareas que requieren aritmética, sentido común y razonamiento simbólico.

A continuación pueden verse algunos ejemplos de cómo utilizando prompts bien diseñados, podemos utilizar ChatGPT para nuestras tareas diarias:

  • Prompt con poca información e inespecífico: 

ejemplo prompt chat gpt

  • Prompt generando contexto, brindando detalle de lo que se espera de él con instrucciones claras: se puede ver cómo la respuesta cambia, generando información mucho más útil y relevante.  Así como, luego de obtener ésta, se podría ir iterando hacia el objetivo buscando sobre el mismo chat hasta obtener el resultado final esperado.

ejemplo prompt chat gpt

Importancia del ChatGPT en el Área de Testing

El uso de herramientas como ChatGPT ofrece una serie de ventajas significativas en el área de testing:

Diseño de casos de prueba: ChatGPT facilita la generación rápida y precisa de casos de prueba a partir de especificaciones funcionales. Al proporcionar instrucciones claras y conversar con el Chat, los testers pueden elaborar una variedad de escenarios de prueba, lo que mejora la cobertura y permite la identificación temprana de problemas.

Análisis de requerimientos funcionales: El modelo puede ayudar a analizar y entender mejor los requerimientos funcionales, proporcionando una interpretación clara y precisa. Esto facilita la comprensión de los requerimientos y ayuda a los testers a diseñar casos de prueba más efectivos.

Generación de datos de prueba: Se pueden generar datos de prueba realistas, tomando en cuenta el contexto y las limitaciones especificadas. Esto es crucial para una cobertura de prueba integral y para descubrir errores relacionados con los datos.

Reporte de incidentes: ChatGPT puede asistir en la redacción de reportes de incidentes, asegurando que toda la información relevante sea incluida y que el reporte sea claro y comprensible. Los testers pueden interactuar con el Chat, proporcionándole la información necesaria para reportar el error de una forma más clara.

Integración con diferentes herramientas de testing: Desarrollando las integraciones correspondientes, el modelo puede interactuar con diferentes herramientas de testing como TestLink o Mantis, permitiendo un proceso de trabajo más fluido y eficiente. Esta capacidad de interactuar con diversas herramientas de testing puede agilizar el proceso de pruebas y mejorar la eficiencia general del equipo de pruebas.

Apoyo en diversos tipos de testing: Ya sea en pruebas de seguridad, rendimiento o usabilidad, ChatGPT puede proporcionar información relevante y apoyo contextualizado según las necesidades del caso.

Apoyo en scripts de prueba: El uso de ChatGPT puede colaborar en el análisis y creación de scripts de prueba, permitiendo a los testers centrarse en aspectos más críticos del proceso de testing.

Ejemplos concretos de tareas donde ChatGPT nos puede ayudar en el día a día:

Conclusión

En resumen, ChatGPT ofrece varias ventajas significativas en el mundo de las pruebas de software. Desde la generación de escenarios y datos de prueba hasta la automatización de tareas repetitivas y la colaboración efectiva, ChatGPT ha revolucionado el campo de las pruebas. Con su capacidad para comprender el lenguaje natural y su evolución continua, ChatGPT tiene el potencial de transformar y agilizar las prácticas de prueba en el futuro. Al adoptar esta tecnología, las organizaciones pueden mejorar la eficiencia, la calidad y la confiabilidad de sus aplicaciones.  

A partir de lo anteriormente mencionado, es que desde QAlified hace ya un tiempo, estamos investigando su aplicación en el área de testing, nos hemos capacitado y compartido experiencias, potenciando su uso con responsabilidad entre todos nuestros colaboradores.  Todo esto es lo que ha impulsado este primer acercamiento y queremos continuar esta línea con futuras publicaciones sobre el tema.

Decimos que potenciamos su uso con responsabilidad porque, debemos recordar que, aunque ChatGPT es una herramienta poderosa, es esencial usarlo con precaución, recordando que es simplemente un asistente en nuestra tarea y nunca va a poder hacer nuestro trabajo, ya que no tiene la comprensión global de lo que estamos testeando. Por lo tanto, siempre lo que utilicemos de aquí, debe ser revisado y analizado en función del contexto y nuestro conocimiento.

Además, es importante destacar los desafíos de seguridad que enfrentamos al usar herramientas como ChatGPT. Como testers, debemos ser extremadamente cuidadosos con la información que manejamos en estas plataformas. Este es un riesgo que conocemos bien y estamos trabajando arduamente para mitigarlo. 

Te invitamos a experimentar con ChatGPT. ¡El futuro del testing está aquí, y es emocionante!