首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 78 毫秒
1.
2.
一种基于遗传算法的多缺陷定位方法   总被引:1,自引:0,他引:1  
王赞  樊向宇  邹雨果  陈翔 《软件学报》2016,27(4):879-900
基于程序频谱的缺陷定位方法可以有效地辅助开发人员定位软件内部缺陷,但大部分已有自动化方法在解决多缺陷定位问题时表现不佳,部分效果尚可的方法因复杂度较高或需要开发人员较多交互而仍需进一步改善.为改善上述问题,提出一种基于遗传算法的多缺陷定位方法 GAMFal,具体来说:首先基于搜索的软件工程思想对多缺陷定位问题进行建模,构建了候选缺陷分布的染色体编码方式,并基于扩展的Ochiai系数计算个体的适应度值;随后使用遗传算法在解空间中搜索具有最高适应度值的候选缺陷分布,在终止条件被满足后返回最优解种群;最后根据这个种群对程序实体进行排序.这样开发人员可以依次对程序实体进行检查并最终确定多个缺陷的具体位置.实证研究以Siemens套件中的7个程序和Linux的3个程序(gzip、grep和sed)作为评测对象,并扩展传统的定位方法评测标准EXAM至EXAMF和EXAML,通过与其他经典的缺陷定位方法(Tarantula、Improved Tarantula及Ochiai)进行对比,并通过Friedman检测和最小显著性差异测试可得,提出的GAMFal方法在整体定位效率方面优于传统方法,且需要更少的人工交互.除此之外,GAMFal的执行时间也在可接受的范围之内.  相似文献   

3.
一种基于Kolmogorov-Smirnov检验的缺陷定位方法   总被引:1,自引:0,他引:1  
现有的基于中心极限定理和参数假设检验的方法被认为是一种高效的缺陷定位技术.然而,实验结果表明,在某些实验数据集上,测试用例的总数过小而不宜运用中心极限定理.实验结果同时表明,谓词的实际分布背离了基于参数假设检验的方法所假设的正态分布.基于以上发现,提出了一种基于Kolmogorov-Smirnov检验的缺陷定位方法.在西门子测试集和大型程序上的实验结果表明:该方法在小样本和非正态分布的样本集上具有较好的适用性.若谓词在某个测试用例执行时未被执行,已有的方法将该执行中此谓词的评估偏差值设为0.5.在西门子程序集上调查了该设置的有效性,实验结果表明:对于基于Kolmogorov-Smirnov检验的缺陷定位方法,该设置可以提高缺陷定位的效率.  相似文献   

4.
缺陷定位是软件缺陷修复的关键步骤。随着计算机软件的日趋复杂和网络的迅速发展,如何快速高效的定位缺陷相关代码成为了一个急待解决的问题。在研究现有基于信息检索技术的缺陷定位方法的基础上,综合考虑缺陷修复历史信息,提出了基于缺陷修复历史的两阶段缺陷定位方法。该方法不再单一依赖文本相似度,从缺陷修复的局部性现象入手,更多的考虑了缺陷修复的历史记录、变更信息及代码特征等因素,结合信息检索和缺陷预测方法来提高缺陷定位的精度。最后本文以两个开源项目为例,验证了方法的可行性和有效性。  相似文献   

5.
基于程序频谱的动态缺陷定位(spectrum based dynamic fault localization,简称SFL)可分为基于可执行语句覆盖的方法和基于谓词覆盖的方法。通过分析以上两类方法可以发现:(1) 基于可执行语句覆盖的方法未考虑谓词错误和执行结果之间的关联。(2)基于谓词覆盖的方法只针对谓词进行插桩,最后只计算谓词的可疑度并对谓词进行排序。如果缺陷是非谓词,此类方法无法准确定位缺陷位置。(3) 忽略了基本块之间的关联和层次特性,将各个基本块看成相互独立的个体。为解决上述问题,首先,本文将谓词错误与执行结果之间的关联性这一有用信息加入到算法的设计中;其次,加入谓词分层覆盖与分析的思想,对覆盖矩阵中的基本块进行细分和分层;最后,将二者结合,提出一种基于谓词分层覆盖矩阵的缺陷定位方法,提出了谓词分层覆盖算法Phcm。本文将西门子程序集作为目标程序,通过与其他三种缺陷定位方法进行对比实验,验证了该方法在提高缺陷定位的精准度和减小代码检查率上的有效性。  相似文献   

6.
基于路径差异分析的缺陷定位所使用的方法通常分为两类:基于路径距离度量的方法和基于元素信息统计的方法。现有的研究方法各有所长但也存在以下缺陷:(1) 冗余路径的存在干扰可疑度分析结果或者导致早熟收敛,以致结果不准确;(2)基于路径距离度量的方法往往只返回执行差异信息,未考虑语句在不同状态下重要程度不同;(3) 基于元素信息统计的方法包含了大量对定位没有意义的谓词和语句,忽略了对这些无意义元素的耗时耗力的统计。由于缺乏必要的引导信息导致用来做差异分析的路径有效性较低,同时路径的元素集合较长而难以求解也降低了分析的精度,因此针对现存问题提出了分支路径聚类筛选的方法,同时给出路径分支踪迹模糊聚类算法Bpfc。通过实验结果以及与Tarantula等三种经典实验对比分析可以证实,该方法能提高缺陷定位的效率和精确度,同时应用范围广泛,对开发、测试人员有深远意义。  相似文献   

7.
缺陷定位是软件开发过程的重要环节。充分利用程序的结构特征和行为特征有助于提高缺陷定位效率。提出一种基于多变量Logistic回归分析的缺陷定位框架, 用于软件演化时对新版本程序进行类方法级别的缺陷定位。首先设计一组度量结构特征和行为特征的指标, 通过静态分析和测试程序搜集并构建旧版本程序的特征数据集, 同时从缺陷跟踪系统获取旧版本缺陷信息;其次, 基于所得特征数据集和缺陷信息, 应用单变量分析筛选出度量指标中与缺陷显著相关的指标, 随后用选中的显著指标展开多变量分析, 训练多变量Logistic模型;最后, 基于选出的显著指标搜集并构建新版本程序的特征数据集, 运用得到的Logistic模型预测每个类方法的出错概率, 进而按出错概率降序检查类方法以定位错误。基于一组开源程序进行缺陷定位实证研究,结果表明, 多变量Logistic模型可以提高缺陷定位的效率。关键词:  相似文献   

8.
陈理国  刘超 《软件学报》2014,25(6):1169-1179
在软件系统中,缺陷定位是缺陷修复的一个关键环节,如果能将缺陷自动定位到很小的范围,将会极大地降低缺陷修复的难度.基于高斯过程提出了一种缺陷定位方法(GPBL),即针对每个缺陷,向开发人员推荐这个缺陷可能存在于哪些源文件中,从而帮助开发人员快速修复缺陷.为了验证方法的有效性,采集了开源软件Eclipse 和Argouml 中的数据,实验结果表明,高斯过程缺陷定位的查全率和查准率平均分别为87.16%和78.90%.与基于LDA的缺陷定位方法进行比较,表明高斯过程更能准确定位缺陷的位置.  相似文献   

9.
在软件研制过程中,缺陷定位是一个重要的研究课题。但是,实际软件中的缺陷数量无法被预先判定,且已有的单缺陷定位方法不易使用,已有的多缺陷定位方法存在定位效率不高的问题。基于此,文中对多缺陷定位方法GAMFL进行了研究和改进,提出了基于频谱信息并结合碰集和遗传算法的缺陷定位方法GAHIT。该方法定义了定位基本块,并用其替代语句进行缺陷定位,缩小了搜索范围;在初始种群的构造过程中,提出了采用求解失败用例执行路径碰集的方法,优化了初始种群的生成,并给出了新的适应度函数的计算方法,提高了算法的整体执行效率;最后针对遗传算法的结果,给出了缺陷检查策略,提高了在最优种群中查找缺陷的准确性。实验结果表明,所提方法能够有效处理缺陷数量未知情况下的定位问题,在单缺陷和多缺陷程序中都有较好的定位效果。  相似文献   

10.
软件测试是生产可靠软件的重要保障,对测试所发现缺陷的解决可以分为缺陷定位和缺陷修改两个步骤[1],其中的缺陷定位是最耗时的.通常情况下,测试套件中成功执行的测试用例都占绝大多数,对基于程序频谱的缺陷定位方法,应该具备自主调节成功测试用例覆盖比重的能力,以提高方法的可用性.即,随着语句被成功测试用例覆盖的次数增多,该语句的覆盖次数对怀疑率的贡献度应逐渐减小,成功测试用例数的有效处理能提高缺陷定位方法的效果.基于此,本文提出EPStarEP*)缺陷定位方法,该方法可以有效调整成功执行用例数的影响,以避免成功用例数量对缺陷定位效果的过度影响,从而提高缺陷定位的准确性,通过实验对比,说明了EP*方法比现有的几种缺陷定位方法具有更高的缺陷定位精度.  相似文献   

11.
姜淑娟  张旭  王荣存  黄颖  张艳梅  薛猛 《软件学报》2021,32(7):2166-2182
软件错误定位是一项耗时又费力的工作,因此如何提高软件错误定位的自动化程度一直以来都是软件工程领域研究的热点.现有的基于频谱的错误定位方法很少利用程序的上下文信息,而程序的上下文信息对错误定位至关重要.针对这一问题,提出了一种基于路径分析和信息熵的错误定位方法FLPI.该方法在基于频谱信息技术的基础上,通过对所有执行路径...  相似文献   

12.
基于频谱的错误定位方法一般利用覆盖信息为每条语句度量出错的可能,即可疑度,通过逐条检查按可疑度值降序排列的语句序列来确定错误语句.针对已有的方法大多只考虑覆盖信息中语句执行信息的问题,分析了语句执行补集对错误定位的积极影响,进一步提出了在语句执行信息基础上结合语句执行补集的错误定位方法.实验结果表明,与其他方法相比,所...  相似文献   

13.
为TBFL(testing-based fault localization)方法和SAFL(similarity-aware fault localization)方法构造了熵模型,并用该模型对Dicing方法、TARANTULA方法、SAFL方法在一个实例上进行分析比较。结果表明,熵模型可以为构造以及分析TBFL方法和SAFL方法提供一个原则性框架。  相似文献   

14.
许多学者研究了运用测试集对程序错误语句定位的问题,并提出了许多行之有效的方法,这些方法统称为TBFL(testing based fault localization)方法。后来人们发现,测试集里如果出现冗余,则这些冗余测试用例会伤害这些定位方法的功效。为了解决这个问题,Hao等人提出了SAFL(similarity aware fault localization)方法。实际上完全避免冗余是不可能的,因此从另一个角度构造了一个新的TBFL方法,称为随机TBFL方法。该方法的基本思想是:测试前对程序的语句错误概率进行先验分布,并把测试集看成随机变量,用测试用例反映的程序语句有关信息对程序语句的概率作一些调整,调整后的概率称为后验校正概率,最后根据这个后验概率对错误语句进行定位。将传统的TB-FL方法如Dicing方法、TARANTULA方法、SAFL方法纳入随机信息分析并通过几个实例进行分析和比较,结果表明,随机TBFL方法不仅能够正确定位错误语句,而且冗余对该方法的功效伤害不大。  相似文献   

15.
软件故障定位技术进展   总被引:4,自引:0,他引:4  
故障定位是调试过程中一项耗时费力的工作。为了降低调试成本,并辅助开发人员定位和修复软件故障,软件故障定位技术通过审查源代码、分析测试过程的软件行为和测试结果来定位包含故障的代码片段。综述了近期故障定位领域相关成就,分类介绍了各种代表性的故障定位方法的基本原理和建模技术,讨论了这些故障定位技术的贡献以及它们之间的主要区别,给出了常用的故障定位效果基准测试集和度量方法,展望了故障定位技术的研究方向。  相似文献   

16.
微服务软件系统由于其具有大量复杂的服务依赖关系和组件化模块,一个服务发生故障往往造成与之相关的一个或多个服务发生故障,导致故障定位的难度不断提高.因此,如何有效检测系统故障,快速准确定位故障根因问题,是当前微服务领域研究的重点.现有研究一般通过分析故障对服务、指标的作用关系,构建故障关系模型,但存在运维数据利用不充分、故障信息建模不全面、根因定位粒度粗等问题.因此,本文提出了AmazeMap,该方法设计了多层次故障影响图建模方法以及基于多层次故障影响图的微服务故障定位方法.其中,多层次故障影响图建模方法通过挖掘系统运行时指标时序数据与链路数据,考虑不同层次间的相互关系,能够较全面地建模故障信息;基于多层次故障影响图的微服务故障定位方法通过缩小故障影响范围,从服务实例和指标两个方面发现根因,输出最有可能的故障根因节点和指标序列.本文基于开源基准微服务系统和AIOps挑战赛数据集,从有效性和效率两个方面设计了微服务软件故障定位实验,并与现有方法进行对比,实验结果验证了AmazeMap的有效性、准确性和效率.  相似文献   

17.
基于频谱的缺陷定位(spectrum-based fault localization, SBFL)通过分析测试用例的覆盖信息和执行结果信息进行快速定位,是目前最常用的缺陷定位技术。然而,该方法未能充分利用代码中隐含的语义和结构信息。若能将缺陷预测中使用到的代码结构信息和频谱信息融合使用,将有助于进一步提升缺陷定位的效果。为此,提出了一种融合代码静态特征和频谱的软件缺陷定位(fault localization combing static features and spectrums, FLFS)技术。首先,从Halstead等度量元集合中选取度量元指标并进行修改,以适用于度量代码的方法级特征;然后,根据选取的度量元指标提取程序中各个方法的静态特征并用于训练缺陷预测模型;最后,使用缺陷预测模型预测程序中各方法存在缺陷的预测可疑度,并与SBFL技术计算的频谱可疑度进行融合,以定位缺陷所在方法。为验证FLFS的有效性,将其与两种定位效果最好的SBFL技术DStar和Ochiai在Defects4J数据集上进行了对比实验。结果表明,FLFS具有更好的缺陷定位性能,对于Einspe...  相似文献   

18.
针对不完备信息系统,提出一种基于信息量属性约简的新方法.该方法对传统的容差关系计算方法进行了改进,并在此基础之上给出了一种新的求核属性的方法.通过判断可以直接得到核属性,这样在计算的过程中大大的降低了属性约简算法的时间复杂度.最后设计了一个新的基于不完备信息系统信息量属性约简算法,通过实例验证了该算法的正确性、高效性.  相似文献   

19.
张蓓  张树东 《计算机测量与控制》2017,25(3):123-125, 129
在软件开发和后期维护的过程中,进行软件调试来定位错误并修正错误是其中最复杂且成本最大的一部分;文章针对现有基于神经网络的软件错误定位方法中的权值和阈值设定不方便、鲁棒性差等问题,结合正交实验设计思想和遗传算法(Genetic Algorithm),提出了一种基于增强遗传BP神经网络的软件错误定位方法;并将其同基于GA-BP神经网络的和基于BP神经网络的定位方法都在MATLAB上进行了实验,实验数据来源西门子测试集,从结果上看,基于增强GA-BP神经网络的软件错误定位方法在定位错误的效率和精确度上都有一些进步。  相似文献   

20.
张卓  雷晏  毛晓光  常曦  薛建新  熊庆宇 《软件学报》2020,31(11):3448-3460
错误定位方法大多通过分析语句覆盖信息来标识出导致程序失效的可疑语句.其中,语句覆盖信息通常以语句执行或语句未执行的二进制状态信息来表示.然而,该二进制状态信息仅表明该语句是否被执行的信息,无法体现该语句在具体执行中的重要程度,可能会降低错误定位的有效性.为了解决这个问题,提出了基于词频-逆文件频率的错误定位方法.该方法采用词频-逆文件频率技术识别出单个测试用例中语句的影响程度高低,从而构建出具有语句重要程度识别度的信息模型,并基于该模型来计算语句的可疑值.实验结果表明,该方法大幅提升了错误定位的效能.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号