Génération aléatoire de programmes guidée par la vivacité
Abstract
Les programmes générés aléatoirement sont un bon moyen de tester des compilateurs et des outils d'analyse de logiciel. Des centaines de bogues ont été trouvés dans des com-pilateurs C très utilisés (GCC, Clang) par des tests aléatoires. Pourtant, les générateurs existants peuvent générer beaucoup de code mort (dont les résultats ne sont jamais uti-lisés). Compiler un tel programme laisse relativement peu de possibilités d'exercer les optimisations complexes du compilateur. Pour résoudre ce problème, nous proposons la génération aléatoire de programmes guidée par la vivacité. Dans cette approche, le programme aléatoire est construit bottom-up, en combinaison avec une analyse de ot de données structurelle pour assurer que le système ne génère jamais de code mort. L'algorithme est implémenté dans un greon pour l'outil Frama-C. Nous l'évaluons en comparaison avec Csmith, le générateur aléatoire standard pour le langage C. Les programmes générés par notre outil compilent vers une plus grande quantité de code machine, avec une plus grande variété d'instructions. Ce papier est une version courte d'un article présenté à LOPSTR 2017.
Origin | Files produced by the author(s) |
---|
Loading...