Récemment, plusieurs techniques de réparation de programmes automatisée (APR) basées sur de grands modèles de langage (LLM) ont été proposées pour améliorer les performances de réparation. Bien que ces techniques se concentrent principalement sur la réparation ligne par ligne ou au niveau des morceaux, elles rencontrent des défis importants dans des applications réelles en raison de l'étendue limitée des tâches de réparation et de la localisation des défauts au niveau des instructions, coûteuse. Cependant, l'APR au niveau des fonctions, qui élargit le champ de la tâche APR pour corriger des fonctions comportant des bogues entiers et nécessite uniquement une localisation de défaut efficace au niveau des fonctions, reste sous-exploré. Dans cet article, nous menons une étude complète de l'APR au niveau des fonctions basée sur des LLM, y compris l'examen de l'effet du mécanisme d'apprentissage par quelques exemples et des informations auxiliaires pertinentes pour la réparation. Plus précisément, nous adoptons six LLM largement étudiés et construisons un banc d'essai sur les ensembles de données Defects4J 1.2 et 2.0. Notre étude démontre que les LLM avec apprentissage par zéro exemple sont déjà des techniques d'APR au niveau des fonctions puissantes, tandis que l'application du mécanisme d'apprentissage par quelques exemples conduit à des performances de réparation disparates. De plus, nous découvrons que l'application directe des informations auxiliaires pertinentes pour la réparation aux LLM augmente considérablement les performances de réparation au niveau des fonctions et dépasse même plusieurs techniques APR récentes. Inspirés par nos résultats, nous proposons une technique d'APR au niveau des fonctions basée sur des LLM, appelée SRepair, qui adopte un cadre à double LLM pour tirer parti de la puissance des informations auxiliaires pertinentes pour la réparation afin d'améliorer les performances de réparation. Les résultats de l'évaluation démontrent que SRepair peut corriger 227 bogues à fonction unique dans l'ensemble de données Defects4J, surpassant largement toutes les techniques APR précédentes d'au moins 26 %, sans avoir besoin des coûteuses informations de localisation des défauts au niveau des instructions. De plus, SRepair fixe avec succès 21 bogues multi-fonction dans l'ensemble de données Defects4J, surpassant nettement d'autres techniques APR à la pointe de la technologie.
Xiang et al. (Mon,) ont étudié cette question.