Ju Yong Lee, professeur agrégé au Laboratoire de développement de logiciels industriels à l'Université Innopolis, a offert la meilleure recherche dans le domaine de l'automatisation rapide des corrections de bogues et a été parmi les dix lauréats des Facebook Testing and Verification Research Awards. Au total, 145 chercheurs du monde entier ont envoyé des demandes de subvention. Le scientifique nous a parlé de ses travaux de recherche.

À propos de l'étude
Je voudrais immédiatement indiquer clairement ce qu'est un test logiciel. Son objectif principal est de trouver des erreurs dans le programme qui ne sont pas écrites par les développeurs de logiciels. Si les tests réussissent, nous pouvons dire en toute sécurité que votre programme est prêt à être publié.
Il semble que trouver un bogue dans le logiciel ne soit pas si difficile, surtout si le développeur a déjà de l'expérience avec les bogues. Oui, il existe des erreurs qui peuvent être facilement détectées et trouvées, mais les développeurs ne voient souvent pas de vulnérabilités qui, même après leur travail minutieux, peuvent être détectées par des pirates. Grâce aux tests, nous voulons trouver des erreurs avant de devenir victimes d'accidents dus à des violations de la sécurité et des accidents de voiture. Selon l'Associated Press, 89 personnes sont décédées dans les années 2000-2010 en raison d'erreurs logicielles dans les voitures Toyota.
L'objectif principal du projet est de corriger automatiquement les défauts techniques ou les erreurs dans les programmes. Presque tous les logiciels contiennent des bogues, en particulier avec l'avènement de processus de développement, de test et de mise en œuvre continus. Maintenant, il devient de plus en plus difficile pour les développeurs de corriger les bogues en temps opportun. Par conséquent, il est nécessaire de garder le logiciel aussi protégé que possible contre les défauts, et de nombreux chercheurs, dont moi-même, tentent de trouver une solution et de développer une méthode de dépannage automatique. Dans ce projet particulier, j'essaie d'augmenter la vitesse de correction automatique des erreurs techniques afin de minimiser le temps entre leur détection et leur élimination.
La correction automatique des bugs techniques a été testée par de nombreux chercheurs, dont moi. Les premiers résultats ont été acceptés par l'industrie, et des sociétés comme Facebook ont déjà commencé à utiliser l'élimination automatique de bugs tels que des pointeurs défectueux, qui indiquent une cellule inexistante.
Que décide-t-il
Chacun a ses propres intérêts. Je m'intéresse aux langages de programmation, à la vérification et aux tests de logiciels; tout cela est inextricablement lié à une compréhension des programmes informatiques. Il n'y a pas si longtemps, la correction automatique des erreurs est devenue pour moi un sujet de recherche distinct. Je pense qu'à l'avenir, le logiciel sera créé par l'intelligence artificielle, ce qui permettra aux développeurs de consacrer plus de temps à travailler sur les composants logiciels clés.
Au cours de la dernière décennie, la correction automatique des erreurs a fait un grand pas en avant, grâce aux efforts des développeurs, dont le mien. J'ai travaillé sur l'amélioration des correctifs générés automatiquement et la correction automatique des bogues. Je pense que la prochaine percée dont nous avons besoin est la vitesse rapide. Jusqu'à présent, on pensait que la correction automatique des erreurs serait utilisée en mode batch, donc le problème de la vitesse n'était pas en premier lieu. Les développeurs commencent la correction automatique des erreurs et rentrent chez eux. Et le lendemain matin, les zones déboguées automatiquement pendant la nuit sont prêtes à être consultées. Mais l'expérience montre qu'il est préférable de corriger les erreurs immédiatement après avoir écrit un programme de bogue, tandis que le développeur se souvient encore de ce qu'il y a écrit. Par conséquent, j'ai proposé une étude de la correction d'erreur automatique à grande vitesse.
Concurrents
Il s'agissait d'une subvention internationale et la recherche a été offerte par des chercheurs du monde entier. Facebook a reçu 145 candidatures et sélectionné 10 gagnants, dont moi. Ce nombre (6,9%) montre à quel point la concurrence était plus féroce par rapport à l'obtention d'une subvention lors des meilleures conférences, où le pourcentage de demandes approuvées est généralement de 20%.
Les 10 lauréats et leurs recherches sont publiés sur
Facebook Research . Les lauréats étaient des chercheurs renommés dans leurs domaines, issus d'universités prestigieuses: Carnegie Mellon University, University College London, University of California at Berkeley et Humboldt University of Berlin.
Plans supplémentaires
La récupération automatisée des erreurs est encore un domaine récent, et il y a beaucoup de choses sur lesquelles travailler. Nous avons besoin d'une méthode qui puisse corriger plus d'erreurs avec plus de précision et de rapidité, et je prévois de travailler dans cette direction. À l'avenir, j'aimerais que l'intelligence artificielle puisse non seulement corriger les erreurs, mais aussi aider les développeurs tout au long du processus.
Comme de nombreuses autres études universitaires, les projets dans le domaine de l'élimination automatique des erreurs techniques ne peuvent être résolus par une seule étude. De nombreuses dimensions doivent être prises en compte pour que l'idée devienne pratique. Comme je l'ai dit, je me concentre sur la vitesse d'élimination des erreurs techniques, mais la vitesse n'est qu'une dimension pour résoudre un problème. D'autres mesures incluent le taux de réussite de la reconnaissance des erreurs, la précision du dépannage, etc. En science et technologie, l'amélioration d'une dimension aide au développement d'une autre, et c'est ce que je prévois de faire à l'avenir - continuer à repousser les limites de la résolution automatique des problèmes techniques dans différentes dimensions.
Quant à l'applicabilité d'une telle technique, je l'ai précédemment utilisée dans la formation automatique de feedback pour des programmes écrits par des étudiants. Ce soi-disant système de tutorat intelligent est l'un des domaines où les résultats de la recherche peuvent être appliqués.