[论文解读] Human-in-the-Loop Fault Localisation Using Efficient Test Prioritisation of Generated Tests.
QFiD 是一种人机协同的故障定位技术,通过使用结果感知的度量方法对生成的测试用例进行优先级排序,仅需极少的人工投入即可显著提升定位准确率。在仅进行十次人工标注后,QFiD 在排名首位的故障定位准确率达到 27%,在前十名内的准确率达到 66%,分别比仅使用初始测试用例的方法提高了 13 倍和 2 倍。
Many existing fault localisation techniques become less effective or even inapplicable when not adequately supported by a rich test suite. To overcome this challenge, we present a human-in-the-loop fault localisation technique, QFiD, that works with only a small number of initial failing test cases. We augment the failing test cases with automatically generated test data and elicit oracles from a human developer to label the test cases. A new result-aware test prioritisation metric allows us to significantly reduce the labelling effort by prioritising the test cases to achieve maximum localisation accuracy. An evaluation with EvoSuite and our test prioritisation metric shows that QFiD can significantly increase the localisation accuracy. After only ten human labellings, QFiD can localise 27% and 66% of real-world faults in Defects4J at the top and within the top ten, respectively. This is a 13 and 2 times higher performance than when using the initial test cases. QFiD is also resilient to human errors, retaining 80% of its acc@1 performance on average when we introduce a 30% error rate to the simulated human oracle.
研究动机与目标
- 解决现有故障定位技术依赖庞大且丰富的测试套件才能有效的问题。
- 仅需少量初始失败测试用例即可实现有效的故障定位。
- 通过智能地优先处理需要人工标注的测试用例,减少人工标注的工作量。
- 在测试覆盖有限且可能存在人工错误的现实系统中,提升故障定位的准确率。
提出的方法
- 使用 EvoSuite 自动生成测试数据,扩充初始的失败测试用例。
- 从开发人员处获取人工标注的断言(oracle),将测试用例标记为通过或失败,重点关注优先级较高的用例。
- 提出一种结果感知的测试用例优先级排序度量方法,根据其对故障定位准确率的预期贡献对测试用例进行排序。
- 迭代应用该优先级度量方法,选择最具信息量的测试用例供人工标注。
- 利用已标注的测试用例,通过统计分析方法优化故障定位结果。
- 通过模拟人工错误率来评估该方法的鲁棒性与抗干扰能力。
实验结果
研究问题
- RQ1人机协同方法是否能在仅投入极少人工标注的情况下显著提升故障定位准确率?
- RQ2结果感知的测试用例优先级排序在减少所需人工断言标注数量方面有多高效?
- RQ3在存在现实人工错误的情况下,QFiD 的性能能保持多大程度的稳定性?
- RQ4与仅使用初始失败测试用例的基线方法相比,QFiD 的性能表现如何?
- RQ5QFiD 是否能有效扩展至 Defects4J 等工业系统中的真实世界软件故障?
主要发现
- 在仅进行十次人工标注后,QFiD 在 Defects4J 中将 27% 的真实世界故障定位在排名首位,相比仅使用初始失败测试用例的方法提升了 13 倍。
- 在十次标注后,QFiD 在前十名内实现 66% 的故障定位准确率,相比基线方法提升了 2 倍。
- 该技术对人工错误具有强鲁棒性,在模拟 30% 的断言标注错误率下,平均仍能保持 80% 的 acc@1 性能。
- 结果感知的测试用例优先级排序度量方法能有效减少所需的人工标注数量,聚焦于最具信息量的测试用例。
- QFiD 显著优于仅依赖初始失败测试用例的基线方法,尤其在测试套件规模较小的场景下优势明显。
- 该方法在现实世界软件维护中展现出极强的实用性,尤其适用于测试套件有限且人工投入成本高昂的场景。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。