ChatGPT ha demostrado ser un asistente versátil y poderoso, capaz de realizar desde tareas de generación de texto hasta asistencia en programación. Pero, ¿alguna vez te has preguntado cómo este modelo de lenguaje avanzado puede transformar el campo de las pruebas de software? En este post, exploraremos cómo podemos utilizar ChatGPT en nuestras estrategias de pruebas de software, su potencial para mejorar la eficiencia del proceso de pruebas, y cómo puede cambiar la forma en que abordamos los desafíos de las pruebas.
Vamos a solicitarle a ChatGPT algunos temas relacionados a Software Testing, la versión que estamos utilizando es GPT4, la versión gratuita es GPT3.5, es buena, pero obtendrás mucho mejores respuestas con GPT4. Cuanto más especifico seas al solicitarle información, mejores resultados obtendrás. (para obtener GPT4 es necesario pagar 20 USD por mes)
Te recomiendo que dejes un poco de lado tu mentalidad de tester, ¡pero solo un poquito! (Sé que es casi imposible, ¡pero inténtalo!). Más allá de buscar errores en sus respuestas (que definitivamente los encontrarás con el simple uso), busca la manera en la que ChatGPT te dé la respuesta que esperas. Cuanto mejor aprendas a solicitarle información, más útil te será.
En este caso, le pedimos a ChatGPT que nos de algunas ideas de como probar una tienda en linea, la petición fue la siguiente:
Esta fue la respuesta:
En el caso de una tienda electrónica, existen varias áreas clave a considerar cuando se diseñan pruebas de software. A continuación, detallo algunas ideas que podrías tomar en cuenta:
Espero que estas ideas te sean útiles. Recuerda, la calidad y eficacia de las pruebas depende de la completitud y precisión de los escenarios de prueba que se diseñen basados en estos conceptos.
Puedes ser más especifico al hacerle una solicitud sobre una respuesta que te haya dado, en este caso le solicitaremos que nos de más detalle sobre pruebas funcionales:
Por supuesto, aquí te detallo más acerca de las pruebas funcionales que mencioné, además de algunos posibles escenarios de prueba:
Recuerda que estos son ejemplos de escenarios de prueba. Es importante que adaptes y agregues escenarios de acuerdo a las funcionalidades y características específicas de tu tienda electrónica.
La generación de datos muchas veces es un tema que está de alguna manera regulado por las empresas, pero cuando podemos utilizar datos creados por nosotros mismos para hacer pruebas podría ser de mucha utilidad!
¡Por supuesto! Aquí tienes un ejemplo de una tabla de datos que cumple con los requisitos que especificaste:
Nombre de Usuario | Nombre | Apellido | Contraseña |
---|---|---|---|
user1 | Juan | Pérez | Jp_1234$789 |
user2 | Ana | Sánchez | An_9876#321 |
user3 | Carlos | Mendoza | Cm_1234!567 |
user4 | Laura | Paredes | Lp_9876$123 |
user5 | Manuel | Torres | Mt_1234#567 |
user6 | Rosario | Fernández | Rf_9876!123 |
user7 | Antonio | Herrera | Ah_1234$567 |
user8 | Isabel | López | Il_9876#123 |
user9 | Felipe | González | Fg_1234!567 |
user10 | Marta | Morales | Mm_9876$123 |
En este caso, la contraseña cumple con los siguientes criterios:
De nuevo, por favor ten en cuenta que este es solo un ejemplo y las contraseñas nunca deben ser almacenadas o transmitidas en texto claro. En un entorno de producción, deberían ser almacenadas de forma segura utilizando técnicas de hash y salting.
También podemos pedirle que nos dé la información en formato JSON!
¡Claro! A continuación, te muestro cómo se vería la tabla de datos que te proporcioné en formato JSON:
json[
{
"Nombre de Usuario": "user1",
"Nombre": "Juan",
"Apellido": "Pérez",
"Contraseña": "Jp_1234$789"
},
{
"Nombre de Usuario": "user2",
"Nombre": "Ana",
"Apellido": "Sánchez",
"Contraseña": "An_9876#321"
},
{
"Nombre de Usuario": "user3",
"Nombre": "Carlos",
"Apellido": "Mendoza",
"Contraseña": "Cm_1234!567"
},
{
"Nombre de Usuario": "user4",
"Nombre": "Laura",
"Apellido": "Paredes",
"Contraseña": "Lp_9876$123"
},
{
"Nombre de Usuario": "user5",
"Nombre": "Manuel",
"Apellido": "Torres",
"Contraseña": "Mt_1234#567"
},
{
"Nombre de Usuario": "user6",
"Nombre": "Rosario",
"Apellido": "Fernández",
"Contraseña": "Rf_9876!123"
},
{
"Nombre de Usuario": "user7",
"Nombre": "Antonio",
"Apellido": "Herrera",
"Contraseña": "Ah_1234$567"
},
{
"Nombre de Usuario": "user8",
"Nombre": "Isabel",
"Apellido": "López",
"Contraseña": "Il_9876#123"
},
{
"Nombre de Usuario": "user9",
"Nombre": "Felipe",
"Apellido": "González",
"Contraseña": "Fg_1234!567"
},
{
"Nombre de Usuario": "user10",
"Nombre": "Marta",
"Apellido": "Morales",
"Contraseña": "Mm_9876$123"
}
]
Este JSON representa un array de objetos, donde cada objeto corresponde a una fila en la tabla original y contiene cuatro propiedades: "Nombre de Usuario", "Nombre", "Apellido" y "Contraseña".
Behavior Driven Development es muy utilizado actualmente, y ChatGPT te puede ayudar a definir tus escenarios fácilmente.
Cabe mencionar que en ChatGPT puedes hacer solicitudes o pedir respuestas en Inglés o Español, de hecho, una de las mejores y más potentes funciones de ChatGPT es la escritura en ambos idiomas:
Absolutely, here are some key scenarios for testing an e-commerce website, written in Gherkin format:
gherkinGiven I am on the homepage of the e-commerce website
When I select 'Sign Up'
And I fill in the registration form with my details
And I click 'Submit'
Then I should receive a confirmation message that my account has been created
And I should receive a confirmation email
gherkinGiven I am on the homepage
And I am logged in as a registered user
When I select a product
And I click 'Add to Cart'
And I click 'Go to Cart'
And I confirm my purchase
Then I should see a confirmation that my order has been successfully placed
And I should receive a confirmation email of my order
gherkinGiven I am on the homepage
When I enter a search term into the search box
And I click 'Search'
Then I should see a list of products that match my search term
gherkinGiven I am logged in as a registered user
And I am on my account page
When I click 'Change Password'
And I fill in the form with my current password and new password
And I click 'Save'
Then I should see a message confirming that my password has been changed
And I should receive an email confirming the password change
gherkinGiven I am logged in as a registered user
And I am on a product page
When I click 'Leave a Review'
And I fill in the review form
And I click 'Submit'
Then I should see my review posted on the product page
Each of these scenarios describe an important functionality of the e-commerce website and provide a solid basis for functionality testing.
Muchas veces el tener un escenario de pruebas puede implicar distintos enfoques que no siempre son tan "evidentes", ChatGPT nos puede ayudar a entender un poco mejor las implicaciones de los requerimientos que recibimos:
Este requerimiento se puede interpretar desde varias perspectivas:
Cada interpretación puede requerir un enfoque de prueba diferente, como las pruebas de carga, las pruebas de rendimiento, las pruebas de estrés, las pruebas de seguridad, las pruebas de unidad, etc. Por lo tanto, es importante clarificar este requerimiento con los interesados para entender exactamente lo que esperan.
Si existe un tema que no conozcas, ChatGPT puede ser un buen comienzo para entender un poco mejor cuando estás en cero, veamos el ejemplo de un tipo de sistema no tan común en proyectos de software pero muy utilizado pro todos nosotros... OTT
Un sistema OTT, o "Over-The-Top", es un término utilizado para referirse a los servicios de contenido que se entregan a través de internet, sin requerir que los usuarios se suscriban a un servicio de cable o satélite tradicional. Ejemplos de este tipo de servicios incluyen Netflix, Amazon Prime Video, Hulu y Disney+.Un sistema OTT puede ser probado de varias maneras, dependiendo de sus características y funcionalidades específicas. Aquí están algunas de las principales áreas de prueba para un sistema OTT:
En resumen, un enfoque de prueba completa y bien redondeada para un sistema OTT podría implicar una combinación de pruebas funcionales, de compatibilidad, de rendimiento, de seguridad, de usabilidad y de localización.
ChatGPT ha sido muy utilizado para la programación, incluso, herramientas como Copilot ha sido mencionadas como un reemplazo de Stackoverflow! existen numerosos escenarios para utilizar la Inteligencia Artifical, sin embargo, haremos otro post hablando a detalle sobre este tema
ChatGPT ha provocado una revolución por su facilidad de uso en distintas áreas, y el Software Testing no es la excepción, como pudiste ver, existe una gran variedad de escenarios en los que esta IA nos puede ser útil, si bien, aun no es perfecta, no es algo que vaya a desaparecer y conforme pase el tiempo se irá perfeccionando, haciendo nuestro trabajo mas sencillo... y en escenarios mas "oscuros" nos quitara el trabajo! pero mientras eso sucede o no, es nuestro deber actualizarnos y aprender a utilizar herramientas que nos hagan ser más eficientes en nuestro trabajo!
Y tú, ¿Has utilizado ChatGPT de otra manera en Software Testing?