Testing is well understood to be an effective means of reducing bugs in software. But how does one prevent bugs in tests? A buggy test could lull a developer into a believing that a piece of code is correct, when it is not. To help address such problems, we introduce Necessist, a tool for finding unnecessary statements and method calls in tests. Necessist works by removing such constructs individually from a test, and then seeing whether the test passes. A test that does could contain a bug, e.g., because of an incorrect assumption held by the test’s author. We give examples of new bugs found using this method. We also show that Necessist could have revealed past bugs in the Go standard library, demonstrating that Necessist is an effective tool for finding bugs in tests.
Tue 28 MayDisplayed time zone: Eastern Time (US & Canada) change
14:00 - 15:30 | |||
14:00 30mTalk | Test Harness Mutilation Mutation Samuel Moelius Trail of Bits | ||
14:30 30mTalk | An Empirical Evaluation of Manually Created Equivalent Mutants Mutation Philipp Straubinger University of Passau, Alexander Degenhart University of Passau, Gordon Fraser University of Passau Pre-print | ||
15:00 30mTalk | A Study of Flaky Failure De-Duplication to Identify Unreliably Killed Mutants Mutation Abdulrahman Alshammari George Mason University, Paul Ammann George Mason University, USA, Michael Hilton Carnegie Mellon University, Jonathan Bell Northeastern University |