Une nouvelle approche améliore la réparation automatique des logiciels en générant des cas de test
Les chercheurs d'IMDEA Software, Facundo Molina, Juan Manuel Copia et Alessandra Gorla, présentent FIXCHECK, une nouvelle approche pour améliorer l'analyse des correctifs qui combine l'analyse statique, les tests randomisés et les grands modèles linguistiques.
Leurs innovations, présentées dans le document « Améliorer l'analyse de l'exactitude des correctifs via des tests aléatoires et des modèles de langage volumineux », ont été présentées à la Conférence internationale sur les tests, la vérification et la validation des logiciels (ICST 2024), et des détails supplémentaires sont disponibles sur le site Zéodo serveur.
La création de correctifs pour corriger les défauts logiciels est une tâche cruciale dans la maintenance des systèmes logiciels. En général, les défauts logiciels sont signalés via des cas de test, qui révèlent des comportements indésirables dans le logiciel.
En réponse à ces défauts, les développeurs créent des correctifs qui doivent subir une validation avant d'être intégrés à la base de code, garantissant ainsi que le test fourni n'expose plus le défaut. Cependant, les correctifs peuvent toujours ne pas résoudre efficacement le bug sous-jacent ou introduire de nouveaux bugs, ce qui donne lieu à ce que l'on appelle des correctifs erronés ou des correctifs incorrects.
La détection de ces correctifs incorrects peut avoir un impact significatif sur le temps et les efforts consacrés aux corrections de bogues par les développeurs et sur la maintenance globale des systèmes logiciels.
La réparation automatique des programmes (APR) fournit aux développeurs de logiciels des outils capables de générer automatiquement des correctifs pour les programmes présentant des bugs. Cependant, leur utilisation a permis de découvrir de nombreux correctifs incorrects qui ne parviennent pas à résoudre le problème.
Pour résoudre ce problème, les chercheurs d'IMDEA Software ont créé FIXCHECK, une nouvelle approche permettant d'améliorer la sortie des analyses d'exactitude des correctifs, qui combine l'analyse statique, les tests aléatoires et les grands modèles de langage (LLM) pour générer automatiquement des tests permettant de détecter les bugs dans les correctifs potentiellement incorrects.
FIXCHECK utilise un processus en deux étapes. La première étape consiste à générer des tests aléatoires, en obtenant un grand nombre de cas de test. La deuxième étape repose sur l'utilisation de grands modèles de langage, à partir desquels des assertions significatives sont dérivées pour chaque cas de test.
De plus, FIXCHECK inclut un mécanisme de sélection et de priorisation qui exécute de nouveaux cas de test sur le programme corrigé, puis rejette ou classe ces tests en fonction de leur probabilité de révéler des bogues dans le correctif.
« L'efficacité de FIXCHECK dans la génération de cas de test révélant des bugs dans des correctifs incorrects a été évaluée sur 160 correctifs, y compris des correctifs créés par les développeurs et des correctifs générés par des outils RPA », déclare Facundo Molina, chercheur postdoctoral à l'Institut IMDEA Software.
Les résultats montrent que FIXCHECK peut générer efficacement des tests de détection de bugs pour 62 % des correctifs incorrects écrits par les développeurs, avec un degré de confiance élevé. En outre, il complète les techniques d'évaluation des correctifs existantes en fournissant des cas de test qui révèlent des bugs pour jusqu'à 50 % des correctifs incorrects identifiés par des techniques de pointe.
FIXCHECK représente une avancée significative dans le domaine de la réparation et de la maintenance des logiciels en fournissant une solution robuste pour automatiser la génération de tests et détecter les pannes lors de la maintenance des logiciels. Cette approche améliore non seulement l'efficacité de la validation des correctifs, mais favorise également une adoption plus large des méthodes de réparation automatisée des programmes.
Fourni par l'IMDEA Software Institute