机构地区:[1]中国矿业大学计算机科学与技术学院矿山数字化教育部工程研究中心,江苏徐州221116 [2]南京大学计算机软件新技术国家重点实验室,南京210023 [3]南通大学计算科学与技术学院,江苏南通226019 [4]桂林电子科技大学广西可信软件重点实验室,广西桂林541004
出 处:《计算机学报》2020年第2期206-232,共27页Chinese Journal of Computers
基 金:国家自然科学基金(61673384,61832009,61772260,61502497,61562015);江苏省博士后科研资助计划(2018K028C);计算机软件新技术国家重点实验室创新项目(ZZKT2018B02);广西可信软件重点实验室研究课题(kx201609,kx201532)支持.
摘 要:缺陷间的相互干扰会使程序的频谱信息和运行结果发生变化,进而影响基于频谱信息的缺陷定位方法(SBFL)的有效性.本文对缺陷干扰现象进行了研究,通过分析单缺陷程序与多缺陷程序在缺陷运行、感染和传播过程及程序运行结果间的差异定义了两类缺陷干扰,并根据干扰前后缺陷在互斥子集中的分布变化分析了缺陷干扰对SBFL方法有效性的影响.研究结果表明:与特定缺陷无关的失败测试用例是降低SBFL方法缺陷定位有效性的主要原因.在此基础上,本文提出了一种基于模糊C均值聚类的多缺陷定位方法FCMFL:首先,通过模糊C均值聚类分析失败测试用例与不同缺陷间的隶属关系,得到每个缺陷相关的失败测试信息;其次,基于隶属度矩阵加权计算每条语句的可疑度,并通过互斥子集优先级分析确定不同语句集合的检查顺序,最终生成一个语句检查序列指导开发人员进行程序调试.实验结果表明:(1)缺陷干扰会对SBFL方法产生影响,降低SBFL方法的缺陷定位有效性;(2)FCMFL方法可以降低多缺陷对SBFL方法的影响,提高SBFL方法的缺陷定位有效性.Debugging is a notoriously tedious,time-consuming,but an essential interactive process in software development and maintenance.When a program fails,developers first determine the regions that are likely to contain faults and then conduct a more serious examination in these regions to locate and fix the fault.It is not always easy to get suspicious areas in a short time,and the quality of the suspicious areas depends on many factors,such as the complexity of the fault and the developer’s experience.Spectrum-Based Fault Localization(SBFL)provides a representative technique of narrowing down the possible scope of fault.Generally,a spectrum is composed of coverage information and executing results.Based on a given risk evaluation metric and the collected spectrum information,it can automatically compute the likelihood of containing a fault(i.e.,suspiciousness)for each statement.Therefore,developers can examine the statements in order of descending suspiciousness to reduce the debugging effort.Given a faulty program that contains only one fault,executing the fault is a necessary,but not a sufficient,condition for program failure,indicating that all failed executions must execute the fault,and the statements observed in all failed executions should be assigned with the highest suspiciousness.However,when the faulty program contains multiple faults,executing one fault is neither a necessary nor sufficient condition for program failure.For a multi-fault program,interferences among the faults may change the spectrum information as well as the executing results,and thus influence the effectiveness of SBFL.This paper investigates fault interference,which is defined by the comparison between the executing processes(i.e.,execution,infection,propagation,result)of the single-fault program and the ones of multi-fault program.To accurately describe the execution condition and the infection & propagation condition for each fault in a multi-fault program,we propose the E-IP model(Execution-Infection Propagation)and use it to dete
关 键 词:程序调试 缺陷定位 程序切片 缺陷干扰 模糊聚类
分 类 号:TP311[自动化与计算机技术—计算机软件与理论]
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...