Dynamic program analysis for suggesting test improvements to developers (Analyse dynamique du programme pour suggérer des améliorations de test aux développeurs) Vera Pérez, Oscar Luis - (2019-12-17) / Universite de Rennes 1 Dynamic program analysis for suggesting test improvements to developers
| |||
Langue : Anglais Directeur(s) de thèse: Baudry, Benoit Discipline : Informatique Laboratoire : INRIA-RENNES Ecole Doctorale : MATHSTIC Classification : Informatique Mots-clés : Test de logiciels, analyse de programmes, transformations extrêmes, amélioration de tests, développeurs de logiciels
| |||
Résumé : Les tests automatisés sont au cœur du développement de logiciels modernes. Pourtant, les développeurs éprouvent des difficultés lorsqu'il s'agit d'évaluer la qualité de leurs scénarios de test et de trouver des moyens de les améliorer. Le but principal de cette thèse est précisément de générer des suggestions concrètes que les développeurs peuvent suivre pour améliorer leurs suites de tests. Nous proposons l'utilisation de mutations extrêmes ou de transformations extrêmes comme alternative pour découvrir les problèmes de test. Les transformations extrêmes sont une forme de test par mutation qui supprime toute la logique d'une méthode au lieu d'effectuer un petit changement syntaxique dans le code. Comme son homologue traditionnel, elle challenge la suite de tests avec une variante du programme pour voir si les cas de tests peuvent détecter le changement. Dans cette thèse, nous évaluons la pertinence des problèmes de test que les transformations extrêmes peuvent mettre en évidence. Nous proposons également une analyse dynamique de infection-propagation pour dériver automatiquement des suggestions concrètes d'amélioration des tests à partir de transformations extrêmes non détectées. Nos résultats sont validés par les échanges avec les développeurs. Nous faisons également état de l'adoption industrielle de certaines parties de nos résultats. Abstract : Automated testing is at the core of modern software development. Yet developers struggle when it comes to the evaluation of the quality of their test cases and how to improve them. The main goal of this thesis is precisely that, to generate concrete suggestion that developers can follow to improve their test suite. We propose the use of extreme mutation, or extreme transformations as an alternative to discover testing issues. Extreme transformations are a form of mutation testing that remove the entire logic of a method instead of making a small syntactic change in the code. As it traditional counterpart it challenges the test suite with a transformed variant of the program to see if the test cases can detect the change. In this thesis we assess the relevance of the testing issues that extreme transformations can spot. We also propose a dynamic infection-propagation analysis to automatically derive concrete test improvement suggestions from undetected extreme transformations. Our results are validated through the interaction with actual developers. We also report the industrial adoption of parts of our results. developers to improve their tests by detecting more of these transformations. Our results are validated through the interaction with actual developers. |