Performance Testing Is Hard. Can AI Help?

Rate this content
Bookmark

El teléfono Android más vendido en 2023 es 8 veces menos potente que dispositivos de gama alta como el Pixel 8. Esta brecha destaca un punto ciego común entre los desarrolladores de Android: a menudo usamos dispositivos potentes y no necesariamente detectamos problemas de rendimiento en nuestras aplicaciones.

Sin embargo, las pruebas de rendimiento tradicionales a menudo se consideran una tarea engorrosa y que consume mucho tiempo, lo que lleva a muchos a omitirlas en favor de lanzar nuevas funciones.
Pero, ¿y si hubiera una manera de simplificar este proceso, haciendo que las pruebas de rendimiento sean tan sencillas como ejecutar un solo comando?

Esta charla presenta cómo podemos hacer realidad este sueño: ¡usando AI para explorar automáticamente nuestra aplicación y combinándola con las herramientas adecuadas de medición de rendimiento, podemos obtener auditorías de calidad automatizadas de nuestras aplicaciones!

This talk has been presented at React Advanced 2024, check out the latest edition of this React Conference.

Alexandre Moureaux
Alexandre Moureaux
30 min
25 Oct, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Hola a todos, quiero compartir una historia sobre mi experiencia como desarrollador junior trabajando con un cliente que tenía estándares técnicos estrictos. Requerían un alto rendimiento para aplicaciones web y móviles, pero carecían de una forma medible de determinar el rendimiento. Para abordar esto, creé una herramienta llamada Flashlight, similar a Lighthouse, que mide el rendimiento de aplicaciones móviles. Flashlight proporciona puntuaciones de rendimiento y puede ejecutar pruebas de extremo a extremo para explorar la aplicación. El sueño del orador es tener una manera fácil de determinar el rendimiento de la aplicación sin pruebas extensas. Usar AI para automatizar la tediosa tarea de explorar una aplicación es la propuesta del orador. El orador explica que el repositorio para la herramienta de exploración de aplicaciones es de código abierto y se compartirá más tarde. La herramienta requiere ejecutar comandos, como iniciar sesión y realizar una búsqueda. La herramienta AI ayuda a identificar problemas de rendimiento, sugiere usar React DevTools para depurar y recomienda usar FlashList en lugar de FlatList en React Native. La AI puede continuar después de que ocurran errores, y controlar la finalización de objetivos de la AI se puede lograr agregando un humano u otro agente administrador de AI en el bucle. La AI en las pruebas de extremo a extremo está ganando popularidad, con empresas lanzando herramientas de prueba basadas en AI. El objetivo es automatizar la exploración de aplicaciones usando AI y asegurar verificaciones de calidad para rendimiento, accesibilidad y seguridad. La AI puede ayudar a los ingenieros de QA automatizando tareas repetitivas y permitiéndoles enfocarse en aspectos más importantes. El costo de realizar un caso de prueba usando el modelo 4.0 Mini suele ser menos de un centavo. Las pruebas de AI con Flashlight aún son experimentales, pero la parte no AI es confiable. Las mejoras futuras incluyen ejecución en CI e iteración fácil en múltiples proyectos.

1. Introduction to Flashlight Tool

Short description:

Hola a todos, quiero compartir una historia sobre mi experiencia como desarrollador junior trabajando con un cliente que tenía estándares técnicos estrictos. Requerían un alto rendimiento para aplicaciones web y móviles, pero carecían de una forma medible de determinar el rendimiento. Para abordar esto, creé una herramienta llamada Flashlight, similar a Lighthouse, que mide el rendimiento de las aplicaciones móviles. Flashlight proporciona puntuaciones de rendimiento y puede ejecutar pruebas de extremo a extremo para explorar la aplicación. Aunque hemos hecho un progreso significativo en las pruebas de rendimiento móvil, todavía hay margen de mejora, especialmente en el área específica de las pruebas de extremo a extremo.

Hola a todos, solo quiero señalar rápidamente que si no eres un desarrollador de React Native, en realidad muchas ideas en esta charla aún se aplicarán a ti, así que por favor no salgas de la sala todavía.

Pero, bien, pensé que comenzaría con una breve historia. Así que hace varios años, de hecho, cuando yo mismo era un desarrollador junior con, bueno, probablemente más cabello en mi cabeza, jaja, trabajé con un cliente y tenían una experiencia técnica realmente fuerte. Pensé, sabes, voy a aprender mucho de ese cliente. Y tenían estándares técnicos para todo, requisitos técnicos, estándares de calidad, para todo en el proyecto. Y sobre el tema del rendimiento, por ejemplo, estábamos construyendo una aplicación web y una aplicación móvil para ellos.

Y así en la web, nos pidieron tener más de 90 en el núcleo de Lighthouse en el escritorio para cada página web. Así que estoy seguro de que probablemente estés familiarizado con Lighthouse, pero por si acaso, Lighthouse, por supuesto, es una herramienta dentro de Google Chrome. Puedes ir a cualquier página web, solo unos pocos clics y obtienes un informe de rendimiento para cualquier página web que desees. Y creo que, sabes, es bastante genial. Así que siendo yo mismo un joven desarrollador de aplicaciones móviles y un poco, ya sabes, ya interesado en el rendimiento, estaba como, tengo mucha curiosidad por lo que van a decir sobre cuál es su estándar para el rendimiento móvil. Y así nos dieron el requisito y simplemente dijeron como, oh, la aplicación no debería tener retrasos, lo cual, bueno, ya sabes, fue un poco decepcionante. Y pensé, OK, en realidad no tenemos una buena manera científica medible de saber si mi aplicación, si nuestras aplicaciones tienen un buen rendimiento o no.

Y así soy Alex, y así es como me convertí en el experto en rendimiento de aplicaciones en Theodore Apps, anteriormente conocido como BAM. Y construí una herramienta llamada Flashlight, que pretende ser un Lighthouse móvil. La broma es que Flashlight es como Lighthouse, un Lighthouse móvil. Y puedes medir el rendimiento localmente o también puedes ir al sitio web, flashlight.dev, subir una aplicación de Android y obtienes una puntuación de rendimiento de ella. Bien. Así que pensé que eso ya era bastante genial y acercándome mucho al sueño de Lighthouse para aplicaciones móviles. Pero había una gran advertencia. Por defecto, solo obtendrías la puntuación de rendimiento del inicio de tu aplicación, que es, ya sabes, si la primera página en tu aplicación es una página de inicio de sesión, obtienes la puntuación de rendimiento para la página de inicio de sesión y bueno, ya sabes, eso no es fantástico.

Así que pensé, OK, podemos mejorar eso con una prueba de extremo a extremo. Así que hay una manera en el sitio web o incluso tener un CLI para simplemente pasar una prueba de extremo a extremo y Flashlight en la nube. En realidad, se ejecuta en un dispositivo Android de gama baja real. Ejecutaría esas pruebas varias veces y simplemente exploraría la aplicación gracias a la prueba de extremo a extremo que escribiste. Y así llegamos al punto de construir paneles de regresión de rendimiento para algunos de nuestros proyectos, siendo capaces de detectar regresiones de rendimiento y todo. Y así, eso es, bueno, eso es un gran avance aquí. Todavía tenemos muchas mejoras y se siente como si hubiéramos hecho las pruebas de rendimiento móvil de extremo a extremo lo más fácil posible. Así que ¿cuál es el problema entonces? ¿Por qué estoy hablando contigo ahora? ¿Cuál es el truco? Y creo que, bueno, el problema probablemente sea con el extremo a extremo, porque el extremo a extremo sigue siendo un poco nicho. Hablas sobre la pirámide de pruebas.

2. Challenges of End-to-End Testing

Short description:

Las pruebas de rendimiento móvil de extremo a extremo son un área de nicho. Aunque escribir las pruebas puede ser sencillo, hay varios problemas. Las pruebas pueden romperse fácilmente, especialmente cuando se trata de elementos como anuncios o banners de cookies. Mantener las pruebas e invertir tiempo en escribirlas puede ser un desafío. El sueño del orador es tener una manera fácil de determinar el rendimiento de la aplicación sin pruebas extensas.

Normalmente es algo que no haces mucho. Y así, las pruebas de rendimiento móvil de extremo a extremo, esto es realmente un nicho. Y escribir una prueba, escribir una prueba, una prueba de extremo a extremo para móviles puede ser tan simple como esto hoy en día. Este es un ejemplo de una prueba de maestro. En solo unos minutos realmente puedes completar fácilmente una prueba de extremo a extremo. Es realmente genial. Hemos hecho mucho progreso. Y sin embargo, hay varios problemas con eso. Por ejemplo, la prueba de extremo a extremo puede romperse fácilmente. Por ejemplo, he trabajado con algunos proyectos, tenían anuncios apareciendo en el feed de inicio, por ejemplo, de manera aleatoria. Y así, si tienes una prueba de extremo a extremo para eso, necesitas tener en cuenta que el anuncio podría aparecer y necesitas cerrar el anuncio. O si tienes un banner de cookies o lo que sea. Y eso termina siendo un poco molesto. Y eso termina siendo un poco complicado de mantener. Y también, para ser honesto, como todo mi sueño en primer lugar era ser como, quiero subir mi aplicación y tener algo que me diga que mi aplicación tiene buen rendimiento o que mi aplicación no tiene buen rendimiento. Y así, incluso si es realmente simple escribir la prueba de extremo a extremo, todavía necesitas tiempo para escribirlas. Así que sabes, si son unos minutos, se acumula, y necesitas mantenerlas y todo. Y así, todavía no estoy realmente contento con donde estamos.

QnA

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

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.
IA y Desarrollo Web: ¿Exageración o Realidad?
JSNation 2023JSNation 2023
24 min
IA y Desarrollo Web: ¿Exageración o Realidad?
Top Content
This talk explores the use of AI in web development, including tools like GitHub Copilot and Fig for CLI commands. AI can generate boilerplate code, provide context-aware solutions, and generate dummy data. It can also assist with CSS selectors and regexes, and be integrated into applications. AI is used to enhance the podcast experience by transcribing episodes and providing JSON data. The talk also discusses formatting AI output, crafting requests, and analyzing embeddings for similarity.
El Ascenso del Ingeniero de IA
React Summit US 2023React Summit US 2023
30 min
El Ascenso del Ingeniero de IA
The rise of AI engineers is driven by the demand for AI and the emergence of ML research and engineering organizations. Start-ups are leveraging AI through APIs, resulting in a time-to-market advantage. The future of AI engineering holds promising results, with a focus on AI UX and the role of AI agents. Equity in AI and the central problems of AI engineering require collective efforts to address. The day-to-day life of an AI engineer involves working on products or infrastructure and dealing with specialties and tools specific to the field.
Aplicaciones Web del Futuro con Web AI
JSNation 2024JSNation 2024
32 min
Aplicaciones Web del Futuro con Web AI
Web AI in JavaScript allows for running machine learning models client-side in a web browser, offering advantages such as privacy, offline capabilities, low latency, and cost savings. Various AI models can be used for tasks like background blur, text toxicity detection, 3D data extraction, face mesh recognition, hand tracking, pose detection, and body segmentation. JavaScript libraries like MediaPipe LLM inference API and Visual Blocks facilitate the use of AI models. Web AI is in its early stages but has the potential to revolutionize web experiences and improve accessibility.
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
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.
Cobertura de código con IA
TestJS Summit 2023TestJS Summit 2023
8 min
Cobertura de código con IA
Codium is a generative AI assistant for software development that offers code explanation, test generation, and collaboration features. It can generate tests for a GraphQL API in VS Code, improve code coverage, and even document tests. Codium allows analyzing specific code lines, generating tests based on existing ones, and answering code-related questions. It can also provide suggestions for code improvement, help with code refactoring, and assist with writing commit messages.

Workshops on related topic

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
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)
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
JSNation 2024JSNation 2024
108 min
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
Featured Workshop
Roy Derks
Shivay Lamba
2 authors
Hoy en día, todos los desarrolladores están utilizando LLMs en diferentes formas y variantes, desde ChatGPT hasta asistentes de código como GitHub CoPilot. Siguiendo esto, muchos productos han introducido capacidades de IA integradas, y en este masterclass haremos que los LLMs sean comprensibles para los desarrolladores web. Y nos adentraremos en la codificación de tu propia aplicación impulsada por IA. No se necesita experiencia previa en trabajar con LLMs o aprendizaje automático. En su lugar, utilizaremos tecnologías web como JavaScript, React que ya conoces y amas, al mismo tiempo que aprendemos sobre algunas nuevas bibliotecas como OpenAI, Transformers.js
Masterclass: Qué son y cómo aprovechar los LLMs
React Summit 2024React Summit 2024
66 min
Masterclass: Qué son y cómo aprovechar los LLMs
Featured Workshop
Nathan Marrs
Haris Rozajac
2 authors
Únete a Nathan en esta sesión práctica donde primero aprenderás a alto nivel qué son los modelos de lenguaje grandes (LLMs) y cómo funcionan. Luego sumérgete en un ejercicio de codificación interactivo donde implementarás la funcionalidad de LLM en una aplicación de ejemplo básica. Durante este ejercicio, adquirirás habilidades clave para trabajar con LLMs en tus propias aplicaciones, como la ingeniería de indicaciones y la exposición a la API de OpenAI.
Después de esta sesión, tendrás una idea de qué son los LLMs y cómo se pueden utilizar prácticamente para mejorar tus propias aplicaciones.
Tabla de contenidos:- Demostración interactiva de la implementación de funciones básicas impulsadas por LLM en una aplicación de demostración- Discutir cómo decidir dónde aprovechar los LLMs en un producto- Lecciones aprendidas sobre la integración con OpenAI / descripción general de la API de OpenAI- Mejores prácticas para la ingeniería de indicaciones- Desafíos comunes específicos de React (gestión de estado :D / buenas prácticas de UX)
Trabajando con OpenAI y la Ingeniería de Prompts para Desarrolladores de React
React Advanced 2023React Advanced 2023
98 min
Trabajando con OpenAI y la Ingeniería de Prompts para Desarrolladores de React
Top Content
Workshop
Richard Moss
Richard Moss
En esta masterclass daremos un recorrido por la IA aplicada desde la perspectiva de los desarrolladores de front end, enfocándonos en las mejores prácticas emergentes cuando se trata de trabajar con LLMs para construir grandes productos. Esta masterclass se basa en los aprendizajes obtenidos al trabajar con la API de OpenAI desde su debut en noviembre pasado para construir un MVP funcional que se convirtió en PowerModeAI (una herramienta de creación de ideas y presentaciones orientada al cliente).
En la masterclass habrá una mezcla de presentación y ejercicios prácticos para cubrir temas que incluyen:
- Fundamentos de GPT- Trampas de los LLMs- Mejores prácticas y técnicas de ingeniería de prompts- Uso efectivo del playground- Instalación y configuración del SDK de OpenAI- Enfoques para trabajar con la API y la gestión de prompts- Implementación de la API para construir una aplicación orientada al cliente potenciada por IA- Ajuste fino y embeddings- Mejores prácticas emergentes en LLMOps
Construyendo Aplicaciones AI para la Web
React Day Berlin 2023React Day Berlin 2023
98 min
Construyendo Aplicaciones AI para la Web
Workshop
Roy Derks
Roy Derks
Hoy en día, cada desarrollador está utilizando LLMs en diferentes formas y figuras. Muchos productos han introducido capacidades AI incorporadas, y en esta masterclass aprenderás cómo construir tu propia aplicación AI. No se necesita experiencia en la construcción de LLMs o en el aprendizaje automático. En cambio, utilizaremos tecnologías web como JavaScript, React y GraphQL que ya conoces y amas.