ReduJavator: A Tool to Simplify Developer-Written Java Unit Tests

A failing test is used by developers to debug the program to fix the bug. Failing test may contain components irrelevant to the bug. Test reduction reduces a failing test while keeping the failure inducing component. The reduced test helps developer to quickly locate the bug. Test reduction techniqu...

Full description

Saved in:
Bibliographic Details
Published inProceedings of ... International Conference on Data and Software Engineering (ICoDSE) (Online) pp. 199 - 204
Main Authors Wilber, Brandon, Le, Tuan D, Christi, Arpit
Format Conference Proceeding
LanguageEnglish
Published IEEE 30.10.2024
Subjects
Online AccessGet full text
ISSN2640-0227
DOI10.1109/ICoDSE63307.2024.10829914

Cover

Loading…
More Information
Summary:A failing test is used by developers to debug the program to fix the bug. Failing test may contain components irrelevant to the bug. Test reduction reduces a failing test while keeping the failure inducing component. The reduced test helps developer to quickly locate the bug. Test reduction techniques like Delta Debugging or Hierarchical Delta Debugging and its variants treat test as a series of input or a tree. Most current techniques and tools are implemented considering a generic tree for different test input types. If we focus on a test written in a particular programming language, we can exploit the structure of the Abstract Syntax Tree (AST) for the test, different statement types, their interdependence and etc. We propose a new tool ReduJavator to reduce Java unit tests while leveraging the AST and its components generated using JavaParser. We also demonstrate that ReduJavator is highly applicable and accurate. For 30 real-world bugs taken from defects4j bug database, it has 94.29% precision and 100% recall. For 30 artificially injected bugs for open source projects, it has 93.85% precision and 90.67% recall.
ISSN:2640-0227
DOI:10.1109/ICoDSE63307.2024.10829914