paint-brush
Aprovechando ChatGPT para pruebas de softwarepor@ratikeshmisra
4,434 lecturas
4,434 lecturas

Aprovechando ChatGPT para pruebas de software

por Ratikesh4m2023/09/16
Read on Terminal Reader

Demasiado Largo; Para Leer

En los últimos 2 años, el avance de la IA, especialmente los LLM (grandes modelos de lenguaje), ha resultado en resolver problemas tradicionales de manera más eficiente. Uno de esos impactos que los LLM pueden crear es a través de la asistencia para automatizar nuestras pruebas de software. Para muchos equipos de software, la automatización nunca ha sido un ciudadano de primera clase del ciclo SDLC y los equipos luchan por automatizar los casos de prueba.
featured image - Aprovechando ChatGPT para pruebas de software
Ratikesh HackerNoon profile picture
0-item
1-item

En los últimos dos años, el avance de la IA, especialmente los LLM (grandes modelos de lenguaje), ha resultado en resolver problemas tradicionales de manera más eficiente, y uno de los impactos que los LLM pueden crear es a través de la asistencia para automatizar nuestras pruebas de software. Para muchos equipos de software, la automatización nunca ha sido un ciudadano de primera clase del ciclo SDLC y los equipos luchan por automatizar los casos de prueba que crean la " deuda de automatización de pruebas ". Debido a esta brecha en la automatización de pruebas, los equipos de calidad dedican mucho tiempo a verificar y escribir manualmente estos casos de prueba, lo que, como resultado, ralentiza la velocidad de envío del equipo de ingeniería.


Variación de tiempo para pruebas manuales con complejidad de código


La única ruta de escape que existe para evitar tal problema es automatizar los casos de prueba a una velocidad superior, pero a menudo no podemos hacerlo porque:


  • Falta de experiencia en automatización entre los equipos de control de calidad manual para escribir el código escalable.
  • El costo de iniciar la automatización ( en términos de ancho de banda necesario para la gestión de ingeniería y control de calidad ) es demasiado alto debido a la enorme acumulación de casos de prueba que deben automatizarse.
  • Mala calidad de la documentación para los casos de prueba y falta de mantenimiento adecuado del conjunto de regresión y cordura.
  • Debido a que la mayoría de las empresas de productos se centran en el desarrollo de funciones y, por lo tanto, la estabilidad y la calidad quedan en un segundo plano.
  • Se prefiere la evaluación humana de los casos de prueba a la evaluación automática.


Aunque todos los problemas mencionados anteriormente necesitan un artículo separado sobre cómo los equipos de software deben abordarlos, en esta sección hablaremos sobre cómo los ingenieros de control de calidad pueden aprovechar ChatGPT o LLM como copiloto en BDD (pruebas basadas en comportamiento).

Usando GPT3.5 para BDD y su automatización


¿Qué es el BDD?


El desarrollo impulsado por el comportamiento (BDD) es una metodología de desarrollo de software ágil en la que una aplicación se documenta y diseña en torno al comportamiento que un usuario espera experimentar al interactuar con ella. Para el contexto de esta discusión, apliquemos pruebas basadas en BDD en un sitio web de YC y consideremos la página de inicio de sesión de YC hacker news como punto de partida.


Página de inicio de sesión de YC Hacker News


Para la página mencionada anteriormente, el comportamiento esperado es

" Cuando un usuario intenta iniciar sesión e ingresa las credenciales válidas en https://news.ycombinator.com/login?goto=news y presiona iniciar sesión, debería redirigir al usuario al sitio web de noticias sobre piratas informáticos ".


Según las pautas de BDD, el comportamiento anterior se puede escribir como sintaxis/pasos de Gherkin, lo que puede ser un posible caso de prueba, y al usar pepino como marco, el mismo Gherkin se puede automatizar y este comportamiento ya no necesitaría intervención humana . Sin embargo, debido al problema que analizamos en la sección anterior, el equipo de control de calidad generalmente sufre al automatizar lo mismo, pero podemos aprovechar el poder de los LLM escribiendo algunas indicaciones y creando un flujo de trabajo para que nuestros equipos de control de calidad agilicen los pasos de Gherkin y su automatización. con mayor velocidad en la estructura del pepino.



Flujo de trabajo para generar la sintaxis de Gherkin

Flujo de trabajo para generar la sintaxis de Gherkin


En la imagen siguiente, por ejemplo, he mostrado cómo se puede ajustar el modelo GPT utilizando el mensaje para generar la sintaxis de pepinillo para el comportamiento presentado en lenguaje natural.


ChatGPT genera la sintaxis Gherkin relevante para un comportamiento presentado



Flujo de trabajo para generar código compatible con pepino a partir de Gherkin Syntax

Generando código compatible con Cucumber con pasos de Gherkin usando GPT


Paso 1: Solicitar ingeniería


A continuación se muestra el mensaje que puede escribir en la consola ChatGPT para ajustarlo y generar la automatización adecuada utilizando el código HTML y los pasos de Gherkin proporcionados. Como resultado final, hemos solicitado generar el código en forma de definición de paso según lo necesite el pepino, que los controles de calidad pueden copiar y pegar tal como está.



Solicitud de ajuste de GPT para generar la automatización basada en pepino


Paso 2: inyectar el HTML relevante que debe usarse como base para la automatización.

Como se muestra a continuación, después de realizar ajustes, ChatGPT solicita los pasos HTML y Gherkin relevantes que puede usar para generar definiciones de pasos para pepino.


Feed HTML que debe utilizarse para la automatización


Paso 3: generar la definición del paso


Como resultado de esto, GPT entenderá la estructura DOM del HTML proporcionado y le pedirá la sintaxis de Gherkin relevante. Para el caso anterior, ya hemos generado el Gherkin que podemos pasar tal como está:


 Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "https://news.ycombinator.com/login?goto=news" When the user enters valid credentials and presses the login button Then the user should be redirected to the "hacker news" website


Salida final


Finalmente, según el flujo de trabajo y el mensaje mencionado, genera el archivo de definición de pasos para los pasos de Gherkin y el escenario mencionados anteriormente, que pueden ser tal como lo copian los controles de calidad en su marco de pepino después de un control de calidad menor para acelerar la automatización del comportamiento que se suponía. Probar.


La definición del paso del pepino generada

La era de los copilotos

Con la llegada de la IA y la aparición de los copilotos, los humanos verán un aumento en su productividad. Podrán ampliar aún más sus límites de innovación transfiriendo las tareas rudimentarias y rutinarias a la IA. Sin embargo, sigo pensando que deberíamos verlos simplemente como asistentes para cualquier trabajo que hagamos y aún así la inteligencia para usarlos residiría en los humanos, ya que los equipos de tecnología, marketing, ventas y éxito del cliente están tratando de aprovechar el poder de los LLM en sus flujos de trabajo. Los ingenieros de control de calidad pueden hacer lo mismo para que puedan aumentar aún más su productividad y hacer que su trabajo de garantizar la calidad y la estabilidad del software sea emocionante.