Video Summary and Transcription
Las pruebas de IA con IA generativa están revolucionando las pruebas de JS al automatizar la creación de pruebas y mejorar los procesos de prueba de software. Tecnologías clave como el procesamiento del lenguaje natural y las redes neuronales, así como los datos de calidad, juegan un papel crucial en las pruebas de IA. Los beneficios de las pruebas de IA incluyen velocidad, eficiencia, adaptabilidad, detección de errores y potencial ilimitado. La generación de pruebas de JavaScript puede adaptarse a diferentes herramientas como Selenium, y hay herramientas populares disponibles para automatizar la automatización de pruebas. Herramientas de IA como Datadog, RecheckWeb y Applitools Eyes ofrecen poderosas capacidades para la detección de anomalías, las pruebas de regresión visual y las pruebas de listas de códigos. El horizonte para la IA en las pruebas continúa expandiéndose con capacidades en evolución, y entender el papel de la IA en la revolución de las pruebas y el aprendizaje automático es crucial para la aplicación práctica y el aprendizaje continuo.
1. Revolucionando las pruebas de JS con IA
¡Hola a todos! Mi nombre es Rinaldi, y hoy voy a dar una charla sobre cómo revolucionar las pruebas de JS con IA. La IA, particularmente la IA generativa, ha estado haciendo grandes avances en el cambio del panorama de la programación y las pruebas. Ha abierto oportunidades para la mejora dentro del aseguramiento de la calidad. Exploraremos la creciente tendencia de la IA generativa dentro de las pruebas, su potencial para automatizar la creación de pruebas y cómo revoluciona el panorama. El papel del aprendizaje automático en las pruebas de IA es mejorar los procesos de prueba de software, prevenir errores humanos y automatizar la detección de errores basándose en la historia.
¡Hola a todos! Mi nombre es Rinaldi, y hoy voy a dar una charla sobre cómo revolucionar las pruebas de JS con IA. Desvelando el futuro del aseguramiento de la calidad. Como probablemente ya saben, la IA, particularmente la IA generativa, ha estado haciendo grandes avances en el cambio del panorama de diferentes tipos de programación. Javascript es solo uno de ellos. Y no solo el aspecto de programación en sí, sino también el elemento de testing. Y eso ha sido capaz de abrir muchas oportunidades para la mejora dentro del aseguramiento de la calidad. Y por lo tanto, es ahí donde vamos a profundizar en este tema hoy.
Así que sin más preámbulos, vamos directo al grano. Me gustaría presentarme brevemente. Soy ingeniero de software para Seek. También poseo las 13 certificaciones de AWS. Soy un experto en la materia para la certificación de Arquitecto Profesional de Soluciones AWS y Especialista en Análisis de Datos de AWS. He sido ponente internacional en más de 30 eventos y conferencias. También disfruto de todas las cosas relacionadas con AWS, el código abierto, las pruebas y la realidad virtual.
Así que, adentrándonos directamente en este tema, ¿cuál es el meollo del asunto que queremos abordar hoy? Bueno, realmente se trata de poder entender la creciente tendencia de la IA generativa dentro de las testing, porque hemos visto una mayor tendencia de cómo se está llevando a cabo actualmente en el ámbito de las testing. Y hoy en día, no solo puedes automatizar y crear nuevos textos o generar nuevas historias con IA generativa, sino que ahora puedes crear código con IA generativa, crear pruebas con IA generativa para tu código. Así que tiene mucho potencial en lo que puedes hacer con ella. Y como mencioné antes, esto conduce a muchas nuevas áreas como la creación sin código de casos de prueba. Y por supuesto, eso luego conduce al potencial de abrir la creación de pruebas a cualquiera. Así que no solo son aquellos que están muy versados en la creación de pruebas los que pueden hacer esto, sino que los desarrolladores normales o incluso las personas no técnicas pueden empezar a investigar esto y ayudar con el proceso de desarrollo de las pruebas también. Así que en general, está revolucionando el panorama de una manera realmente grande.
¿Cuál es el papel del machine learning dentro de las pruebas de IA? Bueno, en primer lugar, estamos utilizando la IA para poder mejorar los procesos de prueba de software. Se está convirtiendo en un asistente para nosotros con el que poder trabajar, para poder crear una plantilla sobre la que poder construir. Y aparte de eso, nos ayuda a asegurarnos de que lo que estamos haciendo es correcto. Así que una de las cosas que es muy común en la creación de casos de prueba es la ocurrencia de errores humanos. Introduciendo la IA en la mezcla, puede ayudarnos a prevenir que eso ocurra y redirigirnos en cambio a estar más centrados en cómo podemos hacer mejores pruebas y cómo podemos hacer pruebas más a prueba de errores. Ese es el poder de la IA generativa. Y queremos poder automatizar también la detección de errores basándonos en la historia. Eso es una de las cosas que ha podido hacer por nosotros también, porque lo que podemos hacer es que podemos crear un proceso automatizado donde el manejo de errores y la comprobación de errores es algo normal, de modo que la IA puede inmediatamente simplemente comprobar basándose en la historia. Quizás podría haber errores potenciales aquí y en consecuencia simplemente proporcionar y proporcionar mejores sugerencias basándose en eso.
2. Tecnologías Clave y Datos en las Pruebas de IA
Además de redefinir el aseguramiento de la calidad, las pruebas de IA implican tecnologías clave como el procesamiento del lenguaje natural, el análisis predictivo y las redes neuronales. El papel de los datos es crucial ya que alimentar con datos de calidad determina el rendimiento de la IA. La afinación de soluciones requiere datos suficientes.
Además de eso, también está redefiniendo cómo somos capaces de realizar el aseguramiento de la calidad, como se mencionó antes, también podemos integrarlo como parte de nuestro pipeline y por lo tanto construir basándonos en eso para poder asegurar que la calidad que tenemos en cada etapa está garantizada debido a las comprobaciones que realiza la IA.
Entonces, ¿cuáles son las tecnologías clave que están involucradas en esto? Para nombrar algunas, algunas de ellas incluyen el procesamiento del lenguaje natural, el análisis predictivo, y las redes neuronales. El procesamiento del lenguaje natural, por ejemplo, en este caso particular es algo muy importante porque realmente determina cómo estamos procesando el texto que introducimos. Y es por eso que la ingeniería de problemas es algo muy grande dentro de la IA porque queremos asegurarnos de que realmente le estamos dando las instrucciones correctas en lugar de hacerlo vago. Bueno, vamos a cubrirlo un poco más tarde también. Así que solo espera un poco. Y aparte de eso, hay un papel muy grande que juegan los data en esto porque alimentar a la IA con data de calidad realmente determina qué tan bien va a funcionar. Hemos visto a muchos proveedores diferentes como chat.gtbt o los modelos bedrock de Amazon rendir ya sea bien o mal basado en una serie de parámetros que se les da basado en los data que se han utilizado para entrenarlos. Así que realmente afecta esto y es importante entender que esto también lo afecta.
3. Beneficios de las Pruebas de IA y Uso de IA Generativa
Las pruebas de IA aportan velocidad, eficiencia, adaptabilidad, detección de errores y potencial ilimitado. Puede generar pruebas más rápido y refinarlas en función de las pruebas anteriores. La IA ayuda a los desarrolladores a tener en cuenta los casos límite y a descubrir errores sutiles. Al usar IA generativa, especifica el lenguaje, la funcionalidad e incluye lo que quieres que se pruebe. Ten cuidado al insertar código en la IA generativa y utiliza las API para seguridad.
Entonces, si decides, por ejemplo, investigar cómo afinar tus soluciones, eso es definitivamente una gran consideración porque quieres asegurarte de que lo estás afinando en base a suficientes data y no solo a data parciales.
Entonces, ¿cuáles son los beneficios de las pruebas de IA testing? En primer lugar, es simplemente la velocidad porque las pruebas pueden ser ejecutadas e invalidadas rápidamente. Realmente hay un potencial ilimitado para poder realizar la cantidad de pruebas que puedes ejecutar con eso. Y puedes generarlas mucho más rápido de lo que puedes hacer manualmente porque, aunque no sean correctas o según tu visualización en el momento, al menos es capaz de ayudar a refinarlo en consecuencia. Entonces puedes pedirle que refine en función de la prueba que creó antes, o puedes desarrollarlo directamente de forma manual también. Eso realmente ayuda a desarrollarlo mucho más rápido en comparación con si estás codificando pruebas una por una.
Aparte de eso, también aporta eficiencia. Poder hacer más pruebas en menos tiempo reduciría el esfuerzo humano. También puedes proporcionar más cobertura, como sabemos, las pruebas de JavaScript tienen la cobertura como uno de sus aspectos más importantes. Entonces sabemos que como desarrolladores, una de las cosas más importantes es que, ¿podemos tener en cuenta los casos límite que se proporcionan? ¿Y cómo podemos asegurarnos de que está lo más limpio posible de errores? Y con la IA, podemos planificar mejor para eso y cubrir los posibles casos de prueba que podríamos no haber pensado. Y por eso es bueno tenerlos como asistentes.
En cuarto lugar, también tenemos adaptabilidad. Podemos hacer respuestas rápidas a los cambios en el código y la funcionalidad. Vamos a ver algunos ejemplos de eso más tarde también. Finalmente, también tenemos detección de errores, porque son realmente buenos para descubrir errores sutiles o no obvios. Uno de los mejores casos de esto es cómo hay pruebas de regresión visual hoy en día, y también en cuanto a cómo la IA puede comparar diferencias sutiles entre imágenes, por ejemplo, o dentro del código. Realmente, el potencial es ilimitado. Así que este es un ejemplo de cómo decir específicamente a una IA generativa, y realmente depende también de qué LLM estás usando. Podría ser ChachiBT. Podría ser Amazon Bedrock. Este en particular, por ejemplo, lo introduje en el Modelo Fundacional de Cloud de Amazon Bedrock porque quería ver cómo se desempeña, y resultó que era capaz de hacer esto bien. Así que estoy proporcionando esto como la plantilla ahora para poder entender mejor cómo proporcionar este tipo de indicación como una indicación para generar nuevos casos de prueba. Entonces, por ejemplo, estamos proporcionándole esencialmente instrucciones basadas en esto. Así que podemos ver que estamos especificando qué lenguaje estamos usando, estamos especificando qué funcionalidad queremos, y básicamente estamos poniendo a prueba los casos. Ahora puedes poner casos de prueba, puede que no quieras, así que realmente depende, pero lo que realmente quieres poder hacer a partir de esto es que quieres poder, en lugar de mencionar genéricamente que me generes un conjunto de casos de prueba basados en este código, en cambio, quieres asegurarte de que también estás incluyendo lo que quieres que se pruebe también. Entonces, por ejemplo, digamos que quieres poder probar si este botón en esta página web funciona, entonces dirás página web para el botón X, y después de eso en la descripción, dirás, quiero probar el botón X para ver si realmente funciona correctamente, y también puedes no ser capaz de hacerlo. Y de nuevo, una precaución que me gustaría hacer también es tener en cuenta también de simplemente insertar código aleatoriamente dentro de la IA generativa porque necesitas asegurarte de que estás utilizando la API en lugar de una interfaz de cara al público. Por ejemplo, como HatchiBT, es generalmente más, es muy arriesgado y es muy, muy desaconsejable insertar tu código o cualquier PII directamente en la interfaz. Pero mientras tanto, puedes tener una solución interna o puedes usar
4. Generando Pruebas de JavaScript y Herramientas Populares
Al generar pruebas de JavaScript, puedes especificar tokens adicionales como entrada, salida esperada y consideraciones especiales. Las pruebas pueden adaptarse a diferentes herramientas, como Selenium. Herramientas populares como Amazon Bedrock y Hedgey te permiten generar casos proporcionando código e instrucciones. También discutiremos otras herramientas listas para usar que automatizan la automatización de pruebas.
a través de una API, en cuyo caso tus data probablemente estarán más seguros. Así que eso es solo una advertencia rápida cuando estés considerando esto. Aparte de eso, solo estás agregando tokens adicionales como entrada, salida esperada y consideraciones especiales, así como las restricciones o condiciones que deseas. Y a partir de esto, puedes generar pruebas de JavaScript de una manera fácil. Y también pueden ser adaptadas a diferentes herramientas. Por ejemplo, si quieres probar con Selenium, también puede hacerlo . Solo tienes que especificar en este escenario de caso particular. Este es solo un modelo para mostrarte cómo especificar y proporcionar al LLM las consideraciones adecuadas que necesita. Entonces, algunas herramientas populares, un par de herramientas populares incluyen Amazon Bedrock y Hedgey, de las cuales he estado hablando antes. Estas son las que he estado usando mucho. He estado experimentando con sus APIs, he estado experimentando con cómo se desempeñan. Y esto en general es una forma de poder generar casos. Porque es la forma en que simplemente introduces tu código, introduces las instrucciones para eso, y generas los casos en base a eso. Pero, por supuesto, también hablaremos sobre las diferentes otras herramientas listas para usar que ya te ayudan
5. Herramientas de IA para Pruebas y Monitoreo
Entonces, Datadog es una herramienta poderosa con capacidades de IA para la detección de anomalías y el monitoreo continuo. Su característica Bits.ai permite consultar anomalías con texto general. RecheckWeb verifica pequeños errores en el código y realiza pruebas de regresión visual. Applitools eyes es una herramienta popular para pruebas de regresión visual. Las pruebas de lista de códigos de AAPower permiten grabar y comparar interacciones de usuarios con fines de prueba.
automatiza tus pruebas de una manera más fácil. Y aquí hay uno de ellos. Entonces, Datadog es una de las herramientas que se ha utilizado con el tiempo y que también se ha desarrollado con capacidades de IA. Entonces, una de sus capacidades es poder realizar la detección de anomalías basada en la historia. Entonces, con eso, puedes obtener directamente recomendaciones basadas en el gráfico que proporcionaste, y utilizará anomalías anteriores y te recomendará que estés atento a los indicadores y patterns basados en esa historia. Entonces, es una herramienta realmente poderosa para investigar, y es realmente genial adoptarla definitivamente como parte de una solución de monitoreo continuo. Y una de las cosas que siento que vale la pena mencionar también es su característica Bits.ai, que es su nuevo componente que te permite consultar este tipo de anomalías o data con texto general. Entonces, ni siquiera necesitas buscar por ejemplo, ir a este período de tiempo, ir a esta parte específica del gráfico, puedes simplemente decir, oh, como, sí, ¿ha ocurrido una anomalía en este segmento en particular?
Aparte de eso, RecheckWeb es otra gran herramienta que se está utilizando mucho actualmente. Entonces, una de las cosas que puede hacer es que puede verificar pequeños errores que podrías haber hecho en tu código, que pueden afectar la visualización. Entonces, en casos normales, podrías tener un problema con la visualización de código roto, pero en este escenario, apunta al código roto que tienes mientras puede visualizarlo basándose en la suposición de que el código sigue intacto y en realidad no está roto basado en cambios. Entonces, como podemos ver aquí, por ejemplo, con button dot recommend dot slash dash cert, accidentalmente lo puse a, en lugar de cert, lo puse a cet, set, pero puede detectar esto y debido a esto, puede detectar esa falla en particular y luego visualizarla adecuadamente. También hay una regresión visual testing también, y uno de los casos de uso más grandes en este momento es con applitools. Tienen applitools eyes, que puede realizar regresión visual, lo que ayuda a asegurar que lo que estás testing actualmente es comparable con lo que debería ser. Y esto realmente ayuda mucho. Entonces puedes integrar el Selenium WebDriver con esto. Son capaces de realizar esto, y puedes realizar pruebas funcionales y visuales a través de la herramienta. Entonces este es solo un caso de prueba de ejemplo que escribí como parte de poder trabajar con applitools eyes. Entonces puedes ver que estoy básicamente solo llamando a eyes open, eyes checked, y finalmente, puedes ver que esta es una gran forma de poder integrarse con applitools eyes y usarlo adecuadamente para este escenario de caso. Sí. Aparte de eso, también tenemos pruebas de lista de códigos de AAPower. Entonces hay una realmente genial que encontré recientemente, y este es solo un ejemplo de cómo pude hacer esto. Entonces podemos ver que con esto, estoy testing mi sitio web. Entonces básicamente solo estoy tratando de hacer clic en un botón. Estoy tratando de navegar desde la página de inicio haciendo clic, rastrea mis CPEs. Y lo mejor es que puedes grabar esto en pantalla y puede seguirte y grabar cada paso que das. Entonces podemos ver que puede rastrear, hago clic en rastrear mis CPEs, hago clic en las actividades, hago clic en agregar actividad. Entonces quería poder ilustrar esa funcionalidad de agregar actividad, y lo que puede hacer más tarde es que puede usar esto para poder usarlo como una prueba y compararlo con lo que ya tienes actualmente, el comportamiento en tu código, para asegurarte de que está funcionando correctamente. Entonces puedes hacer esencialmente esta prueba, ejecutarla en tu, por ejemplo, entorno de staging, y lo que hará es que iniciará un Chrome driver. Por ejemplo, y básicamente solo probará para ver si funciona en el Chrome driver y cerrará de manera apropiada, y si pasa, entonces dirá que pasa. Y este es un ejemplo de cómo funciona. Entonces puedo reproducir este ejemplo de cómo puede configurar la página, luego después de eso esto se ejecuta por sí mismo. Y este no soy yo, estos son ellos haciendo esto por su cuenta, pueden simplemente mencionar esto
6. Automatizando Procesos y Expandiendo el Horizonte para la IA
Y esto es por test them. Así que es un breve estudio de caso en el que estaba buscando automatizar procesos, incluyendo la detección de anomalías y la generación de casos de prueba. La implementación de herramientas de IA como Datadog resultó en una calidad mejorada y una reducción del mantenimiento de las pruebas. El horizonte para la IA continúa expandiéndose con capacidades en evolución, abordando las necesidades futuras en automatización, generación de casos de prueba y seguridad. Las mejores prácticas incluyen priorizar los datos de calidad, equilibrar la visión humana y de la IA, implementar el control de versiones, fomentar la comprensión de la IA, establecer una integración instrumental y mantenerse actualizado con la evolución de la IA. Comprender el papel de la IA en la revolución de las pruebas y el aprendizaje automático es crucial, junto con la aplicación práctica y el aprendizaje continuo.
en consecuencia. Y esto es por test them. Así que básicamente es otra herramienta que es realmente genial para investigar que también he estado utilizando para este buen escenario de caso. Así que es un breve case study, más o menos, tuve un escenario también, donde estaba buscando automatizar procesos. Y tuve el problema también de poder automatizar la detección de anomalías y generar casos de prueba mejor también, porque una de las cosas que estaba investigando es cómo puedo hacer más eficientemente lo que estoy haciendo actualmente, y automatizar estos tipos de procesos para poder asegurar que no tenemos errores que aparecen aquí y allá. Porque una de las cosas que estoy seguro de que muchos probadores aquí están bastante familiarizados también es, si dejas tu acumulación de errores o security riesgos solos por un tiempo, definitivamente se poblarán rápidamente si no estás realmente cuidando demasiado testing. Así que poder automatizar es una cosa muy importante. Así que como parte de la implementación, integra herramientas de IA como Datadog para la detección de anomalías y también pruébalas como parte del flujo de trabajo. Y lo que entonces pude obtener fue una calidad mejorada y poder reducir el tiempo necesario para el mantenimiento de las pruebas.
Así que definitivamente va a haber un horizonte en expansión continuada para la IA. Para mañana, definitivamente va a haber más áreas de crecimiento potencial con capacidades en evolución también. Va a seguir desarrollándose como lo vemos ahora. Vamos a seguir siendo capaces de anticipar las necesidades de las futuras aplicaciones de JavaScript porque va a haber muchas. Y con el desarrollo de la IA, va a seguir demostrando el potencial de ella para poder ayudar a abordar las necesidades futuras, incluyendo automation y la generación de casos de prueba y security. Así que hay mucho que puede hacer. Y por supuesto, automatizar, automatizar, automatizar, porque si puedes, ¿por qué no, hace tu vida más fácil como probador y como desarrollador.
Así que algunas best practices y patterns. Prioriza la calidad de los data, equilibra la visión humana y de la IA, implementa el control de versiones, fomenta la comprensión de la IA, establece una integración instrumental, mantente al día con la evolución de la IA, gestiona los data de prueba, análisis de monitoreo continuo. Y algunas conclusiones clave son, es importante entender que la IA es prácticamente una revolución en testing. También tenemos el machine learning jugando un papel pivotal, también, para poder entender. Entiende cómo puedes integrar las herramientas adecuadamente, como mencioné antes, con los cuatro ejemplos que proporcioné antes, excluyendo ChatGPTN Amazon Bedrock, ya que también puedes definitivamente usarlos como herramientas. La aplicación práctica es muy importante para entender, entender la perspectiva futura de cómo se ve en el futuro, y entender que es muy importante verlo como un empoderamiento a través del conocimiento, porque es un proceso de aprendizaje continuo. Y eso es todo por mi parte. Gracias de nuevo a todos, por escuchar esta sesión. Y estoy feliz de responder a cualquier pregunta después de la sesión también. Gracias.
Comments