Evaluating Developer-written Unit Test Case Reduction for Java -- A Replication Study
Tuan D Le, Brandon Wilber, Arpit Christi

TL;DR
This study replicates previous research on Java unit test case reduction, confirming that leaf nodes are removed more frequently, but finds inconclusive evidence about the removal probability of non-leaf nodes, using a different tool and dataset.
Contribution
It provides a replication of prior findings on test reduction in Java, validating some results and challenging others with new tools and data.
Findings
Leaf nodes are removed in large numbers during test reduction.
Replication confirms the original claim about leaf node removal.
Inconclusive evidence regarding higher removal probability for non-leaf nodes.
Abstract
Abstract: Failing test case reduction can promote efficient debugging because a developer may not need to observe components that are not relevant to inducing failure. Failing test case reduction can also improve the efficiency of fault localization. These considerations have prompted researchers to study the reduction process, the reduction output, and the removed entities. Christi et al. studied test reduction using a tool called ReduSharptor for C# tests. They considered the test to be an Abstract Syntax Tree (AST). Based on that, they studied the reduction outcome and removed entities in terms of Leaf nodes and Non-Leaf nodes of the AST. They claimed that (1) leaf nodes are removed in large numbers, and (2) the probability of removal is slightly higher than non-leaf nodes. We replicate their results using a different test case reduction tool, ReduJavator, for Java unit tests. We…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware System Performance and Reliability · Software Testing and Debugging Techniques · Advanced Software Engineering Methodologies
