A weighted fuzzy classification approach to identify and manipulate coincidental correct test cases for fault localization

A weighted fuzzy classification approach to identify and manipulate coincidental correct test cases for fault localization
复制标题

一种加权模糊分类方法,用于识别和操纵同时正确的测试用例以进行故障定位

DOI:
10.1016/j.jss.2019.01.056
复制
发表时间:
2019
影响因子:
3.5
通讯作者:
Li Zheng
Li Zheng
中科院分区:
计算机科学2区
文献类型:
--
作者:
Liu Yong;Li Meiying;Wu Yonghao;Li Zheng

文献摘要

被引文献

相似文献

有效、准确地识别故障位置在软件工程的调试过程中非常重要。基于覆盖的故障定位(CBFL)已被广泛研究,它可以减轻开发人员利用测试用例的执行信息查找故障位置的工作量。巧合正确(CC)测试用例是执行错误语句但输出正确的特定测试用例,这已被证明对 CBFL 的准确性产生负面影响。在本文中,我们提出了一种加权模糊分类方法来识别 CC 测试用例,并提出了三种模糊策略来操纵 CBFL 的 CC 测试用例。首先,我们提出了一种简单但有效的方法来识别单个故障程序的一些 CC 测试用例,该方法提供了标记样本,使得能够应用监督分类算法进行 CC 识别。然后,提出了一种模糊加权 K 最近邻 (FW-KNN) 算法来对通过的测试用例中的潜在 CC 进行分类,其中提出了“加权”相似性度量和“加权”CC 概率计算。最后,提出了三种模糊 CC 测试用例操纵策略来减轻 CBFL 中 CC 测试用例的影响。对 12 个程序的 190 个错误版本进行了各种实证研究,通过比较 FW-KNN 与三种流行的聚类和分类技术的有效性和效率,研究“加权”和“模糊”方法对 CC 识别的影响。结果表明,所提出的 FW-KNN 具有更高的精度和更低的时间成本。 FW-KNN的准确率、召回率和假阳性率分别为96.47%、83.40%和2.85%。此外,利用代码块覆盖,与语句覆盖相比,时间成本平均可以降低72.97%。实验结果还表明,所提出的 CC 测试用例操作策略可以提高 CBFL 的故障定位精度。
Identifying the location of faults effectively and accurately is highly important in the debugging process of software engineering. Coverage-based Fault Localization (CBFL) has been widely studied that can alleviate the effort of developers to find the faults position using the execution information of test cases. Coincidental Correct (CC) test cases are the specific test cases that execute the faulty statements but with a correct output, which have been illustrated with a negative effect on the accuracy of CBFL. In this paper, we propose a weighted fuzzy classification approach to identify CC test cases and three fuzzy strategies are suggested to manipulate CC test cases for CBFL. Firstly, we present a simple but efficient approach to identify some CC test cases for single fault programs, which provide labeled samples that enable the application of supervised classification algorithms for CC identification. Then, a Fuzzy Weighted K-Nearest Neighbor (FW-KNN) algorithm is proposed to classify potential CC from the passed test cases, in which a ‘weighted’ similarity measure and a “weighted” CC probability computation are presented. Finally, three fuzzy CC test cases manipulation strategies are presented to mitigate the impact of CC test cases in CBFL. Various empirical studies are conducted on 190 faulty versions of 12 programs to investigate the impact of “weighted” and “fuzzy” methods for CC identification by the comparison of the effectiveness and efficiency between FW-KNN and three popular cluster and classification techniques. The results indicate that the proposed FW-KNN has higher accuracy and lower time cost. ThePrecision, RecallandFalsePositiveRateof FW-KNN is 96.47%, 83.40% and 2.85%, respectively. Besides, by utilizing code block coverage, the time cost can be reduced by 72.97% in average compared to statement coverage. The experimental results also indicate that the fault localization accuracy of CBFL can be improved by the proposed CC test cases manipulation strategies.