Révolutionner la couverture de code grâce aux tests unitaires propulsés par l’IA générative

Comment GenAI transforme les processus laborieux et aide les développeurs à se concentrer sur l’essentiel : créer de meilleurs logiciels
5 min de lecture
Shilpa Adavelli
Shilpa Adavelli
Gestionnaire principal de produit, Conseil numérique, Affaires numériques
5 min de lecture
Révolutionner la couverture du code grâce aux tests unitaires alimentés par l’AI générative

Atteindre la couverture de code est une tâche que j’ai souvent entendu mes développeurs qualifier de laborieuse, surtout dans des environnements patrimoniaux complexes, pour des applications qui utilisent de multiples dépôts de code détenus par différentes équipes.

Les tests unitaires jouent un rôle essentiel pour s’assurer que chaque unité fonctionnelle du code source fonctionne comme prévu. Dans le cadre des tests unitaires, chaque unité est examinée séparément du reste du code, ce qui permet d’atteindre la couverture de code. La couverture de code est une mesure utilisée par les développeurs pour évaluer dans quelle mesure le code source est exécuté. Elle indique la proportion de la base de code qui a été testée, offrant un aperçu des segments vérifiés par rapport aux segments non testés.

Atteindre une haute couverture de code est non seulement essentiel pour détecter les bogues tôt dans la phase de développement, mais est également requis par des acteurs tels que DevOps (ADO). ADO recommande de viser une couverture de code de 70 % pour les demandes de tirage. Traditionnellement, les développeurs écrivent les cas de test unitaires manuellement. Divers outils, comme NUnit, Pytest, Boost Test, pour n’en nommer que quelques-uns, aident à structurer ces cas de test. Cependant, la formulation de chaque cas de test reste un processus qui exige beaucoup de temps et, à mesure que les bases de code grandissent, le volume d’entrées et de sorties augmente également, ce qui accroît le temps nécessaire pour obtenir une couverture de test et peut laisser des scénarios limites mais critiques non testés. De tels défis mettent en lumière la nécessité d’une génération automatisée et efficace des cas d’essai unitaires.

, une sous-catégorie de l’intelligence artificielle propulsée par des outils exploitant des grands modèles de langage (LLM), s’avère une ressource précieuse à cet égard. En facilitant la création de cas de test unitaires, GenAI a le potentiel d’accélérer le processus de développement et d’améliorer la qualité des tests, permettant aux développeurs de se concentrer sur la construction plutôt que de s’inquiéter de la couverture de code.

GenAI est capable de générer automatiquement de nouveaux contenus à partir de données entraînées. Elle est devenue un atout majeur dans le développement logiciel. Les LLM, tels que ChatGPT d’OpenAI, Copilot de Microsoft et Gemini de Google, ont été entraînés sur de vastes ensembles de données, ce qui leur permet de produire un contenu contextuellement pertinent, incluant des extraits de code, de la documentation et des cas de test unitaires.

En utilisant GenAI, les développeurs peuvent accélérer le processus de test unitaire. Au lieu de rédiger manuellement chaque cas de test, ils peuvent utiliser GenAI pour créer un éventail de scénarios de test, y compris ceux qui pourraient autrement être négligés. Ceci permet non seulement d’économiser du temps, mais aussi d’accroître l’exhaustivité des tests, d’améliorer la couverture de code et de réduire les risques de bogues dans la base de code. Par conséquent, GenAI permet aux développeurs de maintenir de hauts standards de qualité logicielle tout en réduisant la charge associée au développement manuel des cas de test.

Un cadre de test unitaire bien conçu, basé sur GenAI, pourrait permettre non seulement de générer des cas de test unitaires, mais aussi d’exécuter les cas générés, de produire des rapports de couverture de code et de générer itérativement d’autres cas de test si la couverture de code n’est pas atteinte.

Des travaux importants ont déjà été réalisés dans ce domaine par des fournisseurs de services, qui ont rapporté que leur plateforme, écrite en Python et testée pour des codes sources en Python et C/C++, a permis une réduction de 60 % du temps, des efforts et des coûts par rapport à l’approche manuelle dans les tests logiciels automobiles. Une jeune entreprise a récemment annoncé un agent AI qui, selon elle, peut analyser du code, détecter et corriger des bogues et rédiger des tests unitaires. Des plateformes qui offrent la génération de tests unitaires propulsée par l’AI pour les bases de code Java utilisent l’apprentissage par renforcement pour analyser la base de code et générer des tests lisibles par l’humain et exécutables qui couvrent un large éventail de scénarios. HCLTech dispose d’un outil GenAI développé en interne, , qui permet également cette capacité, mais doit encore être appuyé par des preuves concrètes.

En conclusion, l’application de GenAI pour la génération de cas de test unitaires semble avoir un énorme potentiel, avec une quantité significative de travail déjà accomplie dans l’automatisation des tests logiciels.

Partager sur
DBS Applications modernes Blogues Révolutionner la couverture de code grâce aux tests unitaires propulsés par l’IA générative