Cobertura de código con IA

Rate this content
Bookmark
  • En esta demostración rápida mostraré cómo Codium, una herramienta generativa de IA de vanguardia, está revolucionando la integridad del código. Demostraremos la capacidad de Codium para generar pruebas Mocha útiles, tomadas de un repositorio público y destacaremos la integración perfecta. Puedes ver a Codium transformando escenarios de prueba complejos en información accionable, impulsando la cobertura de código hacia adelante. ¡Únete a nosotros para un vistazo perspicaz al futuro de las pruebas automatizadas donde la velocidad se encuentra con la calidad!

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

FAQ

Codium es un asistente de IA generativo que se integra en tu entorno de desarrollo integrado (IDE), como VS Code o la suite de JetBrains. Ofrece funciones como generación de pruebas, explicación de código y colaboración mejorada, ayudando a automatizar tareas como las solicitudes de extracción.

PR Agent es un proyecto de código abierto de Codium que ayuda a gestionar mensajes de commit, revisiones de PR y descripciones, facilitando la automatización de estas tareas. Es gratuito y compatible con plataformas como GitHub, GitLab, Bitbucket, Azure DevOps y CodeCommit.

Codium permite generar pruebas automatizadas que pueden mejorar la cobertura de código. Puedes especificar ciertos métodos o líneas de código y Codium generará pruebas pertinentes, incluso utilizando pruebas existentes como referencia para generar nuevas pruebas.

Puedes obtener soporte y comunicarte con el equipo de Codium a través de su canal de Discord. Jaap, mencionado en la presentación, es el único con ese nombre en el canal, facilitando su localización para cualquier consulta directa.

Sí, Codium puede generar pruebas específicamente para errores como el 404 y 500. La herramienta analiza el comportamiento del código y genera pruebas que cubren estos escenarios, ayudando así a mejorar la cobertura de pruebas en el código.

Codium no solo genera pruebas, sino que también ofrece la capacidad de mejorar y refactorizar código. La IA proporciona sugerencias de mejora y permite al usuario aceptar o rechazar estos cambios, facilitando la optimización del código de manera eficiente.

Jaap Brasser
Jaap Brasser
8 min
07 Dec, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Codium es un asistente generativo de IA para el desarrollo de software que ofrece explicación de código, generación de pruebas y características de colaboración. Puede generar pruebas para una API de GraphQL en VS Code, mejorar la cobertura de código e incluso documentar pruebas. Codium permite analizar líneas de código específicas, generar pruebas basadas en las existentes y responder preguntas relacionadas con el código. También puede proporcionar sugerencias para mejorar el código, ayudar con la refactorización del código y asistir en la redacción de mensajes de commit.
Available in English: Code coverage with AI

1. Introducción a Codium y Demo

Short description:

Hola, bienvenidos a todos. Soy Jaap de los Países Bajos, representando a Codium. Ofrecemos un asistente de IA generativo que se integra con tu IDE, proporcionando generación de pruebas, explicación de código y características de colaboración. Nuestro proyecto de código abierto, PR Agent, automatiza los mensajes de commit, las revisiones de PR y las descripciones. Vamos a sumergirnos en una demostración de las capacidades de Codium generando pruebas para una API de GraphQL en VS Code. Podemos configurar el marco de pruebas, las bibliotecas y el número de pruebas a generar. También podemos agregar indicaciones y usar pruebas existentes como ejemplos. Con Codium, podemos generar pruebas e incluso documentarlas. Vamos a abordar la cobertura de código para el servidor de API REST de Express utilizando Codium.

Hola, bienvenidos a todos. Mi nombre es Jaap, y como probablemente puedan notar, no soy de por aquí. Estoy basado en los Países Bajos. Un poco sobre mí, sobre cómo pueden conectarse conmigo, pero vamos a entrar en materia y hablar sobre las cosas increíbles que hacemos en Codium y cómo podemos facilitarles la vida.

Lo que ofrece Codium es que somos un asistente de IA generativo que se integra en tu IDE. Puede ser VS Code, puede ser la suite de JetBrains, y ofrece generación de pruebas, explicación de código, algunas características de colaboración como ya no tener que escribir tus propias solicitudes de extracción. Y también tenemos un proyecto de código abierto que se llama PR Agent. Así que PR Agent también tiene esa funcionalidad. Es completamente gratuito para usar. La URL está listada allí. Y puedes ejecutarlo como una acción de GitHub o alojarlo tú mismo, puede conectarse a tres de ellos listados aquí, GitHub, GitLab, Bitbucket, pero también funciona con Azure DevOps, CodeCommit, y estoy olvidando algunos otros. Así que si no te gusta escribir tus propios mensajes de commit, hacer tus propias revisiones de PR y escribir tus descripciones, PR Agent es una buena herramienta de código abierto que tenemos en Codium.

Y con eso, me gustaría pasar a una demostración. Y opté por el enfoque fácil, cero fallos en la demo. Así que voy a sumergirme en un par de capturas de pantalla aquí que muestran algunas de las capacidades que tenemos. Y para hacerlo, vamos a echar un vistazo a este repositorio. Así que este repositorio Mocha con un montón de aplicaciones de demostración. Y vamos a echar un vistazo a esta API de GraphQL. Y vamos a ver si podemos generar algunas pruebas con ella y mostrar cómo es la interfaz de Codium. Así que esto es en VS Code. Y como pueden ver, hay una serie de cosas que podemos configurar aquí. Así que podemos seleccionar el marco de pruebas, podemos seleccionar bibliotecas adicionales, podemos establecer cuántas pruebas queremos generar, también podemos añadir indicaciones. Y si ya tienes pruebas existentes, también puedes dar un ejemplo de prueba de referencia que podemos usar como base para generar esas pruebas. Así que lo que podemos ver aquí es que he generado una prueba. Y pensé, bueno, sería bueno si la prueba también estuviera documentada. Así que doy una indicación, añado una cadena de documentación. Y luego podemos ver que también añadió una cadena de documentación a la prueba. A continuación, ejecuté la cobertura de código para este repositorio. Y identifiqué que el servidor de API REST de Express no tenía suficiente cobertura de código. Así que vamos a ver cómo podemos solucionar esto usando Codium.

2. Explicación de Código y Generación de Pruebas

Short description:

Aquí está el código con el que estamos trabajando. Las líneas 16, 21 y 22 no están cubiertas por la cobertura de código. La explicación del código proporciona un resumen, un ejemplo de uso y un flujo. Codium permite analizar métodos, funciones o líneas específicas. Podemos añadir más pruebas utilizando las pruebas existentes como referencia. Podemos seleccionar comportamientos apropiados y generar pruebas. Generamos una prueba para el error 404, lo que mejoró la cobertura de código. Al solicitar a la IA de Codium, se generó una prueba para el código de error 500. Podemos regenerar resultados y utilizar comandos de chat.

Así que aquí está el código con el que estamos trabajando. Voy a retroceder uno. También podemos ver los números de línea aquí. Así que nos referiremos a eso cuando estemos mirando el código fuente. Así que podemos ver que la línea número 16, el 404, no estaba cubierta con la cobertura de código, según la cobertura de código. Y también las 21 y 22. Así que un error de servidor tampoco estaba cubierto.

Para entender mejor cómo podemos generar estas pruebas, podemos echar un vistazo a la explicación del código. Así que da un resumen. Da un ejemplo de uso, y también el flujo de cómo funciona este fragmento de código. Así que en este caso, estamos mirando un solo archivo. Pero con Codium, también puedes especificar un método específico, una función específica, o un número de líneas seleccionadas que quieres analizar o generar pruebas para ellas o crear cadenas de documentación para ellas.

Así que a continuación, podemos ver la prueba existente. Y lo que vamos a hacer, porque ya tenemos pruebas existentes que cubren la parte principal del comportamiento, vamos a hacer clic en el botón que dice, añadir más pruebas. Así que generaremos pruebas, y utilizaremos las pruebas existentes como referencia para generar esas pruebas. Y podemos ver que tenemos un análisis de comportamiento de esta función. Esta es una función bastante simple. Así que no todos estos comportamientos tienen sentido completo, pero esa es la idea. Puedes seleccionar los que creas que son apropiados y luego generar pruebas para ellos. También tenemos la opción de generar las pruebas nosotros mismos.

Así que en este caso, generamos la prueba para el error 404. Y después de añadir eso al repositorio, volviendo a ejecutar la cobertura de código, podemos ver que ahora la línea número 16 también está cubierta. Así que genial. Sin embargo, no había ninguna prueba para el código de error 500. Y tampoco había ningún comportamiento para eso. Así que pedí a la IA de Codium que generara la prueba para el código de error 500. Y de esa manera también puedes generar esas pruebas. Y para cualquiera de los resultados que generamos, podemos hacer clic en regenerar para ver qué tipo de para que genere nuevo código. Podemos hacer solicitudes para mejorar el código y para guiarlo hacia el objetivo final. Y también tenemos integrados una serie de comandos de chat.

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.
Construyendo la IA para Athena Crisis
JS GameDev Summit 2023JS GameDev Summit 2023
37 min
Construyendo la IA para Athena Crisis
Join Christoph from Nakazawa Tech in building the AI for Athena Crisis, a game where the AI performs actions just like a player. Learn about the importance of abstractions, primitives, and search algorithms in building an AI for a video game. Explore the architecture of Athena Crisis, which uses immutable persistent data structures and optimistic updates. Discover how to implement AI behaviors and create a class for the AI. Find out how to analyze units, assign weights, and prioritize actions based on the game state. Consider the next steps in building the AI and explore the possibility of building an AI for a real-time strategy game.
Qué puede hacer, no puede hacer y no debería hacer la IA en los juegos
C3 Dev Festival 2024C3 Dev Festival 2024
26 min
Qué puede hacer, no puede hacer y no debería hacer la IA en los juegos
AI in game development has evolved rapidly, with generative AI being a focus. However, game developers like Romero Games have concerns about ethics and prefer using AI to automate processes and make creative work easier. AI has been used in games for decades, from path-finding AI to decision trees. Procedural world building and advanced AI technology are pushing the boundaries of FPS games. Different teams within a company have different approaches to the use of AI, depending on their specific needs and requirements.

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.
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 Conference 2023React Advanced Conference 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.
Construyendo tu Aplicación de IA Generativa
React Summit 2024React Summit 2024
82 min
Construyendo tu Aplicación de IA Generativa
WorkshopFree
Dieter Flick
Dieter Flick
La IA generativa está emocionando a los entusiastas de la tecnología y a las empresas con su vasto potencial. En esta sesión, presentaremos Retrieval Augmented Generation (RAG), un marco que proporciona contexto a los Modelos de Lenguaje Grande (LLMs) sin necesidad de volver a entrenarlos. Te guiaremos paso a paso en la construcción de tu propia aplicación RAG, culminando en un chatbot completamente funcional.
Conceptos Clave: IA Generativa, Retrieval Augmented Generation
Tecnologías: OpenAI, LangChain, AstraDB Vector Store, Streamlit, Langflow