共查询到19条相似文献,搜索用时 78 毫秒
1.
基于程序谱的软件错误定位(spectrum-based fault localization,SBFL)技术收集测试用例结果和语句覆盖信息,用以计算每条语句的可疑度值.认知复杂度是软件复杂性度量工具,其值高的代码较易出错.为提升错误定位性能,提出一种语句级认知复杂度和SBFL相组合的方法对语句排序.当多条语句可疑度值相等时,新方法优先检查认知复杂度高的语句.测试数据集有925个错误版本,包含Java、C和C++项目.实验结果证实,加入认知复杂度后,传统的SBFL技术能减少待排查语句. 相似文献
2.
基于程序谱的错误定位技术由于其较高的定位效率已成为当前软件调试领域研究热点之一.这种技术通常根据测试覆盖信息计算程序语句发生错误的可疑度来进行错误定位.然而,这种技术会随着程序中错误数目的增多效率不断下降.鉴于此,提出了一种基于条件执行切片谱的多错误定位技术(conditioned execution slicing spectrum-based multiple fault localization, CESS-MFL),以提高多错误定位的效率.CESS-MFL技术首先根据输入变量的谓词条件构建错误相关条件执行切片的谱矩阵,然后依次计算错误相关条件执行切片中的元素(语句或语句块)的可疑度,并生成可疑度报告.实验验证了CESS-MFL技术比当前流行的基于程序谱的Tarantula技术、基于程序切片的Intersection技术、Union技术有更高的多错误定位效率,并且可在有效的时间和空间复杂度内完成. 相似文献
3.
4.
5.
传统的软件错误定位技术通常利用测试覆盖信息计算程序语句发生错误的可疑度进行软件错误定位,但是这种定位技术没有充分考虑程序本身固有的依赖信息,缺乏语句筛选,从而使错误定位的精度受限.提出了一种基于层次切片谱的错误定位技术,以提高面向对象程序中的错误定位效率.这种技术首先分析程序不同粒度层次元素(包、类、方法以及语句)之间的依赖信息,对可能发生错误的元素进行筛选,缩小错误查找范围;在此基础上,建立了层次切片谱模型,并定义了一种可疑度度量方法;最后根据该可疑度结果从大到小的顺序进行错误定位.通过实验验证了基于层次切片谱的错误定位技术的有效性,且比基于程序谱的Tarantula 技术、Union 技术、Intersection 技术效率更高. 相似文献
6.
何海江 《计算机工程与应用》2017,53(21):42-48
基于谱的错误定位(SBFL)方法能帮助程序员减小软件调试的困难。作为一种轻量方法,SBFL只需收集测试用例的覆盖信息和测试结果,计算程序每条语句的运行特征。众多SBFL方法,将四个运行特征组合成不同的可疑度计算公式。然而,这些公式受固定参数的影响,无法适应不同的程序集。因此,提出一种机器学习方法,能自动确定特定程序集的可疑度计算公式。首先,收集已标注错误语句的程序旧版本;再将错误语句与正确语句的运行特征两两相减,构造为训练集的一个样本;最后基于Weka的分类算法,学习到线性函数,作为该程序的错误定位模型。在Siemens程序包、space和gzip三个基准数据集上,使用Logistic、SGD、SMO和LibLinear学习到的模型,性能都要优于SBFL方法。 相似文献
7.
在实际调试中,程序员往往通过追溯错误的变量值及其传播来定位软件错误,其中具有错误值的变量称为感染变量,感染变量在失败运行中具有错误值的程序位置即为感染位置。提出了一种结合动态正向程序切片和语句覆盖信息对程序变量感染的初始位置进行定位的技术。该技术通过分析感染变量的起源与传播,可以更加精确地找到与感染变量相关的错误语句集合。与传统的基于程序覆盖信息的错误定位技术进行了对比实验,结果表明,该技术可定位程序中的感染变量及其初始感染位置,并且可以显著提高程序错误定位的精度。 相似文献
8.
软件错误定位技术旨在通过挖掘程序与测试用例执行数据,提升定位准确性。针对SBFL技术过于依赖二进制覆盖信息的问题,提出一种基于图可解释网络的软件错误定位方法,将测试执行转化为图结构,利用图注意网络建模深度挖掘代码片段隐含的信息及其相互关系,并采用强化学习思想对图注意力网络学习后的决策过程进行解释,从而确定关键节点,缩小错误定位范围。实验的场景设立在Defects4j数据集的5个项目进行了,并与SBFL及未经过解释的深度学习方法进行了对比。结果显示,基于图可解释网络的定位方法在Top-1、Top-3和Top-5指标上分别提升了7.26%、7.56%和9.96%,EXAM指数也提升了8.98%,显著优于其他方法。 相似文献
9.
为提高基于程序切片和覆盖信息的传统错误定位技术的效率,提出一种基于程序动态切片和贝叶斯相结合的错误定位方法。针对程序执行轨迹计算动态切片,减少搜索空间;在切片后覆盖信息的基础上,利用贝叶斯公式计算相关语句的可疑度;根据语句可疑度降序排列语句,依次检查直到找出真正的错误语句。实验结果表明,该方法能够在一定程度上提高软件错误定位的效率与精度。 相似文献
10.
基于动态相似度的错误定位优先排序方法 总被引:1,自引:0,他引:1
在软件测试中,错误定位优先排序通过优化测试用例的执行次序来提高错误定位的效果,并将检测错误和定位错误相结合,以降低测试成本。 提出了一种基于动态相似度的错误定位优先排序方法,在相似度计算中,引入了语句怀疑度,提高了相似度计算的有效性以及错误定位的准确度;同时分析并验证了不同测试用例优先排序算法对后续定位错误的影响。在6个C基准程序上,针对3种广泛采用的测试用例优先排序算法和2种错误定位技术进行了实验,结果表明提出的方法能提高错误定位的准确度和效率。 相似文献
11.
缺陷定位是软件质量保证中关键且困难的一项工作,随着软件规模的增大,人工进行缺陷定位的成本越来越高,自动化缺陷定位技术成为研究热点。现有的基于程序频谱的缺陷定位技术可以将缺陷定位到程序语句,但对于大型复杂的软件系统,这种定位方法将带来较大的时间花销。针对此问题,提出一种基于程序频谱的两阶段缺陷定位方法,第一阶段为粗粒度定位,将缺陷定位到程序模块;第二阶段为细粒度定位,在定位的程序模块中再将缺陷定位到语句;最后输出可疑语句推荐列表,辅助开发人员的调试工作。实验结果表明,相比于传统的方法,该方案在保证定位效果的前提下平均减少了10.24%的定位时间。 相似文献
12.
以研究对嵌入式系统鲁棒性进行评价和基于软件故障注入技术的嵌入式系统鲁棒性测试为目的。对嵌入式系统鲁棒性测试的相关概念以及软件故障注入技术原理进行了介绍,以Linux操作系统内核函数测试为例,通过对系统API参数的故障注入接口进行分析,提出基于GDB工具的软件故障注入方法来实现系统鲁棒性故障注入测试。完成了相应的Linux操作系统API接口故障注入测试实例并给出了测试结果。为嵌入式系统鲁棒性测试提供了更为直观、有效的方法。 相似文献
13.
软件故障的自动定位能提高测试过程的效率,对改善软件的可信性也相当重要。在原有程序谱分析故障定位基础上,提出了基于语句命中谱分析的自动故障定位方法,通过引进聚类函数克服了基于模型的故障定位计算量过大的问题,并和现有的程序谱定位工具Pinpoint、Tarantula进行了比较,最终通过实验证明了这种方法的高效性和优越性。 相似文献
14.
15.
传统的软件复杂性度量方法主要是针对C/C++、Ada等语言开发的非Web应用。以面向对象的基于Struts框架的Web软件为研究对象,提出了适合于Web-Struts软件的3个方面的复杂性度量指标,并提出了一种基于带交叉算子人工鱼群和投影寻踪(PP)算法的Web应用软件复杂性度量方法。把Web软件多个复杂性度量指标综合成一维综合投影值,利用样本数据求解最佳投影方向,确定评价等级的综合投影值区间,根据测试样本综合投影值与区间值比较,获得综合评价结果。实例评价结果表明,所提方法具有较强的适用性和应用性。 相似文献
16.
缺陷定位是软件开发过程的重要环节。充分利用程序的结构特征和行为特征有助于提高缺陷定位效率。提出一种基于多变量Logistic回归分析的缺陷定位框架, 用于软件演化时对新版本程序进行类方法级别的缺陷定位。首先设计一组度量结构特征和行为特征的指标, 通过静态分析和测试程序搜集并构建旧版本程序的特征数据集, 同时从缺陷跟踪系统获取旧版本缺陷信息;其次, 基于所得特征数据集和缺陷信息, 应用单变量分析筛选出度量指标中与缺陷显著相关的指标, 随后用选中的显著指标展开多变量分析, 训练多变量Logistic模型;最后, 基于选出的显著指标搜集并构建新版本程序的特征数据集, 运用得到的Logistic模型预测每个类方法的出错概率, 进而按出错概率降序检查类方法以定位错误。基于一组开源程序进行缺陷定位实证研究,结果表明, 多变量Logistic模型可以提高缺陷定位的效率。关键词: 相似文献
17.
对于非崩溃的错误,测试人员往往花费大量的时间才能发现。为了快速准确地定位这类错误,降低软件开发成本,提高软件质量,提出一种辅助定位非崩溃错误的方法。该方法通过收集程序的执行轨迹信息,构造出程序调用图。提取频繁边,运用J48决策树算法,得到基于方法粒度的故障决策树,可辅助人员判定软件缺陷。通过实验与分析,进一步验证了该方法的有效性。 相似文献
18.
软件错误定位是目前软件工程领域的重要研究课题,其中基于程序谱的错误定位(CFL)是一类重要的方法。偶然性正确测试用例对于CFL有着很大的负面影响,因此如何发现该类测试用例或者避免它们对CFL的影响对于提高CFL方法的定位效果有着重要的意义。通过分析偶然性正确对CFL定位方法的影响,发现一种没有误判率(false positive)的寻找偶然性正确测试用例的方法。在此基础上,提出了一种基于偶然性正确测试用例发现的CFL定位方法。通过实验表明,该方法可以普遍改善已有CFL方法的定位效果。 相似文献
19.
检测故障是繁琐而耗时的,为了提高传统软件故障定位方法的效率以及精确度,提出了一种基于频谱的故障定位新方法;充分利用了失败的测试用例与故障之间的关系,通过使用频谱增强的方式,采取逻辑与运算的关键技术和方法,对失败的测试用例进行精简,优化失败测试用例中的频谱信息,从而得到频谱增强后的测试用例,克服了冗余测试用例对定位效果的消极影响,再根据新的频谱信息计算可疑度值,最后生成优化后的可疑度排序列表;首次将频谱增强的方法同时运用到单故障与多故障程序场景中,在包含植入故障的西门子程序和真实故障的Defects4j程序中,经实验检测证明本研究方法能够显著减少代码检查的范围,尤其是在高性能范围内(EXAM5%),并且仅通过检查Top-1至少能有效地定位超过原有约20%的故障,结果表明基于频谱增强的故障定位方法有效提升了检测率,可以更好地帮助程序员精准定位故障位置。 相似文献