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

Rate this content
Bookmark

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.

Olga Trofimova
Olga Trofimova
26 min
07 Dec, 2023

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.

Available in English

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

Network Requests with Cypress
TestJS Summit 2021TestJS Summit 2021
33 min
Network Requests with Cypress
Top Content
Whether you're testing your UI or API, Cypress gives you all the tools needed to work with and manage network requests. This intermediate-level task demonstrates how to use the cy.request and cy.intercept commands to execute, spy on, and stub network requests while testing your application in the browser. Learn how the commands work as well as use cases for each, including best practices for testing and mocking your network requests.
Testing Pyramid Makes Little Sense, What We Can Use Instead
TestJS Summit 2021TestJS Summit 2021
38 min
Testing Pyramid Makes Little Sense, What We Can Use Instead
Top Content
Featured Video
Gleb Bahmutov
Roman Sandler
2 authors
The testing pyramid - the canonical shape of tests that defined what types of tests we need to write to make sure the app works - is ... obsolete. In this presentation, Roman Sandler and Gleb Bahmutov argue what the testing shape works better for today's web applications.
Full-Circle Testing With Cypress
TestJS Summit 2022TestJS Summit 2022
27 min
Full-Circle Testing With Cypress
Top Content
Cypress has taken the world by storm by brining an easy to use tool for end to end testing. It’s capabilities have proven to be be useful for creating stable tests for frontend applications. But end to end testing is just a small part of testing efforts. What about your API? What about your components? Well, in my talk I would like to show you how we can start with end-to-end tests, go deeper with component testing and then move up to testing our API, circ
Test Effective Development
TestJS Summit 2021TestJS Summit 2021
31 min
Test Effective Development
Top Content
Developers want to sleep tight knowing they didn't break production. Companies want to be efficient in order to meet their customer needs faster and to gain competitive advantage sooner. We ALL want to be cost effective... or shall I say... TEST EFFECTIVE!But how do we do that?Are the "unit" and "integration" terminology serves us right?Or is it time for a change? When should we use either strategy to maximize our "test effectiveness"?In this talk I'll show you a brand new way to think about cost effective testing with new strategies and new testing terms!It’s time to go DEEPER!
Playwright Test Runner
TestJS Summit 2021TestJS Summit 2021
25 min
Playwright Test Runner
Top Content
Building a Voice-Enabled AI Assistant With Javascript
JSNation 2023JSNation 2023
21 min
Building a Voice-Enabled AI Assistant With Javascript
Top Content
In this talk, we'll build our own Jarvis using Web APIs and langchain. There will be live coding.

Workshops on related topic

Designing Effective Tests With React Testing Library
React Summit 2023React Summit 2023
151 min
Designing Effective Tests With React Testing Library
Top Content
Featured Workshop
Josh Justice
Josh Justice
React Testing Library is a great framework for React component tests because there are a lot of questions it answers for you, so you don’t need to worry about those questions. But that doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is tricky to test? And what in the world are you supposed to do about that persistent act() warning?
In this three-hour workshop we’ll introduce React Testing Library along with a mental model for how to think about designing your component tests. This mental model will help you see how to test each bit of logic, whether or not to mock dependencies, and will help improve the design of your components. You’ll walk away with the tools, techniques, and principles you need to implement low-cost, high-value component tests.
Table of contents- The different kinds of React application tests, and where component tests fit in- A mental model for thinking about the inputs and outputs of the components you test- Options for selecting DOM elements to verify and interact with them- The value of mocks and why they shouldn’t be avoided- The challenges with asynchrony in RTL tests and how to handle them
Prerequisites- Familiarity with building applications with React- Basic experience writing automated tests with Jest or another unit testing framework- You do not need any experience with React Testing Library- Machine setup: Node LTS, Yarn
AI on Demand: Serverless AI
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
AI on Demand: Serverless AI
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
In this workshop, we discuss the merits of serverless architecture and how it can be applied to the AI space. We'll explore options around building serverless RAG applications for a more lambda-esque approach to AI. Next, we'll get hands on and build a sample CRUD app that allows you to store information and query it using an LLM with Workers AI, Vectorize, D1, and Cloudflare Workers.
How to Start With Cypress
TestJS Summit 2022TestJS Summit 2022
146 min
How to Start With Cypress
Featured WorkshopFree
Filip Hric
Filip Hric
The web has evolved. Finally, testing has also. Cypress is a modern testing tool that answers the testing needs of modern web applications. It has been gaining a lot of traction in the last couple of years, gaining worldwide popularity. If you have been waiting to learn Cypress, wait no more! Filip Hric will guide you through the first steps on how to start using Cypress and set up a project on your own. The good news is, learning Cypress is incredibly easy. You'll write your first test in no time, and then you'll discover how to write a full end-to-end test for a modern web application. You'll learn the core concepts like retry-ability. Discover how to work and interact with your application and learn how to combine API and UI tests. Throughout this whole workshop, we will write code and do practical exercises. You will leave with a hands-on experience that you can translate to your own project.
Detox 101: How to write stable end-to-end tests for your React Native application
React Summit 2022React Summit 2022
117 min
Detox 101: How to write stable end-to-end tests for your React Native application
Top Content
WorkshopFree
Yevheniia Hlovatska
Yevheniia Hlovatska
Compared to unit testing, end-to-end testing aims to interact with your application just like a real user. And as we all know it can be pretty challenging. Especially when we talk about Mobile applications.
Tests rely on many conditions and are considered to be slow and flaky. On the other hand - end-to-end tests can give the greatest confidence that your app is working. And if done right - can become an amazing tool for boosting developer velocity.
Detox is a gray-box end-to-end testing framework for mobile apps. Developed by Wix to solve the problem of slowness and flakiness and used by React Native itself as its E2E testing tool.
Join me on this workshop to learn how to make your mobile end-to-end tests with Detox rock.
Prerequisites- iOS/Android: MacOS Catalina or newer- Android only: Linux- Install before the workshop
API Testing with Postman Workshop
TestJS Summit 2023TestJS Summit 2023
48 min
API Testing with Postman Workshop
Top Content
WorkshopFree
Pooja Mistry
Pooja Mistry
In the ever-evolving landscape of software development, ensuring the reliability and functionality of APIs has become paramount. "API Testing with Postman" is a comprehensive workshop designed to equip participants with the knowledge and skills needed to excel in API testing using Postman, a powerful tool widely adopted by professionals in the field. This workshop delves into the fundamentals of API testing, progresses to advanced testing techniques, and explores automation, performance testing, and multi-protocol support, providing attendees with a holistic understanding of API testing with Postman.
1. Welcome to Postman- Explaining the Postman User Interface (UI)2. Workspace and Collections Collaboration- Understanding Workspaces and their role in collaboration- Exploring the concept of Collections for organizing and executing API requests3. Introduction to API Testing- Covering the basics of API testing and its significance4. Variable Management- Managing environment, global, and collection variables- Utilizing scripting snippets for dynamic data5. Building Testing Workflows- Creating effective testing workflows for comprehensive testing- Utilizing the Collection Runner for test execution- Introduction to Postbot for automated testing6. Advanced Testing- Contract Testing for ensuring API contracts- Using Mock Servers for effective testing- Maximizing productivity with Collection/Workspace templates- Integration Testing and Regression Testing strategies7. Automation with Postman- Leveraging the Postman CLI for automation- Scheduled Runs for regular testing- Integrating Postman into CI/CD pipelines8. Performance Testing- Demonstrating performance testing capabilities (showing the desktop client)- Synchronizing tests with VS Code for streamlined development9. Exploring Advanced Features - Working with Multiple Protocols: GraphQL, gRPC, and more
Join us for this workshop to unlock the full potential of Postman for API testing, streamline your testing processes, and enhance the quality and reliability of your software. Whether you're a beginner or an experienced tester, this workshop will equip you with the skills needed to excel in API testing with Postman.
Working With OpenAI and Prompt Engineering for React Developers
React Advanced Conference 2023React Advanced Conference 2023
98 min
Working With OpenAI and Prompt Engineering for React Developers
Top Content
Workshop
Richard Moss
Richard Moss
In this workshop we'll take a tour of applied AI from the perspective of front end developers, zooming in on the emerging best practices when it comes to working with LLMs to build great products. This workshop is based on learnings from working with the OpenAI API from its debut last November to build out a working MVP which became PowerModeAI (A customer facing ideation and slide creation tool).
In the workshop they'll be a mix of presentation and hands on exercises to cover topics including:
- GPT fundamentals- Pitfalls of LLMs- Prompt engineering best practices and techniques- Using the playground effectively- Installing and configuring the OpenAI SDK- Approaches to working with the API and prompt management- Implementing the API to build an AI powered customer facing application- Fine tuning and embeddings- Emerging best practice on LLMOps