首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 125 毫秒
1.
软件错误定位与错误理解是软件调试过程中的重要步骤,然而调试人员利用基于覆盖分析的软件错误定位获取的可疑度,从高到低静态分析每条程序语句的检查方式,与实际软件调试过程并不相符。为了能够筛选更有助于理解错误根源的测试执行,尤其是致使程序失效的失效执行,帮助调试人员进行动态差异化分析,针对失效执行提出基于高可疑度覆盖率、揭示错误潜力和覆盖语句可疑度离散特征的3种优先级策略,针对成功执行提出加权余弦相似度匹配策略。通过将3种失效执行优先级策略与随机选择在常用错误定位技术中进行实验对比,验证了基于覆盖语句可疑度离散特征的失效执行筛选策略能够对筛选前后的错误理解工作量变化产生更强的积极影响和更弱的消极影响,并能够在相同工作量下理解更多的错误,进而更有助于将错误定位结果应用于错误根源的理解。  相似文献   

2.
通过增大边际权重提高基于频谱的错误定位效率   总被引:1,自引:0,他引:1  
基于频谱的错误定位技术通常利用覆盖信息来求出程序中每条语句的可疑度,并将语句按照可疑度降序排序以寻找错误语句.文中对已有的基于频谱的错误定位算法进行改进,将失败测试用例的边际权重引入到可疑度计算的过程中,即针对某一特定语句,令失败测试用例的权重随着其对该语句覆盖次数的增加而增大.实验结果表明,相对于其它方法,文中提出的方法对错误定位效率有一定的促进作用,即只需检查更少的语句即可找到出错位置.  相似文献   

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

4.
缺陷定位是软件质量保证中关键且困难的一项工作,随着软件规模的增大,人工进行缺陷定位的成本越来越高,自动化缺陷定位技术成为研究热点。现有的基于程序频谱的缺陷定位技术可以将缺陷定位到程序语句,但对于大型复杂的软件系统,这种定位方法将带来较大的时间花销。针对此问题,提出一种基于程序频谱的两阶段缺陷定位方法,第一阶段为粗粒度定位,将缺陷定位到程序模块;第二阶段为细粒度定位,在定位的程序模块中再将缺陷定位到语句;最后输出可疑语句推荐列表,辅助开发人员的调试工作。实验结果表明,相比于传统的方法,该方案在保证定位效果的前提下平均减少了10.24%的定位时间。  相似文献   

5.
针对现有的基于深度神经网络的缺陷定位方法中参数设定不便,结合遗传算法的全局随机搜索能力、L2正则化防止模型过拟合与深度神经网络学习复杂非线性能力,提出一种基于GL2-DNN模型的程序静态缺陷定位算法。通过遗传算法寻找深度神经网络最优超参数;将所得语句覆盖信息与状态值输入深度神经网络计算每条可执行语句的可疑度值;根据可疑度值由高往低排序进行缺陷定位。选用Siemens Suite数据集作为实验样本,将GL2-DNN与五种缺陷定位算法进行实验对比,结果表明,该算法能更精确地定位缺陷,计算效率也有所提升。  相似文献   

6.
随着软件系统变得越来越复杂和庞大,如何对它进行快速有效的测试已经成为现在的一大热点.通过将Agent技术引入软件测试过程,设计了一种基于多Agent的软件测试系统.该系统由界面Agent模块、预处理Agent模块、程序插桩Agent模块和动态测试信息分析Agent模块组成.实现了软件语句和分支覆盖率的测试及查询覆盖率不满足要求时未覆盖目标的情况.有效地解决了传统手工测试程序运行效率低、繁琐等一些问题,保证了软件系统高效稳定的运行.  相似文献   

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

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

9.
传统的软件错误定位技术通常利用测试覆盖信息计算程序语句发生错误的可疑度进行软件错误定位,但是这种定位技术没有充分考虑程序本身固有的依赖信息,缺乏语句筛选,从而使错误定位的精度受限.提出了一种基于层次切片谱的错误定位技术,以提高面向对象程序中的错误定位效率.这种技术首先分析程序不同粒度层次元素(包、类、方法以及语句)之间的依赖信息,对可能发生错误的元素进行筛选,缩小错误查找范围;在此基础上,建立了层次切片谱模型,并定义了一种可疑度度量方法;最后根据该可疑度结果从大到小的顺序进行错误定位.通过实验验证了基于层次切片谱的错误定位技术的有效性,且比基于程序谱的Tarantula 技术、Union 技术、Intersection 技术效率更高.  相似文献   

10.
基于程序特征谱整数溢出错误定位技术研究   总被引:2,自引:0,他引:2  
随着软件业的飞速发展,人们对软件质量的要求也越来越高.整数溢出错误以其高危性和隐蔽性成为影响软件安全性和可靠性的重要因素之一.如何准确定位整数溢出错误是软件安全领域研究的热点.论文改进了现有错误定位模型,构建了整数溢出错误定位模型INTRank.实验结果表明:基于INTRank模型的语句可疑度估计方法可以较为准确地计算语句可疑度,使得程序员能够按照基于语句可疑度的优先级顺序检查源代码,找出导致整数溢出错误的原因,同时本文方法具有较低的漏报率.  相似文献   

11.
黄晨  董燕  于倩  虞砺琨 《测控技术》2017,36(1):100-103
基于目标码的测试覆盖率分析是软件测试过程的必要关键步骤,不可达分析能够保证测试的完整性和充分性.给出嵌入式软件基于覆盖率测试的分析过程,在嵌入式虚拟测试平台的基础上,对程序目标代码插桩,采用语句和分支覆盖率分析准则,将黑盒测试和白盒测试相结合,分析不可达分支语句引入机理,并通过具体的反汇编代码实例分析来验证这种测试方法的可行性和有效性.专门针对覆盖率不可达的分析可以有效验证软件功能,发现软件缺陷,进一步提升软件质量.  相似文献   

12.
Failures triggered by hard to debug defects usually involve complex interactions between many program elements. This paper hypothesizes that information flows present a good model for such interactions and presents a new fault localization technique based on information flow coverage. Using a test suite, the technique ranks the statements in a program in terms of their likelihood of being faulty by comparing the information flows induced by the failing runs with the ones induced by the passing runs. The ranking of the statements associated with a given flow is primarily determined by contrasting the percentage of failing runs to the percentage of passing runs that induced it. Generally, a higher percentage of failing runs implies a higher rank. To show its potential, the technique was applied to several open‐source Java programs and was compared, with respect to its fault localization effectiveness, with three other coverage techniques that use similar style metrics that are defined for statements, branches, and def–use pairs, respectively. The results revealed that information flow, branch, and def–use coverage performed consistently better than statement coverage. In addition, in a considerable number of cases information flow coverage performed better than branch and def–use coverage. Specifically, it was always safer but not always more precise. Copyright © 2009 John Wiley & Sons, Ltd.  相似文献   

13.
Spectrum-based fault localization is amongst the most effective techniques for automatic fault localization. However, abstractions of program execution traces, one of the required inputs for this technique, require instrumentation of the software under test at a statement level of granularity in order to compute a list of potential faulty statements. This introduces a considerable overhead in the fault localization process, which can even become prohibitive in, e.g., resource constrained environments. To counter this problem, we propose a new approach, coined dynamic code coverage (DCC), aimed at reducing this instrumentation overhead. This technique, by means of using coarser instrumentation, starts by analyzing coverage traces for large components of the system under test. It then progressively increases the instrumentation detail for faulty components, until the statement level of detail is reached. To assess the validity of our proposed approach, an empirical evaluation was performed, injecting faults in six real-world software projects. The empirical evaluation demonstrates that the dynamic code coverage approach reduces the execution overhead that exists in spectrum-based fault localization, and even presents a more concise potential fault ranking to the user. We have observed execution time reductions of 27% on average and diagnostic report size reductions of 77% on average.  相似文献   

14.
为了获取组合测试中适应值函数所需要覆盖率、测试运行代价等信息,设计实现了基于嵌入式软件源代码插桩的指标获取方案。该方案使用交叉开发环境,完成了对源代码语法、词法分析,插桩库和插桩策略的制定,目标机/宿主机通讯方式设计,获得了语句覆盖率、分支覆盖率、运行时间、被测程序程序复杂度等关键指标,并以图表的方式提供统计结果,为组合测试设计适应值函数,进行测试用例约减提供了依据。  相似文献   

15.
MC/DC(修订的条件/判定覆盖)准则是一种实用的软件结构覆盖率测试准则。目前,MC/DC在国际上已被广泛地应用于软件验证和测试过程中,在我国也被应用于一些软件项目中。介绍了MC/DC准则,提出了用此准则进行结构覆盖率分析时需注意的两个问题:结构覆盖率分析的问题和复杂逻辑语句的问题。最后,详细讨论了用MC/DC准则检查逻辑表达式错误时需考虑的3个方面及相应的改进方法,这3个方面包括逻辑式中操作符OR与XOR的误写、括号的位置不正确和逻辑组元被误写。  相似文献   

16.
本文以无线电调谐单元设备中的无线电调谐软件为例,通过引入LDRATESTBED自动化测试工具提高测试效率,实现满足DO-178C中的语句覆盖数据的目标.语句覆盖是民用飞机软件研制中最基本的覆盖率测试目标.语句覆盖可以有效检测出源代码中的多余代码,提高代码质量.通过实验表明LDRATESTBED可以快速完成源代码插桩以及代码覆盖率数据分析任务,同时,该工具自动标识源代码中未执行的代码,为开发者提供了分析的基础.工具生成的语句覆盖率数据满足DO-178C标准目标要求,可以作为证据提交给局方进行审查,提高软件的置信度.  相似文献   

17.
LUSTRE is a data‐flow synchronous language, on which is based the SCADE tool‐suite, widely used for specifying and programming critical reactive applications in the areas of avionics, energy or transport. Therefore, testing LUSTRE programs, that is, generating test data and assessing the achieved test coverage, is a major issue. Usual control‐flow‐based test coverage criteria (statement coverage, branch coverage, etc.) are not relevant for LUSTRE programs. In this paper, a new hierarchy of adequacy criteria tailored to the LUSTRE language is presented. These criteria are defined on operator networks, which are usual models for LUSTRE programs. The criteria satisfaction measure is automated in LUSTRUCTU , a non‐intrusive tool (no instrumentation of the code), based on the symbolic computation of path activation conditions. The applicability and the relevance of the criteria are assessed on a case study. Copyright © 2008 John Wiley & Sons, Ltd.  相似文献   

18.
更改的判定条件覆盖测试技术研究   总被引:5,自引:2,他引:5  
与语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、多重条件覆盖相比,路径覆盖具有更强的结构覆盖率。但其需要更庞大的测试用例,事实上它并不实用。近年来,一种相对新颖和优秀的结构覆盖准则一一更改的判定条件覆盖(MC/DC)应运而生,它继承了多重条件覆盖的优点,同时只是线性地增加了测试用例的数量。因此,在许多重要的软件,尤其是以嵌入式和实时性为特征的航空机载软件中得到广泛的应用.介绍了MC/DC的特点、设计方法、评估策略及工程应用。  相似文献   

19.
对不断更新的软件进行回归测试时,持续增加的测试用例会造成累计测试用例数量庞大,进而影响测试成本。在故障定位领域,已有研究在考虑语句覆盖、路径覆盖等的基础上,提出了CMR&PVR等不同的测试用例约简方法。然而,这些方法在一定程度上影响了原始测试用例集的MC/DC(修订的条件/判定)覆盖率。提出一种以MC/DC覆盖为基础的综合测试用例约简方法MCDCR,利用该方法对原始测试用例集约简后,在确保原有故障定位准确性并保持较高约简比的同时,大幅提高了测试用例对程序的MC/DC覆盖率。采用Ochiai方法在Siemens 程序集上进行了实验及验证,结果表明MCDCR约简方法的综合效果明显优于已有的约简方法。  相似文献   

20.
巩敦卫  钟超群  姚香娟 《软件学报》2015,26(8):1925-1936
基于占优关系的可测试性转化,是将目标语句覆盖问题转化为位于该语句之前的占优语句(集)覆盖问题,能够对含有标志变量的程序进行测试.但是当占优语句(集)不止一个时,如何从这些语句(集)中选择最容易覆盖的作为新的目标语句(集),至今没有有效的方法,从而限制了可测试性转化的应用范围.研究了占优语句(集)选择问题,提出了基于覆盖难度的占优语句(集)选择方法.首先,提出评价语句覆盖难度的4个指标,并给出这些指标的计算方法;然后,基于上述指标,利用Topsis方法排序,选择最容易覆盖的占优语句(集);最后,将所提出的方法应用于多个基准与工业程序测试,实验结果表明,覆盖基于该方法选择的占优语句(集)能够显著提高测试数据生成的效率.  相似文献   

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

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