Acelerando el Desarrollo .NET con GitHub Copilot Coding Agent

Acelerando el Desarrollo .NET con GitHub Copilot Coding Agent

El GitHub Copilot Coding Agent está transformando la forma en que los desarrolladores .NET abordan su trabajo diario. Más allá de las sugerencias de código en línea, esta herramienta basada en la nube tiene la capacidad de analizar repositorios completos, planificar tareas de múltiples pasos, crear issues y pull requests, y aplicar cambios entre proyectos, todo ello de manera automatizada. En este artículo, exploraremos dos escenarios prácticos utilizando la solución de ejemplo eShopLite para demostrar cómo Copilot Coding Agent puede automatizar la creación de pruebas unitarias faltantes y permitir la implementación de nuevas funcionalidades a partir de un Documento de Requisitos de Producto (PRD).

El GitHub Copilot Coding Agent: Un Agente de Automatización Inteligente

El ecosistema .NET no deja de evolucionar, y las herramientas impulsadas por inteligencia artificial están adquiriendo un papel fundamental en el desarrollo, prueba y mantenimiento de aplicaciones. En este contexto, el GitHub Copilot Coding Agent emerge como una de las oportunidades más prometedoras para los desarrolladores .NET.

A diferencia de las clásicas sugerencias de código de Copilot, el Coding Agent opera en la nube y es capaz de abordar tareas de múltiples pasos, coordinarse con repositorios de GitHub, e incluso generar issues y pull requests en su nombre. Esta capacidad lo transforma de un simple “programador en pareja” a un verdadero agente de automatización. Esto no solo acelera las tareas repetitivas, sino que también libera a los desarrolladores para que puedan concentrarse en aspectos cruciales como la arquitectura y la innovación.

Para ilustrar su potencial, nos centraremos en dos casos de uso con la solución de ejemplo eShopLite:

  1. La automatización de la creación de pruebas unitarias.
  2. La implementación de una nueva característica utilizando un Documento de Requisitos de Producto (PRD).

Escenario 1: Automatización de Pruebas Unitarias con Copilot

Sabemos que las pruebas unitarias son esenciales para mantener la calidad y la mantenibilidad del software. Sin embargo, escribir pruebas unitarias no siempre es la parte más emocionante del desarrollo. Aquí es donde GitHub Copilot Coding Agent ofrece una solución innovadora.

Paso 1 – Identificar Pruebas Unitarias Faltantes

El proceso comienza pidiéndole a Copilot que analice la solución de código y detecte las lagunas en la cobertura de pruebas. Se utiliza un prompt estructurado para solicitar una lista detallada de pruebas, incluyendo su título, descripción, justificación, archivos afectados, nombre del método de prueba, casos de prueba con sus pasos de preparación (arrange), ejecución (act) y aserción (assert), dependencias a simular, prioridad y complejidad. Esta granularidad garantiza que las sugerencias sean accionables y se alineen con la estructura del repositorio.

Analyze the current solution and propose unit tests to add in the scenario 
[scenarios\01-SemanticSearch].
Make a list of tests where each element has title, description, rationale, 
affectedFiles (paths), testMethodName, testCases (objects with name, arrange, 
act, assert, optional expected), dependencies (to mock), priority 
(High|Medium|Low), and complexity (Small|Medium|Large).
Keep suggestions actionable and use repo-relative file paths.

Paso 2 – Revisar las Pruebas Sugeridas

Copilot presenta una propuesta de pruebas unitarias altamente estructurada, completa con justificaciones claras y resultados esperados. Esta organización permite a los desarrolladores validar rápidamente si las pruebas sugeridas cumplen con los requisitos del proyecto y se integran de manera adecuada con la lógica de negocio.

Paso 3 – Crear un Issue en GitHub

Una vez que la lista de pruebas propuestas es satisfactoria, se le indica a Copilot que cree un nuevo issue en GitHub. Este issue, titulado “Implement missing Unit Tests”, contiene todos los detalles necesarios sobre las pruebas unitarias que deben ser implementadas. Es importante destacar que para la creación de este issue, Copilot se integra con las herramientas GitHub MCP Server, facilitando la gestión del flujo de trabajo de desarrollo.

Given the current list of missing unit tests, create a new GitHub issue titled 
"Implement missing Unit Tests".
The new GitHub issue content should describe each missing test to be implemented later.
Show the ID and URL of the new created Issue in the current repository.

Ejemplo de issue generado: #47 Implement missing Unit Tests

Paso 4 – Asignar al Copilot Coding Agent

El paso final es asignar el issue recién creado directamente al Copilot Coding Agent mediante el prompt assign the new issue to @copilot. A partir de este momento, Copilot toma las riendas, generando automáticamente el código de las pruebas, abriendo un pull request para su revisión y esperando la aprobación humana. Este flujo de trabajo automatizado no solo reduce la carga manual de escribir pruebas repetitivas, sino que también contribuye a garantizar una calidad de pruebas consistente en toda la solución.

Ejemplo de Pull Request: #48 Add Unit Tests


Escenario 2: Implementación de una Característica con un Servidor de Pago Mock

El segundo escenario ilustra cómo el Copilot Coding Agent va más allá de la generación de pruebas, adentrándose en la implementación de nuevas funcionalidades. En lugar de comenzar directamente con el código, este proceso se inicia con un Documento de Requisitos de Producto (PRD).

Paso 1 – Generar un PRD

Se le solicita a Copilot que redacte un PRD, en formato Markdown, que capture la intención y los requisitos para añadir un servicio de pago mock. El prompt especifica que el documento debe ser conciso y centrado en el negocio, incluyendo secciones críticas como Propósito, Alcance, Criterios de éxito, Suposiciones, Descripción general del diseño de alto nivel, Resumen del contrato API, Resumen del modelo de datos, Notas de implementación, Configuración, Notas de seguridad y privacidad, Pruebas y validación, Criterios de aceptación, Plan de despliegue, y un Apéndice con ejemplos JSON de solicitud/respuesta.

Create a new Markdown file named `04-PRD_Add_Payment_Mock_Server.md` containing a 
Product Requirements Document (PRD) titled "PRD: Add Mock Payment Server / Payment 
Service to eShopLite".
Keep the document business-focused and concise. Include sections: Purpose, Scope, 
Key success criteria, Quick checklist, Assumptions, High-level design overview, API 
contract summary, Data model summary, Implementation notes, Configuration & local 
defaults, Security & privacy notes, Testing & validation, Acceptance criteria, 
Rollout plan, and Appendix with example request/response JSON.

El PRD generado por Copilot no es meramente un texto de relleno; proporciona detalles accionables como endpoints, variables de entorno y criterios de aceptación. Esto es crucial para asegurar que tanto los desarrolladores como las partes interesadas estén completamente alineados antes de que se escriba una sola línea de código.

Paso 2 – Implementar el PRD

Una vez que el PRD ha sido revisado y aprobado, se le pasa al Copilot Coding Agent para que implemente las características descritas. Copilot se encarga de realizar los cambios de código necesarios, actualizar las configuraciones relevantes e incluso generar elementos de interfaz de usuario cuando sea preciso. Adicionalmente, utiliza herramientas MCP, como Playwright, para capturar capturas de pantalla y validar la experiencia de extremo a extremo, asegurando que la implementación cumpla con los requisitos definidos.

Ejemplo de Pull Request: #49 Implement Mock Payment Server

Este escenario demuestra el verdadero potencial del Copilot Coding Agent: la capacidad de unir la documentación, la planificación y la ejecución. Copilot no solo ayuda a escribir código más rápido, sino que también acelera significativamente la entrega de características completas y bien documentadas.


Resumen y Consideraciones Finales

GitHub Copilot Coding Agent marca un cambio de paradigma en la productividad de los desarrolladores .NET. Sus capacidades son extensas:

  • Para pruebas, identifica la cobertura faltante, crea issues y genera Pull Requests.
  • Para características, traduce los requisitos de PRDs en código funcional.
  • Para la colaboración, se integra fluidamente con los flujos de trabajo y pull requests de GitHub.
  • ¡Y mucho más!

Es fundamental entender que Copilot Coding Agent no busca reemplazar a los desarrolladores, sino que aumenta su flujo de trabajo, automatizando las tareas repetitivas y permitiendo que los profesionales se concentren en la creatividad, el diseño de soluciones innovadoras y la revisión crítica del código.

Si eres desarrollador .NET y aún no has experimentado con el Copilot Coding Agent, este es el momento ideal para explorarlo. Además, es posible personalizar el comportamiento del Coding Agent en tu repositorio mediante instrucciones personalizadas en el archivo AGENTS.md, como se detalla en el changelog de Copilot Coding Agent.

Precaución

Aunque Copilot puede implementar exitosamente pruebas unitarias y generar nuevas características, es crucial revisar cuidadosamente el código generado antes de su fusión. La supervisión humana asegura la calidad del código, la seguridad y la alineación con los estándares del proyecto.

Este post se publicó originalmente en el .NET Blog.

Author: Enagora

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *