@inproceedings{2c8512c831254fffa11b3218c81eb9e8,
title = "Will my tests tell me if I break this code?",
abstract = "Automated tests play an important role in software evolution because they can rapidly detect faults introduced during changes. In practice, code-coverage metrics are often used as criteria to evaluate the effectiveness of test suites with focus on regression faults. However, code coverage only expresses which portion of a system has been executed by tests, but not how effective the tests actually are in detecting regression faults. Our goal was to evaluate the validity of code coverage as a measure for test effectiveness. To do so, we conducted an empirical study in which we applied an extreme mutation testing approach to analyze the tests of open-source projects written in Java. We assessed the ratio of pseudotested methods (those tested in a way such that faults would not be detected) to all covered methods and judged their impact on the software project. The results show that the ratio of pseudo-tested methods is acceptable for unit tests but not for system tests (that execute large portions of the whole system). Therefore, we conclude that the coverage metric is only a valid effectiveness indicator for unit tests.",
keywords = "Code coverage, Mutation testing, Regression testing, Test suite effectiveness",
author = "Rainer Niedermayr and Elmar Juergens and Stefan Wagner",
note = "Publisher Copyright: {\textcopyright} 2016 Copyright held by the owner/author(s).; 1st International Workshop on Continuous Software Evolution and Delivery, CSED 2016 ; Conference date: 17-05-2016",
year = "2016",
month = may,
day = "14",
doi = "10.1145/2896941.2896944",
language = "English",
series = "Proceedings - International Workshop on Continuous Software Evolution and Delivery, CSED 2016",
publisher = "Association for Computing Machinery, Inc",
pages = "23--29",
booktitle = "Proceedings - International Workshop on Continuous Software Evolution and Delivery, CSED 2016",
}