On the use of mutations and testing for debugging

Mihai Nica, Simona Alina Nica, Franz Wotawa*

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

Abstract

Tools for automated fault localization usually generate too many bug candidates depending on the underlying technique. Hence, more information is required in order to further restrict the number of bug candidates. Approaches that rely on specific knowledge of the program to be debugged, such as variable values at specific positions in the source code, are not easily accessible for users especially in the case of software maintenance. In order to avoid this problem, we suggest integrating testing to restrict the number of bug candidates. In particular, we propose computing possible corrections of the program and from this distinguishing test cases. A distinguishing test case is a test that reveals different output values for two program variants given the same input values. Besides the formal definitions and algorithms, we extend the first empirical results of our approach in this paper. The obtained empirical results show that the use of mutations and distinguishing test cases reduces the number of bug candidates by more than 90% on average
Original languageEnglish
Pages (from-to)1121–1142
JournalSoftware: Practice and Experience
Volume43
Issue number9
DOIs
Publication statusPublished - 2013

Fields of Expertise

  • Information, Communication & Computing

Treatment code (Nähere Zuordnung)

  • Basic - Fundamental (Grundlagenforschung)

Fingerprint

Dive into the research topics of 'On the use of mutations and testing for debugging'. Together they form a unique fingerprint.

Cite this