Test cases play an important role in testing and debugging software. Smaller tests are easier to understand and use for these tasks. Given a test that demonstrates a bug, test case reduction finds a smaller variant of the test case that exhibits the same bug. Classically, one of the challenges for test case reduction is that the process is slow, often taking hours. For hierarchically structured inputs like source code, the state of the art is Perses, a recent grammar aware and queue driven approach for test case reduction. Perses traverses nodes in the abstract syntax tree (AST) of a program (test case) based on a priority order and tries to reduce them while preserving syntactic validity. In this paper, we show that Perses’ reduction strategy suffers from priority inversion, where significant time may be spent trying to perform reduction operations on lower priority portions of the AST. We show that this adversely affects the reduction speed. We propose Pardis, a technique for priority aware test case reduction that avoids priority inversion. We implemented Pardis and evaluated it on the same set of benchmarks used in the Perses evaluation. Our results indicate that compared to Perses, Pardis is able to reduce test cases 1.3x to 7.8x faster and with 46% to 80% fewer tests.
Thu 11 AprDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
16:30 - 18:00 | |||
16:30 30mTalk | CoVeriTest: Cooperative, Verifier-Based Testing FASE Link to publication | ||
17:00 30mTalk | Pardis: Priority Aware Test Case Reduction FASE Link to publication | ||
17:30 30mTalk | Automatically Identifying Sufficient Object Builders from Module APIs FASE Pablo Ponzio Dept. of Computer Science FCEFQyN, University of Rio Cuarto, Valeria Bengolea Dept. of Computer Science FCEFQyN, University of Rio Cuarto, Mariano Politano , Nazareno Aguirre Dept. of Computer Science FCEFQyN, University of Rio Cuarto, Marcelo F. Frias Dept. of Software Engineering Instituto Tecnológico de Buenos Aires Link to publication |