La prévention et la résolution automatiques des défauts constituent un sujet de recherche important dans le domaine de la maintenance et de l'évolution des logiciels. Les approches existantes utilisent des métriques de code et de processus pour construire des modèles basés sur les métriques qui permettent de prévenir efficacement l'insertion de défauts dans un projet logiciel. Cependant, les métriques peuvent varier d'un projet à l'autre, ce qui entrave la réutilisation de ces modèles. De plus, elles ont tendance à générer des taux élevés de faux positifs en classifiant les validations saines comme étant risquées. Enfin, elles ne fournissent pas suffisamment d'informations aux développeurs sur la manière de corriger les validations risquées détectées. Dans cet article, nous proposons une approche appelée CLEVER (Combining Levels of Bug Prevention and Resolution techniques), qui repose sur un processus en deux phases pour intercepter les validations risquées avant qu'elles n'atteignent le repository central. CLEVER a été développé en collaboration avec les développeurs d'Ubisoft. Lorsqu'il est appliqué à 12 systèmes Ubisoft, les résultats montrent que CLEVER peut détecter les validations risquées avec une précision de 79 % et un rappel de 65 %, ce qui est supérieur aux performances de Commit-guru, une approche récente proposée dans la littérature. De plus, CLEVER est capable de recommander des corrections qualitatives aux développeurs sur la manière de corriger les validations risquées dans 66,7 % des cas.
15 March 2018
2 mins de lecture