HyperPUT: Generating Synthetic Faulty Programs to Challenge Bug-Finding Tools

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Felici, Riccardo, Pozzi, Laura, Furia, Carlo A.
Format: Preprint
Publié: 2022
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866913525727756288
author Felici, Riccardo
Pozzi, Laura
Furia, Carlo A.
author_facet Felici, Riccardo
Pozzi, Laura
Furia, Carlo A.
contents As research in automatically detecting bugs grows and produces new techniques, having suitable collections of programs with known bugs becomes crucial to reliably and meaningfully compare the effectiveness of these techniques. Most of the existing approaches rely on benchmarks collecting manually curated real-world bugs, or synthetic bugs seeded into real-world programs. Using real-world programs entails that extending the existing benchmarks or creating new ones remains a complex time-consuming task. In this paper, we propose a complementary approach that automatically generates programs with seeded bugs. Our technique, called HyperPUT, builds C programs from a "seed" bug by incrementally applying program transformations (introducing programming constructs such as conditionals, loops, etc.) until a program of the desired size is generated. In our experimental evaluation, we demonstrate how HyperPUT can generate buggy programs that can challenge in different ways the capabilities of modern bug-finding tools, and some of whose characteristics are comparable to those of bugs in existing benchmarks. These results suggest that HyperPUT can be a useful tool to support further research in bug-finding techniques -- in particular their empirical evaluation.
format Preprint
id arxiv_https___arxiv_org_abs_2209_06615
institution arXiv
publishDate 2022
record_format arxiv
spellingShingle HyperPUT: Generating Synthetic Faulty Programs to Challenge Bug-Finding Tools
Felici, Riccardo
Pozzi, Laura
Furia, Carlo A.
Software Engineering
Cryptography and Security
As research in automatically detecting bugs grows and produces new techniques, having suitable collections of programs with known bugs becomes crucial to reliably and meaningfully compare the effectiveness of these techniques. Most of the existing approaches rely on benchmarks collecting manually curated real-world bugs, or synthetic bugs seeded into real-world programs. Using real-world programs entails that extending the existing benchmarks or creating new ones remains a complex time-consuming task. In this paper, we propose a complementary approach that automatically generates programs with seeded bugs. Our technique, called HyperPUT, builds C programs from a "seed" bug by incrementally applying program transformations (introducing programming constructs such as conditionals, loops, etc.) until a program of the desired size is generated. In our experimental evaluation, we demonstrate how HyperPUT can generate buggy programs that can challenge in different ways the capabilities of modern bug-finding tools, and some of whose characteristics are comparable to those of bugs in existing benchmarks. These results suggest that HyperPUT can be a useful tool to support further research in bug-finding techniques -- in particular their empirical evaluation.
title HyperPUT: Generating Synthetic Faulty Programs to Challenge Bug-Finding Tools
topic Software Engineering
Cryptography and Security
url https://arxiv.org/abs/2209.06615