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!
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

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.

3. Preguntas de Código y Comunicación

Short description:

Puedes hacer preguntas a la IA de Codium sobre tu código e incluso solicitarle que genere datos simulados. Puede mejorar ciertas partes de tu código y proporcionar múltiples sugerencias. También puedes indicarle que refactorice tu código, revise tus cambios y te ayude a escribir mensajes de commit. Si tienes alguna pregunta o quieres ponerte en contacto, puedes encontrarme en Twitter o en el canal de Discord de Codium AI.

Por lo tanto, es posible hacer preguntas sobre tu código. Al hacer preguntas, también puedes pedirle que genere datos simulados. Podemos ver aquí que tenemos cadenas de documentación. Podemos mejorar el código. Y cuando le pides que mejore, también puedes indicarlo. Así que mejorará ciertas partes de tu código. Y dará múltiples sugerencias.

Puedes decirle que lo refactorice. Te dará una diferencia. Y luego puedes elegir aceptar o rechazar esos cambios. Y una vez que llegues al punto en que estés satisfecho con tus cambios, Codium AI también puede ayudarte a escribir tu mensaje de commit. Antes de subir tu código a un repositorio remoto, ya puedes hacer una revisión de tus cambios contra ramas específicas a las que podrías querer empujar para tener una idea si no cometiste un error y pusiste un token de API allí.

Y con eso, si tienes alguna pregunta, todavía estoy en Twitter porque no recibí una invitación para ninguno de los otros. Puedes encontrarme allí. O ve a Codium AI. Tenemos un canal de Discord y probablemente sea la forma más fácil de ponerte en contacto. Soy el único Jaap allí. Así que es bastante fácil. 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

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.
AI and Web Development: Hype or Reality
JSNation 2023JSNation 2023
24 min
AI and Web Development: Hype or Reality
In this talk, we'll take a look at the growing intersection of AI and web development. There's a lot of buzz around the potential uses of AI in writing, understanding, and debugging code, and integrating it into our applications is becoming easier and more affordable. But there are also questions about the future of AI in app development, and whether it will make us more productive or take our jobs.
There's a lot of excitement, skepticism, and concern about the rise of AI in web development. We'll explore the real potential for AI in creating new web development frameworks, and separate fact from fiction.
So if you're interested in the future of web development and the role of AI in it, this talk is for you. Oh, and this talk abstract was written by AI after I gave it several of my unstructured thoughts.
The Rise of the AI Engineer
React Summit US 2023React Summit US 2023
30 min
The Rise of the AI Engineer
We are observing a once in a generation “shift right” of applied AI, fueled by the emergent capabilities and open source/API availability of Foundation Models. A wide range of AI tasks that used to take 5 years and a research team to accomplish in 2013, now just require API docs and a spare afternoon in 2023. Emergent capabilities are creating an emerging title: to wield them, we'll have to go beyond the Prompt Engineer and write *software*. Let's explore the wide array of new opportunities in the age of Software 3.0!
Building the AI for Athena Crisis
JS GameDev Summit 2023JS GameDev Summit 2023
37 min
Building the AI for Athena Crisis
This talk will dive into how to build an AI for a turn based strategy game from scratch. When I started building Athena Crisis, I had no idea how to build an AI. All the available resources were too complex or confusing, so I just started building it based on how I would play the game. If you would like to learn how to build an AI, check out this talk!
Improving Developer Happiness with AI
React Summit 2023React Summit 2023
29 min
Improving Developer Happiness with AI
GitHub Copilot is an AI pair programmer that can help you write code faster and spend less time writing repetitive code.This session will cover some interesting use cases for Copilot that could shine a light on its possibilities. This ranges from prompting Copilot to suggest a function based on a comment, learning how to use a new framework, tackling a security or accessibility bug, better documenting your code, translating  code from one language to another, etc.Agenda:
Introduction to CoPilot
- What is Copilot
- How can you use it
- How it can help you write code faster
- Copilot Labs experimental features I will pick examples from the React ecosystem and show how we can fix Security Vulnerabilities and Accessibility issues in some components.

Workshops on related topic

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.
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
Intro to AI for JavaScript Developers with Tensorflow.js
JSNation Live 2021JSNation Live 2021
81 min
Intro to AI for JavaScript Developers with Tensorflow.js
Workshop
Chris Achard
Chris Achard
Have you wanted to explore AI, but didn't want to learn Python to do it? Tensorflow.js lets you use AI and deep learning in javascript – no python required!
We'll take a look at the different tasks AI can help solve, and how to use Tensorflow.js to solve them. You don't need to know any AI to get started - we'll start with the basics, but we'll still be able to see some neat demos, because Tensorflow.js has a bunch of functionality and pre-built models that you can use on the server or in the browser.
After this workshop, you should be able to set up and run pre-built Tensorflow.js models, or begin to write and train your own models on your own data.