TY - GEN
T1 - Ctest4J
T2 - 32nd ACM International Conference on the Foundations of Software Engineering, FSE Companion
AU - Wang, Shuai
AU - Lian, Xinyu
AU - Li, Qingyu
AU - Marinov, Darko
AU - Xu, Tianyin
N1 - Publisher Copyright:
© 2024 Copyright held by the owner/author(s).
PY - 2024/7/10
Y1 - 2024/7/10
N2 - We present Ctest4J, a practical configuration testing framework for Java projects. Configuration testing is a recently proposed approach for finding both misconfigurations and code bugs. Ctest4J addresses the limitations of configuration testing scripts from prior work, including lack of parallel test execution, poor maintainability due to external dependencies, limited integration with modern build systems, and the need for manual instrumentation of configuration API. Ctest4J is a unified framework to write, maintain, and execute configuration tests (Ctests) and integrates with multiple testing frameworks (JUnit4, JUnit5, and TestNG) and build systems (Maven and Gradle). With Ctest4J, Ctests can be maintained similarly to regular unit tests. Ctest4J also provides a utility for automated code instrumentation for common configuration API. We evaluate Ctest4J on 12 open-source projects. We show that Ctest4J effectively enables configuration testing for these projects and speeds up Ctest execution by 3.4X compared to prior scripts. Ctest4J can be found at https://github.com/xlab-uiuc/ctest4j.
AB - We present Ctest4J, a practical configuration testing framework for Java projects. Configuration testing is a recently proposed approach for finding both misconfigurations and code bugs. Ctest4J addresses the limitations of configuration testing scripts from prior work, including lack of parallel test execution, poor maintainability due to external dependencies, limited integration with modern build systems, and the need for manual instrumentation of configuration API. Ctest4J is a unified framework to write, maintain, and execute configuration tests (Ctests) and integrates with multiple testing frameworks (JUnit4, JUnit5, and TestNG) and build systems (Maven and Gradle). With Ctest4J, Ctests can be maintained similarly to regular unit tests. Ctest4J also provides a utility for automated code instrumentation for common configuration API. We evaluate Ctest4J on 12 open-source projects. We show that Ctest4J effectively enables configuration testing for these projects and speeds up Ctest execution by 3.4X compared to prior scripts. Ctest4J can be found at https://github.com/xlab-uiuc/ctest4j.
KW - Configuration testing
KW - Software reliability
KW - Software testing
UR - http://www.scopus.com/inward/record.url?scp=85199116358&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85199116358&partnerID=8YFLogxK
U2 - 10.1145/3663529.3663799
DO - 10.1145/3663529.3663799
M3 - Conference contribution
AN - SCOPUS:85199116358
T3 - FSE Companion - Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering
SP - 562
EP - 566
BT - FSE Companion - Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering
A2 - d�Amorim, Marcelo
PB - Association for Computing Machinery
Y2 - 15 July 2024 through 19 July 2024
ER -