IA en Pruebas de API: Cómo Probar Más Rápido Con ChatGPT

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Comienza a usar la IA a pleno rendimiento. Genera escenarios, escribe pruebas y crea datos de prueba más rápido con ChatGPT. La demostración se proporcionará a través de la herramienta Cypress.

This talk has been presented at TestJS Summit 2023, check out the latest edition of this JavaScript Conference.

FAQ

La intersección entre la inteligencia artificial y las pruebas de API se refiere al uso de tecnologías de IA para automatizar y optimizar las pruebas de APIs, facilitando tareas repetitivas y mejorando la eficiencia del proceso de pruebas.

La inteligencia artificial puede mejorar las pruebas de API al automatizar tareas repetitivas y monótonas, permitiendo delegar el trabajo pesado a la IA y enfocarse en aspectos más complejos y críticos de las pruebas.

Es importante no utilizar datos sensibles en las pruebas para proteger la información confidencial de los usuarios y evitar riesgos de seguridad, asegurando que las pruebas sean seguras y no comprometan datos importantes.

La versión 3.5 de chatGPT es gratuita pero limitada solo a texto y con información desactualizada desde enero de 2022. La versión 4.0, aunque requiere pago para desbloquear características premium, admite varios formatos de archivos y tiene actualizaciones más recientes, la última en abril de 2023.

Olga sugiere comenzar con la versión gratuita de la herramienta para familiarizarse con su uso y, a medida que se gane experiencia, considerar versiones pagas que ofrecen más características y soporte para varios formatos de archivo.

Olga utiliza herramientas como chatGPT en su versión 3.5 y 4.0, Swagger para la documentación, y Cypress para escribir escenarios de prueba, tanto para REST como para GraphQL.

La IA ayuda a generar rápidamente casos de prueba y a automatizarlos, facilitando la creación de pruebas detalladas y estructuradas que pueden ser integradas en marcos de prueba como Cypress, lo que ahorra tiempo significativo en el proceso de desarrollo.

La estrategia de testing de API que propone Olga incluye verificar primero las especificaciones para asegurar que los endpoints estén correctamente nombrados y representen el modelo adecuado. Luego, se realiza el testing propiamente dicho, que incluye verificar códigos de estado, la carga útil, las cabeceras de respuesta y el rendimiento básico.

Olga Trofimova
Olga Trofimova
26 min
07 Dec, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Esta charla discute el uso de la IA en las pruebas de API y proporciona una estrategia paso a paso para incorporar la inteligencia artificial con chat.dpt. Enfatiza la importancia de analizar la documentación y crear casos de prueba utilizando herramientas como Swagger y Cypress. La charla también aborda el papel de la participación humana en las pruebas, el equilibrio entre el trabajo manual y la asistencia de la IA, y la necesidad de validar las pruebas generadas por la IA. En general, la IA puede acelerar significativamente el proceso de prueba, pero el análisis y la vigilancia humana siguen siendo necesarios para obtener resultados precisos.

1. Introducción a la IA y las pruebas de API

Short description:

¡Hola a todos! Hoy, compartiré una estrategia paso a paso para las pruebas de API y discutiré cómo incorporar la inteligencia artificial con chat.dpt puede elevar su proceso de pruebas. Vamos a adentrarnos en el corazón del asunto. La API es una capa importante en la aplicación, y el chat puede ayudarnos a delegar el trabajo monótono a la IA. Me uní a Spleeky como el único QA y tuve que empezar todo desde cero. El chat era una herramienta popular, así que decidí experimentar y probarlo. Vamos a centrarnos en las versiones 3.5 y 4.2.0, ya que tienen sus pros y contras.

Hola a todos, y gracias por acompañarme hoy. Mi nombre es Olga, y me siento honrada de ser su guía en la intersección entre la inteligencia artificial y las pruebas de API. Así que creo que aprenderán nuevos tips y enfoques hoy.

Hoy, compartiré con ustedes una estrategia para las pruebas de API, paso a paso, y discutiré por qué incorporar la inteligencia artificial, particularmente con chat.dpt, puede elevar su proceso de pruebas a un nuevo nivel. Así que en los ejemplos de hoy, aprenderemos y veremos cómo usar el chat para REST API y GraphQL.

Pero primero, un poco sobre mí. Mi posición actual es gerente de QA en Spleeky. Durante la mayor parte de mi vida, trabajé con automatización, construí procesos desde cero y probé diferentes marcos de pruebas. También, soy una gran fanática de la mejora de vida. Me encanta escalar montañas y así sucesivamente. Por ejemplo, el mes pasado escalé a una altura de 3,000 metros en los Alpes. Pero en el trabajo, me encanta facilitar, no complicar. Así que ahora vamos a adentrarnos en el corazón del asunto.

La API es una de las capas importantes en la aplicación. Es muy fácil entender por qué. Es importante cubrir. Si echamos un vistazo a mis pirámides de conspiración, aquí las pruebas de API se establecen en el nivel de integración, que se supone que es el segundo lote de nuestras pruebas. Entonces, ¿cómo puede el chat ayudarnos en esta etapa? El punto principal es que podemos delegar el trabajo monótono y repetitivo a la IA. Permítanme ilustrar cómo solían ser las cosas en mi empresa. Me uní a Spleeky este verano, y yo era el único QA en el proyecto. El equipo probaba las características por su cuenta, pero no había procesos de QA o QC ni documentación de pruebas, así que tuve que empezar todo desde cero. Teníamos pruebas unitarias, pero también necesitábamos pruebas de extremo a extremo y cubrir los puntos finales con pruebas de API. En ese momento, teníamos 30 puntos finales en REST y 20 en GraphQL. Cuando empiezas desde cero, generalmente estás presionado por el tiempo. Y estaba buscando una herramienta popular y conveniente para impulsar mi trabajo. El chat estaba en boca de todos, así que decidí experimentar y probarlo para averiguar si valía la pena o no. Y el chat tiene dos versiones, 3.5 y 4, pero también lanzaron la versión 4.2.0, pero hoy nos centraremos solo en las dos primeras. Por supuesto, todas estas tienen sus pros y contras. La versión 3.5 es gratuita, pero solo toma texto. Las noticias cometen errores.

2. Estrategia de Pruebas y Análisis de Documentación

Short description:

La última actualización fue en enero de 2022, y la versión 4.0 requiere pago por características premium. Sin embargo, admite varios formatos de archivo y puede generar imágenes. La estrategia de pruebas implica verificar las especificaciones y realizar varios pasos, como verificar los códigos de estado, la carga útil, las cabeceras y el rendimiento básico. La práctica comienza con el análisis de la documentación utilizando pasos específicos.

Y la última actualización fue en enero de 2022, lo que significa que no tiene acceso a la información más reciente. Y en cuanto a la versión 4.0, para desbloquear las características premium, necesitas pagar por ellas. Esa es la mala noticia.

Pero no solo toma texto, sino otros formatos de archivos como PDFs, tablas, imágenes, audio, videos y archivos. Además, puede generar imágenes por sí mismo. Y en cuanto a la actualización del conocimiento, la última vez fue en abril de 2023. Eso significa que esta versión es más relevante.

Ahora voy a entrar en la estrategia de testing. La estrategia de testing consta de dos pasos. En primer lugar, necesitamos verificar las especificaciones. Siempre necesitamos empezar desde este paso. Esto también es importante para asegurarnos de que los endpoints están nombrados correctamente, que los recursos y sus tipos representan el modelo correcto y que no hay falta de funcionalidad duplicada.

Luego viene el testing en sí. En cuanto al testing, se puede desglosar en varios pasos. En primer lugar, es necesario comprobar la actualidad del código de estado. Cuando envías, por ejemplo, una solicitud de post y creas un nuevo ítem, deberías obtener un código de estado 201. Si enviamos una solicitud que está prohibida, esperamos un código de estado 403. Luego verifica la carga útil. Comprueba que los nombres, tipos y campos del JSON del cuerpo son correctos. No olvides las solicitudes con una respuesta de error. La tercera cosa que necesitas es comprobar las cabeceras de la respuesta. Las cabeceras son críticas porque afectan la seguridad y el rendimiento. El último paso que necesitas hacer es comprobar el rendimiento básico. En caso de que la operación haya sido un éxito pero haya tardado mucho tiempo, la prueba aún se considera fallida.

Ahora, es hora de la práctica. Antes de empezar, por favor ten en cuenta que no es seguro compartir datos sensibles. Siempre bórralos. Empecemos con la primera etapa, la documentación. Así que crea un prompt y pídele al chat que analice la documentación. Para este propósito, podemos usar varios pasos.

3. Creación de Casos de Prueba y Automatización

Short description:

Puedes hacerlo manualmente o usar una herramienta externa como prompt perfect. Ofrece un resultado más detallado y estructurado. Usamos Swagger para la documentación. Hay dos opciones disponibles: tomar una instantánea o copiar y pegar el texto. Los casos de prueba se crean y automatizan usando prompts. En solo unos segundos, genera pruebas con afirmaciones y puede proporcionar una descripción de la prueba. Se muestra un ejemplo de un escenario positivo con datos de solicitud, escrito por Cypress.

Por ejemplo, puedes hacerlo manualmente o usar una herramienta externa. Puedes crearlo con prompt perfect, por ejemplo. Así que aquí está nuestro prompt original. Espero que lo veas bien. Y como puedes notar, no hay nada especial. Es solo una frase simple. Y esto es lo que ofrece prompt perfect. Ahora es más detallado, mejor estructurado y se requiere un resultado específico.

Luego ve a nuestra documentation. En este caso particular, usaré Swagger. Aquí también podemos actuar de dos maneras. Puedes tomar una instantánea de ella o puedes copiar y pegar el texto. Honestamente, prefiero más la segunda opción. Ahora obtenemos el resultado final. No entres en detalles. Solo mira las diapositivas. Así que representa el uso del lenguaje. Representa la evaluación del contenido, características o aspectos y otras cosas.

Así que lo que haremos a continuación es crear casos de prueba y automatizarlos. No es una sorpresa que necesitemos un prompt para estos dos. Y en unos segundos, obtenemos 13 comprobaciones. Por supuesto, es más una lista de verificación que los casos de prueba normales. Aún así, basándonos en ellos, podemos hacer escenarios de prueba completos. Así que analizamos la documentation, generamos casos de prueba. ¿Qué sigue? Es hora de la automation. Y enviamos el nuevo prompt. Y ahora de nuevo, en solo unos segundos, genera la prueba con afirmaciones. Y si lo deseas, también puede generar una descripción de la prueba al final. Así que aquí, puedes ver un ejemplo de un escenario positivo con solicitud de data, y está escrito por Cypress. Así que también puede ser lo mismo para GraphQL, pero unas pocas palabras sobre ello.

4. GraphQL y el Papel de la Participación Humana

Short description:

GraphQL es un lenguaje de consulta introducido por Facebook para gestionar APIs basadas en REST. En Cypress, no hay diferencia entre probar la interfaz de usuario y la API. CodePilot es una herramienta popular que se puede utilizar directamente en tu IDE. Aunque estas herramientas son útiles, es necesario revisar y mejorar las pruebas. El código puede tener errores y el chat puede malinterpretar las solicitudes de prueba. La participación humana sigue siendo crucial, especialmente para las pruebas de big data.

GraphQL es un lenguaje de consulta. Fue introducido por Facebook y diseñado para facilitar la gestión de los endpoints para APIs basadas en REST. Así que ahora, conoces la mejor fórmula para una prueba bien generada. Es un prompt correcto y data válida. Y en Cypress, no hay diferencia entre REST y GraphQL. Cuando creas pruebas, lo haces solo para la interfaz de usuario o para la API. Y aquí está nuestro resultado final.

Y por supuesto, el chat no es el único recurso existente. Es solo uno popular. Y puedes elegir cualquiera de estas herramientas según tu preferencia. Por ejemplo, en los últimos días, CodePilot ganó popularidad, y la gran ventaja de esto es que puedes usar CodePilot directamente en tu IDE. Y todos estos ejemplos son impresionantes.

Y quizás tengas una pregunta razonable. ¿Realmente puedo facilitar tanto mi trabajo? Y la respuesta es sí y no. Y aunque todas estas herramientas son muy útiles y podrían hacer nuestra rutina diaria de trabajo fácil, siempre necesitarás hacer una doble comprobación. Y al principio, siempre necesitas revisarte a ti mismo. No puedes usar data sensible en absoluto. Y además, los casos de prueba no están completos. Y desde mi perspectiva, no parecen profesionales. Y no tiene todas las comprobaciones. Y todavía necesitamos mejorar las pruebas y añadir nuevas. Y el código a veces tiene errores. Y como ejemplo, si pedimos generar una prueba que compruebe el estado de respuesta exitoso, el chat lo interpreta, literalmente, así que no es correcto. Otro ejemplo es la función de aleatorizar el nombre. Desde el primer punto de vista, parece bien. Pero si insertamos este fragmento de código en IDE, descubriremos que la variable no está inicializada. Así que todas estas actividades todavía necesitan humanos. Y creo que puede ser un buen asistente, pero no un buen probador. Para el big data, lleva más tiempo del que esperamos. Y como ves, también comete errores.

QnA

Uso de IA y Abordando el Escepticismo del Desarrollador

Short description:

Y por ejemplo, si quieres realizar una tarea compleja, necesitas dividirla y así sucesivamente. Gracias por su atención. Una pregunta relacionada con su charla es sobre GPT 3.5.4 y 4.0 Turbo. ¿Has probado Turbo todavía? Honestamente, aún no. Pero pago por la versión 4.0. Si estás empezando, prueba la versión gratuita y explora diferentes herramientas. Otra pregunta es sobre ser vigilante con la salida de la IA. Mi consejo es que estas personas necesitan probadores y conocimientos para entender lo que están probando. Continuará siendo un desafío para los desarrolladores menos experimentados. Llegan más preguntas sobre el tiempo de configuración para usar ChatGPT con Prompt Perfect.

Y por ejemplo, si quieres realizar una tarea compleja, necesitas dividirla y así sucesivamente. Espero que esto ayude. Así que gracias por su atención. Y no duden en hacerme preguntas si tienen alguna.

Creo que fue una muy buena introducción sobre cómo usar la IA para apoyar el trabajo que hacemos. Hay una pregunta que ha llegado hasta ahora relacionada con tu charla. Y bueno, hay un par. Mencionaste justo al principio, GPT 3.5.4 y 4.0 Turbo. ¿Has logrado probar Turbo todavía? ¿Has encontrado que se desempeña mejor en estas tareas, tal vez? Honestamente, no, todavía no. Pero pruebo la versión 4.0. Pago por ello. Así que invierto en mi trabajo. Y para mí, es más... Por supuesto, es más útil porque toma, como noté, y como dije, toma diferentes formatos de archivo, ya que podría ayudarte mucho. Pero aún así, si apenas comienzas tu trabajo y si apenas estás tratando de familiarizarte con este tipo de herramienta, es necesario probar la versión gratuita. Y tal vez puedes probar diferentes herramientas, no exactamente en GPT.

Interesante. Tenemos algunas preguntas. Por favor, continúen enviándolas. Una pregunta que tengo, uno de mis escepticismos personales de la IA para los desarrolladores en cualquier área de nuestro trabajo es que una cosa que pudiste hacer fue validar que una respuesta era, ya sabes, que algo que devolvía era incorrecto. Y creo que tu capacidad para hacer eso viene con la experiencia de ser un desarrollador. Al mismo tiempo, hay una gran cantidad de desarrolladores junior menos experimentados, personas que se están introduciendo en el campo, que tienen expectativas poco realistas de lo que estas herramientas harán por ellos. Tomarán algo literalmente y dirán, sí, parece correcto, probemos eso. ¿Tienes algún consejo, técnicas, herramientas para que estas personas sean más vigilantes con la salida de la IA? Creo que estas personas necesitan probadores. Porque como noté y como mencioné, puedes usar la IA, pero todavía necesitas conocimientos para entender y estar seguro de lo que realmente estás probando ahora. Sí. Creo que esto seguirá siendo un desafío para... También, los mantenedores de proyectos, por otro lado, las personas piensan que han escrito código válido, pero han tomado código alucinógeno. Genial, tenemos más preguntas. Durante tu charla, mencionaste que el uso de herramientas como ChatGPT con la ayuda de cosas como Prompt Perfect reduce tu tiempo total, pero parece que hay mucho más tiempo de configuración, tal vez, para hacerlo funcionar.

Equilibrio entre el Trabajo Manual y la Asistencia de IA

Short description:

¿Crees que el equilibrio entre el trabajo manual y la asistencia de IA en la generación de pruebas es correcto? Si bien se necesita trabajo extra para configurar la IA, puede acelerar significativamente el proceso, especialmente al generar un gran número de pruebas. Sin embargo, confiar únicamente en la IA puede no ser confiable, ya que depende en gran medida de la calidad de la documentación de especificación inicial. La documentación incompleta o incorrecta puede llevar a pruebas defectuosas. Por lo tanto, la participación y el análisis humano de la documentación siguen siendo necesarios.

¿Crees que ese equilibrio es correcto? Aquí dice, como, ¿es realmente útil? Pero ¿en qué punto tiene sentido ese equilibrio? Esa es una muy buena pregunta.

Sí, por supuesto, necesitas trabajo extra para hacer tu trabajo principal. Pero solo imagina que necesitas generar 100 pruebas en un solo día, y puedes intentarlo con IA. Puedes intentarlo con, por ejemplo, chat. Porque si lo haces manualmente, aún necesitarás más tiempo que simplemente configurarlo en IA y usarlo para este propósito. Sí.

Me pregunto si también hay algo interesante allí sobre lo que tenemos, las expectativas de las empresas de la productivity del desarrollador se vuelven demasiado grandes con el estado de las herramientas hoy en día. Y parece que podría ser el caso. Si estuvieras seguro del resultado, entonces sí, mucha ganancia de productivity. Pero basándote en tu charla, no lo estás. Y ciertamente yo no lo estoy. Y no creo que muchos de nosotros deberíamos estar interesados, genial.

¿Alguna vez has intentado este proceso para hacer unit testing para React components? Y si lo hiciste, o componentes en general, ¿cómo te fue? No, no tuve esa experiencia, pero creo que será el próximo desafío en mi trabajo.

Vale. Vale. Entonces, hay un par de preguntas similares aquí. La primera que vemos aquí y la tercera que vemos aquí. Voy a resaltar la tercera porque está un poco más desarrollada. No, se movió bajo mi pulgar. Es esta aquí. El éxito de la IA en la generación de pruebas o en la interpretación de código o en la escritura de cualquier código es bastante... Parece que depende mucho de que la especificación inicial documentation sea buena o casi perfecta o completamente perfecta. ¿Pueden los documentos de especificación completos o imperfectos llevar a la creación de pruebas defectuosas? Puedo decir que la documentation incompleta o incorrecta podría ser el problema en nuestro desarrollo de productos. Y ese es también el problema con la IA. Por ejemplo, antes de analizarlo a través de estas herramientas, necesitas hacer una búsqueda humana antes de eso. Así que necesitas analizar esta documentation en sí misma porque no puedes delegar totalmente este trabajo a la IA. Solo un ejemplo. Vale. Analizará, pero no estarás en el contexto más tarde. Por eso creo que todavía necesitamos estar involucrados en este proceso.

Casos de Uso y Manejo de Datos Sensibles

Short description:

Me he preguntado qué sucede si la documentación base no se ha mantenido adecuadamente y obtenemos resultados incorrectos. Los casos de uso comunes para CoPilot y chat GPT incluyen casos de prueba y listas de verificación. Debemos ser cautelosos de no pasar datos sensibles como nombres de usuario y contraseñas a estos sistemas. Se requiere una vigilancia similar a cuando se pasan datos a los flujos de trabajo CICD.

Sí. Estoy vigilante. Me he preguntado en el pasado cómo, ya sabes, están empezando a surgir estas interfaces de estilo chat GPT en la documentation de los desarrolladores. Siempre me preocupo por lo que sucede si esa documentation base no se ha mantenido adecuadamente. Como usuario, no necesariamente sé de inmediato que esta no es una documentación muy bien mantenida. Y luego obtenemos resultados que son incorrectos. Y eso es un gran desafío.

Entonces, más allá de escribir pruebas, supongo, ¿cuáles son los casos de uso más comunes que ves para cosas como CoPilot, chat GPT u otros sistemas GPT? Así que en cuanto a CoPilot, por ejemplo, la última vez me preguntaba si sabe sobre la principal brecha o problema en Cypress. Y pregunté sobre esto, y CoPilot me dijo que hay un problema para las pruebas móviles. No podemos probar la aplicación móvil. Eso es cierto, por supuesto. Es claro y es obvio. Y en cuanto a los casos de uso comunes, simplemente puedes intentarlo para los casos de prueba, como mencioné, y puedes intentarlo para la lista de verificación y este trabajo simple que puede ser fácilmente delegado. Creo que es esa cosa de delegación fácil y, ya sabes, razonablemente, no sé exactamente la manera correcta de expresar esto, donde no necesariamente puedes tener una gran, gran, gran cantidad de confianza en un primer paso y eso no es absolutamente perjudicial.

Esta pregunta tiene un gran número de pulgares arriba, con respecto a los datos sensibles. ¿Cómo evitamos no pasar datos sensibles sin nuestro conocimiento? Porque imagino que esto sucede a veces o en términos simples, ¿cómo podemos ser más cautelosos alrededor de no dar nuestros datos sensibles a estos sistemas? Cuando mencioné datos sensibles, me refiero a que se trata más sobre el nombre de usuario. Se trata más de contraseñas. Y por supuesto, no se trata de secretos de la empresa. Se trata solo de datos realmente sensibles de los usuarios de nuestro producto. Y esto es lo mismo cuando escribes en tu prueba y te deshaces de estas credenciales importantes y sensibles. Simplemente lo haces a través, no sé, archivo gitignore u otras cosas cuando configuras tu para pruebas. Y esto es lo mismo cuando configuras estas herramientas de IA para tu ayuda, necesitas estar seguro de que no hay estos datos sensibles como mencioné, contraseñas, inicios de sesión, etc. Imagino que es muy similar a simplemente pasar datos a los flujos de trabajo CICD. Quieres asegurarte de emitir datos. Probablemente sea una cantidad de vigilancia muy similar a la que necesitarías emprender.

¿Cómo... Déjame leer esta pregunta. ¿Cómo se separa de alguna manera... Así que sí. Entonces, cuando se trata de escupir estas pruebas, genial.

Separando las Pruebas Generadas por IA

Short description:

Cuando las pruebas son generadas por IA, pueden parecer impresionantes, con nombres detallados y estructuras notables. Sin embargo, incluso al implementar pruebas generadas por IA, todavía se requiere trabajo manual para establecer pautas, crear títulos y manejar componentes adicionales. Se necesita un grado de vigilancia al usar herramientas generadas por IA, ya que las pruebas pueden contener errores. El intercambio de tiempo entre las pruebas generadas por IA y la escritura manual depende de la complejidad de la tarea. Para componentes más simples, las pruebas manuales pueden ser suficientes, pero para escenarios más complejos, la IA puede proporcionar una valiosa asistencia.

Estoy configurándolos. Estoy configurando mis archivos de prueba. ¿Deberías, o cómo podrías separar o deberías molestarte en separar las pruebas que son escritas por una IA, una máquina versus aquellas que son realmente hechas a mano y escritas manualmente por los desarrolladores?

Es muy notable cuando es generado por IA porque todavía tenemos el factor humano. No estoy seguro si eres un buen probador por ejemplo o no, pero cuando generas una prueba por ti mismo, puedes perder algo o el título de esta prueba no... Parece que no es técnico. Es solo el nombre del caso de prueba y está ubicado en tu prueba. Pero cuando es generado por IA, se ve increíble. Sabes, es wow. El nombre de esta prueba es realmente, realmente detallado y la estructura de esta prueba también es notable.

Y en cuanto a la separación entre una de la segunda parte, incluso si vas a implementar, y creo que implementarás esta prueba generada por IA en tu marco de pruebas, todavía tendrás algo de trabajo manual solo para tener una guía de desarrollo. Necesitas crear tus propios, por ejemplo, títulos o necesitas crear variables. Y por ejemplo, alguien apoya la página de componentes como para otros componentes, y tú también puedes hacer este tipo de trabajo adicional.

Tengo una pregunta volviendo a algo que dijiste antes y parte de tu charla también. Entonces, ha generado esta prueba, la prueba es incorrecta. Hay algún error con ella. Y entonces todavía hay un grado de vigilancia que debes tener de las herramientas generadas por IA antes de simplemente seguir adelante y tomar esas pruebas e implementarlas. Y me pregunto si para muchas pruebas de escritura es mucho de... Incluso los ejemplos que diste, no eran necesariamente muy advanced ejemplos, pero escribir muchos de ellos es bastante menial. Me pregunto, ¿tienes algún pensamiento en torno al intercambio de tiempo entre tener IA generando algo que podría o no estar mal y necesitar revisarlo y validarlo versus simplemente escribirlo manualmente en primer lugar?

Depende de la complejidad. Si solo se trata de comprobar los componentes, tal vez no sea un buen ejemplo con API, pero cambiaré al lado de la interfaz de usuario. Entonces, si solo necesitamos comprobar los componentes, no intentamos la prueba de extremo a extremo completa cuando te conectas a la database y realizas algunas acciones antes de ejecutar tus pruebas. Cuando solo necesitas probar, no sé, el formulario de inicio de sesión, es suficiente. Pero si tienes algunas cosas muy difíciles y profundas, puedes usarlo como ayuda. Por supuesto, facilitará tu trabajo. Pero aún así, como probador experimentado, no lleva mucho tiempo escribirlo por ti mismo, pero será fácil para ti hacerlo. Espero que esté claro. Sí. Solo... Es este intercambio en mi mente que no está del todo claro. No estoy seguro si solo estoy dando vueltas en círculos y otros están sintiendo lo mismo o no sintiendo lo mismo.

Validando Pruebas Generadas por IA

Short description:

Al validar la salida de la IA, gané más confianza en simplemente escribir las pruebas. Puedo generar alrededor de 50 pruebas por día usando IA, pero aún es necesaria la validación manual. El tiempo ahorrado por las pruebas generadas por IA es significativamente diferente para números más pequeños y más grandes. En promedio, este enfoque puede ahorrar al menos dos días de trabajo en comparación con comenzar desde cero con pruebas manuales.

Pero en el momento en que validé la salida potencialmente alucinada de la IA, para muchas cosas, me sentiría más bien, más seguro simplemente escribiéndolo. También el ejemplo que diste, y de hecho, otra pregunta, que haré como una introducción a la mía. Oh, no, accidentalmente marqué la casilla. La pregunta era, ¿cuántas pruebas has generado de esta manera? ¿Estamos hablando de docenas, cientos, miles? Si es en ese número más grande, ¿cuál es tu estrategia para validar una salida antes de aceptar una prueba?

Sí, en caso de que esté presionado por el tiempo y actualmente ya no tengo esta situación, pero cuando lo estaba, puedo generar alrededor de 50 pruebas en un día. Y por supuesto, si lo haces manualmente, puedes copiar y pegar y cambiar algunos data allí, pero también necesitas cambiar las afirmaciones. También necesitas revisarlo dos veces. Así que 50 pruebas, fue mi máximo. Interesante. Y en ese punto, todavía puedes hacer alguna validation manual. Por supuesto. Porque son números lo suficientemente pequeños como para que puedas echar un vistazo. Algo de eso es simplemente manual. Algo de eso será lanzarlo en un editor de código, asegurándote de que está afirmando correctamente. Pero, sí, eso es interesante. Pero entonces el tiempo ahorrado para 50 y el tiempo ahorrado para 1,000 son simplemente tan, tan diferentes. Eso es súper interesante.

Tenemos tiempo para tal vez una pregunta más súper rápida. Y es en realidad esa pregunta. Marqué la casilla de nuevo en lugar de la cosa que la trae, pero recuerdo la pregunta. Lo siento mucho, a todos. La pregunta era, ¿cuánto tiempo crees que esto te ha ahorrado en la práctica en cualquier proyecto dado, cualquier ronda de escritura de pruebas? Al principio, puedes ahorrar al menos dos días. Es un mínimo que puedes ahorrar. Sí. Excelente. Genial. Estaría interesado... Versus qué. ¿Me puedes dar una idea? ¿Dónde estabas al principio? ¿No había pruebas escritas y esto es solo vamos a construir lo básico aquí? ¿O fue un poco más de contexto sería realmente útil? Sí. Entonces, si comencé desde cero, no había nada. Y puedes ahorrar tu tiempo. Puedes hacer este trabajo en dos días versus siete días, por ejemplo. Fue mi conteo personal. Así que sí. Interesante. Genial. Muchas gracias. Eso fue fascinante. Realmente aprecié tener un poco más de tiempo para hacer preguntas. Un gran aplauso para Olga, por favor. Gracias.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Solicitudes de Red con Cypress
TestJS Summit 2021TestJS Summit 2021
33 min
Solicitudes de Red con Cypress
Top Content
Cecilia Martinez, a technical account manager at Cypress, discusses network requests in Cypress and demonstrates commands like cydot request and SCI.INTERCEPT. She also explains dynamic matching and aliasing, network stubbing, and the pros and cons of using real server responses versus stubbing. The talk covers logging request responses, testing front-end and backend API, handling list length and DOM traversal, lazy loading, and provides resources for beginners to learn Cypress.
Construyendo un Asistente AI Activado por Voz con Javascript
JSNation 2023JSNation 2023
21 min
Construyendo un Asistente AI Activado por Voz con Javascript
Top Content
This Talk discusses building a voice-activated AI assistant using web APIs and JavaScript. It covers using the Web Speech API for speech recognition and the speech synthesis API for text to speech. The speaker demonstrates how to communicate with the Open AI API and handle the response. The Talk also explores enabling speech recognition and addressing the user. The speaker concludes by mentioning the possibility of creating a product out of the project and using Tauri for native desktop-like experiences.
El Flujo de Trabajo del Desarrollador Asistido por IA: Construye Más Rápido e Inteligente Hoy
JSNation US 2024JSNation US 2024
31 min
El Flujo de Trabajo del Desarrollador Asistido por IA: Construye Más Rápido e Inteligente Hoy
Top Content
AI is transforming software engineering by using agents to help with coding. Agents can autonomously complete tasks and make decisions based on data. Collaborative AI and automation are opening new possibilities in code generation. Bolt is a powerful tool for troubleshooting, bug fixing, and authentication. Code generation tools like Copilot and Cursor provide support for selecting models and codebase awareness. Cline is a useful extension for website inspection and testing. Guidelines for coding with agents include defining requirements, choosing the right model, and frequent testing. Clear and concise instructions are crucial in AI-generated code. Experienced engineers are still necessary in understanding architecture and problem-solving. Energy consumption insights and sustainability are discussed in the Talk.
Pruebas de ciclo completo con Cypress
TestJS Summit 2022TestJS Summit 2022
27 min
Pruebas de ciclo completo con Cypress
Top Content
Cypress is a powerful tool for end-to-end testing and API testing. It provides instant feedback on test errors and allows tests to be run inside the browser. Cypress enables testing at both the application and network layers, making it easier to reach different edge cases. With features like AppActions and component testing, Cypress allows for comprehensive testing of individual components and the entire application. Join the workshops to learn more about full circle testing with Cypress.
Desarrollo Efectivo de Pruebas
TestJS Summit 2021TestJS Summit 2021
31 min
Desarrollo Efectivo de Pruebas
Top Content
This Talk introduces Test Effective Development, a new approach to testing that aims to make companies more cost-effective. The speaker shares their personal journey of improving code quality and reducing bugs through smarter testing strategies. They discuss the importance of finding a balance between testing confidence and efficiency and introduce the concepts of isolated and integrated testing. The speaker also suggests different testing strategies based on the size of the application and emphasizes the need to choose cost-effective testing approaches based on the specific project requirements.

Workshops on related topic

Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
React Summit 2023React Summit 2023
151 min
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
Top Content
Featured Workshop
Josh Justice
Josh Justice
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()?
En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor.
Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos
Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
AI para Desarrolladores de React
React Advanced 2024React Advanced 2024
142 min
AI para Desarrolladores de React
Top Content
Featured Workshop
Eve Porcello
Eve Porcello
El conocimiento de las herramientas de AI es fundamental para preparar el futuro de las carreras de los desarrolladores de React, y la suite de herramientas de AI de Vercel es una vía de acceso accesible. En este curso, examinaremos más de cerca el Vercel AI SDK y cómo esto puede ayudar a los desarrolladores de React a construir interfaces de transmisión con JavaScript y Next.js. También incorporaremos APIs de terceros adicionales para construir y desplegar una aplicación de visualización de música.
Temas:- Creación de un Proyecto de React con Next.js- Elección de un LLM- Personalización de Interfaces de Transmisión- Construcción de Rutas- Creación y Generación de Componentes - Uso de Hooks (useChat, useCompletion, useActions, etc)
Building Full Stack Apps With Cursor
JSNation 2025JSNation 2025
46 min
Building Full Stack Apps With Cursor
Featured Workshop
Mike Mikula
Mike Mikula
En esta masterclass cubriré un proceso repetible sobre cómo iniciar aplicaciones full stack en Cursor. Espere comprender técnicas como el uso de GPT para crear requisitos de producto, esquemas de base de datos, hojas de ruta y usarlos en notas para generar listas de verificación que guíen el desarrollo de aplicaciones. Profundizaremos más en cómo solucionar alucinaciones/errores que ocurren, indicaciones útiles para hacer que su aplicación se vea y se sienta moderna, enfoques para conectar cada capa y más. Al final, ¡espere poder ejecutar su propia aplicación full stack generada por IA en su máquina!
Por favor, encuentre las preguntas frecuentes aquí
How to 9,2x Your Development Speed with Cline
JSNation 2025JSNation 2025
64 min
How to 9,2x Your Development Speed with Cline
Featured Workshop
Nik Pash
Nik Pash
La forma en que escribimos código está cambiando fundamentalmente. En lugar de quedar atrapado en bucles anidados y detalles de implementación, imagine enfocarse puramente en la arquitectura y la resolución creativa de problemas mientras su programador de pares de IA maneja la ejecución. En esta masterclass práctica, te mostraré cómo aprovechar Cline (un agente de codificación autónomo que recientemente alcanzó 1M de descargas en VS Code) para acelerar drásticamente tu flujo de trabajo de desarrollo a través de una práctica que llamamos "vibe coding" - donde los humanos se enfocan en el pensamiento de alto nivel y la IA maneja la implementación.Descubrirás:Los principios fundamentales del "vibe coding" y cómo se diferencia del desarrollo tradicionalCómo diseñar soluciones a un alto nivel y hacer que la IA las implemente con precisiónDemostración en vivo: Construcción de un sistema de almacenamiento en caché de grado de producción en Go que nos ahorró $500/semanaTécnicas para usar IA para entender bases de código complejas en minutos en lugar de horasMejores prácticas para solicitar a los agentes de IA que obtengan exactamente el código que deseasErrores comunes a evitar al trabajar con asistentes de codificación de IAEstrategias para usar IA para acelerar el aprendizaje y reducir la dependencia de ingenieros seniorCómo combinar efectivamente la creatividad humana con las capacidades de implementación de IAYa sea que seas un desarrollador junior que busca acelerar tu aprendizaje o un ingeniero senior que desea optimizar tu flujo de trabajo, saldrás de esta masterclass con experiencia práctica en desarrollo asistido por IA que puedes aplicar inmediatamente a tus proyectos. A través de demostraciones de codificación en vivo y ejercicios prácticos, aprenderás cómo aprovechar Cline para escribir mejor código más rápido mientras te enfocas en lo que importa: resolver problemas reales.
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
React Summit 2022React Summit 2022
117 min
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
Top Content
Workshop
Yevheniia Hlovatska
Yevheniia Hlovatska
A diferencia de las pruebas unitarias, las pruebas de extremo a extremo buscan interactuar con su aplicación tal como lo haría un usuario real. Y como todos sabemos, puede ser bastante desafiante. Especialmente cuando hablamos de aplicaciones móviles.
Las pruebas dependen de muchas condiciones y se consideran lentas e inestables. Por otro lado, las pruebas de extremo a extremo pueden dar la mayor confianza de que su aplicación está funcionando. Y si se hace correctamente, puede convertirse en una herramienta increíble para aumentar la velocidad del desarrollador.
Detox es un marco de pruebas de extremo a extremo en caja gris para aplicaciones móviles. Desarrollado por Wix para resolver el problema de la lentitud e inestabilidad y utilizado por React Native en sí como su herramienta de pruebas E2E.
Únete a mí en esta masterclass para aprender cómo hacer que tus pruebas de extremo a extremo móviles con Detox sean excelentes.
Prerrequisitos- iOS/Android: MacOS Catalina o más reciente- Solo Android: Linux- Instalar antes de la masterclass