z-logo
Premium
On the use of mutations and testing for debugging
Author(s) -
Nica Mihai,
Nica Simona,
Wotawa Franz
Publication year - 2013
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/spe.1142
Subject(s) - debugging , computer science , test case , software bug , code coverage , variable (mathematics) , code (set theory) , software , programming language , software testing , order (exchange) , test (biology) , data mining , theoretical computer science , machine learning , mathematics , set (abstract data type) , mathematical analysis , paleontology , regression analysis , finance , economics , biology
SUMMARY 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. Copyright © 2012 John Wiley & Sons, Ltd.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here