Defects4J has enabled numerous software testing and debugging research work since its introduction. A large part of its contribution, and the resulting popularity, lies in the clear separation and distillation of the root cause of each individual test failure based on careful manual analysis, which in turn allowed researchers to easily study individual faults in isolation. However, in a realistic debugging scenario, multiple faults can coexist and affect test results collectively. Study of automated debugging techniques for these situations, such as failure clustering or fault localisation for multiple faults, would significantly benefit from a reliable benchmark of multiple, coexisting faults. We search for versions of Defects4J subjects that contain multiple faults, by iteratively transplanting fault-revealing test cases across Defects4J versions. Out of 326 studied versions of Defects4J subjects, we report that over 95% (311 versions) actually contain from two to 24 faults. We hope that the extended, multi-fault Defects4J can provide a platform for future research of testing and debugging techniques for multi-fault programs.
翻译:自推出以来,Deffects4J使许多软件测试和调试研究工作得以进行。其贡献及其带来的普及程度在很大程度上在于根据仔细的人工分析,将每个测试失败的根源明确分离和蒸馏出来,这反过来使研究人员能够方便地孤立地研究个别缺陷。然而,在现实的解试假设中,多重缺陷可以共存,并共同影响测试结果。针对这些情况的自动调试技术,如多个缺陷的故障群集或错位化,将极大地受益于多重并存缺陷的可靠基准。我们通过迭接式移植Defects4J版本的错漏测试案例,搜索含有多重缺陷的Defects4J主体。在326个研究过的Defects4J主体中,我们报告说95%以上(311个版本)实际上包含2至24个缺陷。我们希望,扩展的、多断层缺陷4J能够提供一个平台,用于未来多错程序测试和调试技术的研究。