首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 62 毫秒
1.
错误定位就是寻找程序错误的位置.现有的错误定位方法大多利用测试用例的覆盖信息,以标识一组导致程序失效的可疑语句,却忽视了这些语句相互作用导致失效的上下文.因此,提出一种增强上下文的错误定位方法Context-FL,以构建上下文的方式来优化错误定位性能.Context-FL利用动态切片技术构建数据与控制相关性的错误传播上下文,显示了导致失效的语句之间传播依赖关系;然后,基于可疑值度量来区分上下文片段中不同语句的可疑度;最后,Context-FL以标记可疑值的上下文作为定位结果.实验结果表明,Context-FL优于8种典型错误定位方法.  相似文献   

2.
在整个软件开发周期中,软件测试占软件开发和维护成本的一半以上,而软件错误定位是一个最困难,最耗时的任务。错误定位技术以定位软件中的错误代码为目的,通过在待测程序上运行合适的测试用例的基础上,分析并定位错误语句。由于错误定位的精度高度依赖于选择的测试用例,测试用例的数量和质量是决定错误定位的成本和有效性的关键因素,因此,面向错误定位选择有效的测试用例,不仅有助于分析软件错误产生的原因,还能极大地提高软件错误定位的效率。首先对面向错误定位的测试用例约简方法进行了分类,并对各类测试用例约简方法进行了分析和总结,进而指出了其中存在的问题和未来的研究方向。  相似文献   

3.
已有的面向错误定位的测试用例选择方法大多数仅考虑了测试用例的语句覆盖信息,不能为错误定位选择合适的测试用例,从而导致不能有效提高错误定位的准确性.针对这一问题,提出了一种新的测试用例选择方法.文中方法分析了测试用例的执行路径信息,根据测试用例动态执行时的分支特征,采用分支聚类方法对测试用例进行选择.实验表明,提出的方法可以有效减少测试用例数量,降低错误定位的复杂度,并提高错误定位的准确性.  相似文献   

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

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

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

7.
何海江 《计算机应用研究》2021,38(11):3393-3397
基于程序谱的软件错误定位(spectrum-based fault localization,SBFL)技术收集测试用例结果和语句覆盖信息,用以计算每条语句的可疑度值.认知复杂度是软件复杂性度量工具,其值高的代码较易出错.为提升错误定位性能,提出一种语句级认知复杂度和SBFL相组合的方法对语句排序.当多条语句可疑度值相等时,新方法优先检查认知复杂度高的语句.测试数据集有925个错误版本,包含Java、C和C++项目.实验结果证实,加入认知复杂度后,传统的SBFL技术能减少待排查语句.  相似文献   

8.
任胜兵  陈军  谭文钊  左兴 《计算机应用研究》2021,38(11):3387-3392,3397
软件缺陷的存在导致软件无法满足用户的需求,如何高效高质量地定位缺陷是消除软件缺陷的关键.基于模型的缺陷定位技术是当前的研究热点,可以用于检测软件系统故障找到软件失效的原因.现有基于模型的缺陷定位技术中,未考虑非相邻节点间传递依赖和测试用例对可疑度的影响,导致缺陷定位精度和效率低.提出了基于概率模型检测的软件缺陷定位方法(probabilistic model checking method for software fault location,PMC-SFL),首先提出一种程序概率模型用于提高模型的推理能力;然后设计了基于执行路径构建程序概率模型的学习算法;最后设计了基于概率模型检测的软件缺陷定位算法,用于缺陷定位分析.通过在公共数据集Siemens上进行实验和分析,表明了PMC-SFL方法与五种现有的缺陷定位方法RankCP、BNPDG、Tarantula、SOBER和CT相比,具有更高的软件缺陷定位精度和效率.  相似文献   

9.
针对已有测试用例选择方法在提高错误定位有效性方面存在局限性的问题,首先,定义"失效覆盖向量相似度优先排序"准则,将执行路径与失效执行路径相似的成功测试用例赋予较高的优先级;然后定义"失效覆盖等价划分优化选择"准则,选择能够最大区分失效执行语句的成功测试用例集合;在此基础上,建立测试用例优选模型(effective selection,ES).不同于已有方法,ES充分利用失效执行路径来提高错误定位的有效性.该模型被应用于优选Siemens测试用例集合,其结果被应用于Tarantula等4种错误定位方法.结果表明,ES在约简率Reduction和衡量错误定位有效性的Expense_increase两个指标方面,均优于已有的基于语句和基于向量的测试用例约简方法.ES不但可以获得97%以上的约简率,提高错误定位的效率,而且具有较低的Expense_increase,显著提高了错误定位的有效性.  相似文献   

10.
张慧 《计算机科学》2021,48(z2):88-92
目前的错误定位方法大多数解决的是单错误定位.然而,错误之间是相互关联的,如何找到这些语句与测试结果之间的关联关系和错误之间的关联关系,并减轻偶然性正确的测试用例和相似测试用例对语句可疑度的影响,对提高多错误定位的效率至关重要.为了解决以上问题,提出了基于深度卷积网络的多错误定位方法,通过一种特殊结构的深度卷积网络得到一组准确度比较高的语句可疑度,再将其应用于前向切片和后向切片中,寻找到错误与错误之间的关联定位多错误.实验表明,所提方法的多错误定位效率高于目前存在的经典的错误定位方法的错误定位效率.  相似文献   

11.
面向Java的实用别名分析技术   总被引:1,自引:0,他引:1  
别名分析对程序分析起着十分重要的作用,不进行别名分析或分析 算法选择不当,可能会影响分析结果的可信度,甚至会导致分析析完全不正确,因此给出了一种适用于Java程序的别名分析技术,并给出了分析算法的形式化描述。  相似文献   

12.
在针对二进制程序的实际分析场景中,动态分析方法因具有更高的准确性而得到更为广泛的关注和运用.但是以动态污点分析为代表的细粒度分析方法通常会产生较高的性能和资源开销.为缓解这些问题,本文提出一种改进的轻量级在线解耦的动态污点分析方法,其主要思想是在线解耦程序执行和指令分析,同步构建分析代码并完成分析.该方法能够进一步降低对目标程序运行时的性能影响,并易将分析过程迁移至其它上下文环境中,从而可进一步减小对目标程序运行环境的干扰.本文通过采用多种实际程序进行实验,结果表明该方法能够比传统在线污点分析具有更高的分析性能,并具有较低的系统资源消耗,易于在实际环境中进行部署和应用.  相似文献   

13.
There are important classes of programming errors that are hard to diagnose, both manually and automatically, because they involve a program's dynamic behavior. This article describes a compile‐time analyzer that detects these dynamic errors in large, real‐world programs. The analyzer traces execution paths through the source code, modeling memory and reporting inconsistencies. In addition to avoiding false paths through the program, this approach provides valuable contextual information to the programmer who needs to understand and repair the defects. Automatically‐created models, abstracting the behavior of individual functions, allow inter‐procedural defects to be detected efficiently. A product built on these techniques has been used effectively on several large commercial programs. Copyright © 2000 John Wiley & Sons, Ltd.  相似文献   

14.
并发Java程序同步操作的有效删除   总被引:2,自引:0,他引:2  
吴萍  陈意云  张健 《软件学报》2005,16(10):1708-1716
同步操作是并发Java程序非常大的一部分开销.在现有程序分析方法的基础上,提出了一种精确而有效的冗余同步操作的静态删除方法.该方法分为基本处理和线程间时序分析两个阶段,充分考虑了控制流结构和线程交互时序对同步删除的影响.构造了一个Java编译器JTool,并在其上实现了同步删除算法.对于确定的单线程程序,同步删除率达到100%;对于多线程程序,同步删除率高于现有的分析工具.  相似文献   

15.
Most areas of research or work use their own set of words and phrases and gives specific technical meaning to terms that in everyday speech may mean something less specific or something else entirely. The area of partial evaluation and program transformation is no different, which may make it hard for the uninitiated to grasp some parts of technical papers or discussions. This list of words and terms is intended as a help to people new in the subject area, but may also be of help to experienced researchers, as different research groups tend to develop different terminology.  相似文献   

16.
金芝  刘芳  李戈 《软件学报》2019,30(1):110-126
程序理解是软件工程中的关键活动,在软件开发、维护、重用等任务中发挥着重要的作用.程序理解自软件工程出现以来,就一直是该领域的研究热点.随着软件应用的日益复杂和不断普及,程序理解研究的需求发生了新的变化,程序的自理解或自认知逐渐成为新的关注点,有必要对程序理解进行重新审视.从工程、学习和认知以及方法和技术这3个角度定位程序理解任务;随后,通过文献分析展示其研究布局,进而分别从认知过程、理解技术以及软件工程任务中的应用这3个方面,综合论述程序理解研究的发展脉络和研究进展.  相似文献   

17.
过程式语言部分求值循环展开的有效处理方法   总被引:3,自引:0,他引:3  
文中基于数据流分析技术,通过引进循环中变量之间的相互依赖关系,提出一种过程式语言部分求值的处理方法。利用该方法能有效地解决过程式语言部分求值中循环展开这一难题。  相似文献   

18.
精准执行可达性分析:理论与应用   总被引:1,自引:0,他引:1  
精准执行可达性分析探究计算机程序状态之间的可达性关系,通过分析软件的文档、源代码或二进制程序并进行必要测试验证,以求出在既定限制下从初始状态到特定代码位置的目标状态的准确触发输入和执行路径.精准执行可达性分析在定向测试、静态分析结果核验、错误复现和漏洞POC构造等领域均有广泛应用.本文对近年来国内外学者在该研究领域取得的相关研究成果进行了系统的分析、提炼和总结.首先,指出了精准执行可达性分析对应的约束求解问题,以双向符号分析和程序归纳为主线介绍了其主要研究方法,讨论了相关技术难点.其次,对目前已经存在的精准执行可达性应用进行了分类分析.进而,指出精准执行可达性分析应用中程序分析、归纳和约束求解等方面存在的挑战.最后,对可能的解决办法以及未来发展方向进行了展望.  相似文献   

19.
20.
符号执行是一种实用的验证程序中是否包含某类错误的技术,具有0误报率的优点,但是主流的执行工具并不支持分析多线程程序。本文对已有的多线程程序的符号执行工具进行分析,发现存在的问题有:1)有些工具性能好,但是不支持外部库,实用性很差;2)有些工具支持外部库函数,但是版本老,难以更新和维护,无法检查减法溢出、乘法溢出、移位溢出等基本类型的bug。本文基于最主流的符号执行工具KLEE设计并实现支持多线程程序的符号执行工具——MTSE(Multi-Thread Symbolic Execution)。MTSE支持libc和libc++库,并且相对于已有的同类工作Cloud9,MTSE可以多查找出约50%的程序缺陷,并且指令覆盖率和分支覆盖率上均有约30%的提升。  相似文献   

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

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