Programmation et développement logiciel

Microsoft lance un agent open source pour générer et valider des tests unitaires

Microsoft a annoncé l’agent open source code-testing-generator, capable de comprendre le dépôt du projet, de déterminer le framework de test, de rédiger des tests unitaires, puis de vérifier leur compilation et leur exécution. L’agent a atteint un taux de réussite de 92,1 % lors d’un test interne portant sur 152 tâches, contre 78,9 % pour le Copilot standard utilisant le même modèle.

2026-07-31
6 min de lecture
10 vues
فريق تحرير certi.news
Microsoft lance un agent open source pour générer et valider des tests unitaires

Microsoft a annoncé code-testing-generator, un agent open source et multilingue destiné à générer des tests unitaires. L’agent ne se contente pas de créer des tests qui semblent corrects : il commence par apprendre à partir du dépôt du projet, puis détermine le code qui doit être testé, le framework de test utilisé, l’emplacement des fichiers, ainsi que les commandes de compilation et d’exécution, avant de vérifier que les tests sont détectés dans le parcours de test habituel du dépôt.

L’agent est disponible dans l’extension dotnet-test du dépôt dotnet/skills. Il isole le code testé et crée des simulations des services externes et des autres dépendances. Son périmètre actuel n’inclut pas les tests d’intégration, les tests de bout en bout, les tests de navigateur ni les tests de performance.

Il commence par comprendre le dépôt avant d’écrire les tests

Au lieu de commencer directement par générer du code, l’agent recherche la partie à tester, identifie le langage et le framework de test, puis examine les tests existants afin de déterminer où placer les nouveaux tests et comment les écrire. Il détermine également les commandes de compilation et d’exécution des tests.

Cette approche permet d’éviter une situation dans laquelle un nouveau projet de test compile et s’exécute correctement de manière isolée, mais n’est pas inclus dans la solution ou dans la commande de test utilisée par l’environnement d’intégration continue. L’agent examine donc la manière dont le dépôt détecte les tests et vérifie que les nouveaux tests y apparaissent.

L’agent choisit le niveau d’intervention en fonction de la taille de la demande :

  • Direct : lire le code concerné, écrire les tests, puis vérifier le résultat.
  • En un seul passage : effectuer la recherche et la planification une seule fois, puis exécuter le plan.
  • Itératif : répéter le cycle de recherche, de planification et d’exécution afin de couvrir une demande importante ou d’atteindre un objectif de couverture précis.

Il vérifie l’utilité des tests, pas seulement leur réussite

Pour les tâches plus importantes, l’agent répertorie le code qui nécessite des tests et commence par les parties les plus simples avant de passer au code présentant davantage de dépendances. Il associe également chaque comportement à un fichier de test, respecte les conventions locales du projet et exécute les tests au cours du travail.

Si le code produit ne compile pas, l’agent le corrige ; si une assertion est incorrecte, il revient à la source et corrige le test. Il ne modifie pas le code de production lors de la génération des tests et évite les tests unitaires qui appellent des adresses externes, ouvrent des ports ou dépendent d’un minutage précis.

Avant de terminer, l’agent effectue plusieurs vérifications, notamment de petites modifications censées faire échouer les tests, sous la forme simplifiée d’un test de mutation, la recherche d’assertions faibles ou manquantes, ainsi que la vérification de la présence d’un test pour chaque scénario requis. Il compile également l’espace de travail complet et exécute l’ensemble des tests, puis vérifie que la commande de test du dépôt est capable de trouver les nouveaux tests.

Résultats du test interne

Lors du dernier test de référence interne, l’agent a mené à bien 140 tâches sur 152, soit un taux de 92,1 %, contre 120 tâches et un taux de 78,9 % pour le Copilot standard, avec le même modèle. Microsoft a indiqué que le nombre d’échecs avait diminué de 63 %.

Les écarts les plus importants sont apparus dans les demandes ambiguës qui laissent la plupart des décisions à l’agent : l’agent spécialisé a réussi 79 tâches sur 89, contre 59 tâches pour le Copilot standard, tandis que le nombre d’échecs est passé de 30 à 10. Pour les demandes détaillées, les résultats étaient proches : l’agent a réussi 61 tâches sur 63.

Dans 15 tâches demandant d’écrire des tests pour une modification précise du code, l’agent a réussi toutes les tâches, tandis que le Copilot standard n’en a réussi aucune. Concernant les résultats communs, les deux systèmes ont réussi 119 tâches, tandis que l’agent spécialisé a réussi seul 21 tâches, que le Copilot standard a réussi seul une tâche, et que les deux systèmes ont échoué dans 11 tâches.

L’agent a généré 6 963 tests, contre 7 129 pour le Copilot standard, avec une couverture moyenne finale des lignes de 72,4 % contre 72,2 %, et une couverture moyenne des branches de 49,8 % contre 49,1 %. Le temps moyen par tâche s’est également élevé à 359 secondes pour l’agent spécialisé et à 380 secondes pour le Copilot standard. Microsoft affirme que le gain vient de la fiabilité, et non de la production d’un plus grand nombre de tests.

Prise en charge de plusieurs langages et disponibilité de l’extension

Les instructions fournies incluent la prise en charge de .NET, Python, TypeScript, JavaScript, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell et C++. Les tests ont montré que l’agent apprend les conventions de chaque dépôt au lieu d’appliquer des modèles C# à tous les projets.

Lors d’un autre test portant sur 44 tâches du benchmark SWE Atlas, l’agent a mené à bien 16 tâches, soit un taux de 36,4 %, contre 12 tâches et un taux de 27,3 % pour le Copilot standard. Les tests générés ont également réussi 550 cas et détecté 360 erreurs injectées, contre respectivement 493 et 316 pour le système standard. Microsoft reconnaît que ce benchmark est plus difficile et que les taux de réussite y sont nettement inférieurs.

L’extension peut être utilisée dans GitHub Copilot CLI. Elle est également disponible dans Visual Studio Code et VS Code Insiders grâce à la prise en charge des extensions, laquelle est encore en phase de préversion. Microsoft travaille aussi à la prise en charge de Visual Studio. Pour installer l’extension dans GitHub Copilot CLI, l’utilisateur ajoute la marketplace d’extensions à l’aide de la commande /plugin marketplace add dotnet/skills, puis l’installe avec /plugin install dotnet-test@dotnet-agent-skills, redémarre le CLI et sélectionne l’agent code-testing-generator.

Source de l’actualité
ف
Auteur

فريق تحرير certi.news

Dans la même catégorie

À lire également

Voir toutes les actualités