首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到16条相似文献,搜索用时 192 毫秒
1.
龚沛  耿楚瑶  郭俊霞  赵瑞莲 《计算机科学》2016,43(2):199-203, 229
在软件调试过程中,如何快速、精确地定位程序中的错误代码是软件开发人员普遍关注的问题。基于变异的错误定位方法是一种通过分析被测程序与程序变异体之间的行为相似性来估计语句出错概率、进行错误定位的方法。该方法有较高的错误定位精确度,但由于需对大量程序变异体执行测试用例集,因此其变异执行开销较大。为此提出了一种动态变异执行策略,它通过搜集测试用例执行信息,动态地调整变异体及测试用例的执行顺序,以减少其变异执行开销。实验结果表明,在6个程序包的127个错误版本上,应用提出的动态变异执行策略可在保证错误定位精确度的前提下,减少23%~78%的变异执行开销,显著提高了基于变异的错误定位方法的效率。  相似文献   

2.
错误定位是软件调试中最昂贵的活动之一.基于变异的错误定位(MBFL)技术假定被大多数失败测试用例杀死的变异体能够很好地定位错误的位置.之前的研究表明MBFL在单错误定位上有很好的定位效果,但关于MBFL在多错误定位上的表现没有被深入研究过.近年来,高阶变异体被提出用于构造难以被杀死的复杂错误,但高阶变异体是否能提升MBFL的错误定位精度是未知的.本文中,我们研究了一阶变异体和高阶变异体在多错误定位场景下的表现.进一步,我们依据不同的变异位置将高阶变异体划分成3类:准确高阶变异体、部分准确高阶变异体和不准确高阶变异体.探索哪类变异体在错误定位上更有效.基于5个程序上的实证研究,我们发现在多错误定位场景下,高阶变异体比一阶变异体有更好的定位效果.更进一步,我们发现不同种类的高阶变异体的影响是不容忽视的.具体而言,准确高阶变异体比不准确高阶变异体有更高的贡献.因此研究人员应提出更有效的方法生成这类变异体用于未来的MBFL研究.  相似文献   

3.
正则表达式在计算机科学的许多领域具有广泛应用. 然而, 由于正则表达式语法比较复杂, 并且允许使用大量元字符, 导致开发人员在定义和使用时容易出错. 测试是保证正则表达式语义正确性的实用和有效手段, 常用的方法是根据被测表达式生成一些字符串, 并检查它们是否符合预期. 现有的测试数据生成大多只关注正例串, 而研究表明, 实际开发中存在的错误大部分在于定义的语言比预期语言小, 这类错误只能通过反例串才能发现. 研究基于变异的正则表达式反例测试串生成. 首先通过变异向被测表达式中注入缺陷得到一组变异体, 然后在被测表达式所定义语言的补集中选取反例字符串揭示相应变异体所模拟的错误. 为了能够模拟复杂缺陷类型, 以及避免出现变异体特化而无法获得反例串的问题, 引入二阶变异机制. 同时采取冗余变异体消除、变异算子选择等优化技术对变异体进行约简, 从而控制最终生成的测试集规模. 实验结果表明, 与已有工具相比, 所提算法生成的反例测试串规模适中, 并且具有较强的揭示错误能力.  相似文献   

4.
在软件调试过程中如何高效、精确地定位程序中的错误代码是软件开发人员普遍关注的问题。MBFL是一种基于变异分析的错误定位技术,它在获得较高错误定位精度的同时会生成大量变异体,并在变异体上执行测试用例集,开销庞大。为了减少MBFL的变异执行开销,提出面向语句的变异体约减策略,通过分析测试用例的执行信息, 按一定比例 对每条由失败测试用例覆盖的语句生成的变异体集合进行约减。实验结果表明,在7个程序包的112个错误版本上,应用面向语句的变异体约减策略的MBFL,在保持较高错误定位精度的同时,能够有效减少73.51%~79.98%的变异执行开销。  相似文献   

5.
基于变异的错误定位(MBFL)是最近提出的一种自动化程序错误定位技术,错误定位精度高,但伴随着庞大的执行开销,严重制约了其在工业领域的应用.研究人员主要从减少变异体数量、减少测试用例数量和优化变异体的执行过程三个方面优化MBFL的执行效率.前两种方法被广泛研究并取得很好的定位效果,但对MBFL测试用例方面的研究较少,且存在错误定位精度损失的问题.为解决该问题,本文提出了一种基于信息熵的测试用例约减方法 (IETCR). IETCR首先计算出测试用例的信息熵,然后根据信息熵对测试用例进行排序,最后选择少量有价值的测试用例执行变异体.在SIR中6个程序100个版本上的实验结果表明, IETCR能够约减56.3%~88.6%的MBFL执行开销,而且几乎保持与原始MBFL相同的错误定位精度.  相似文献   

6.
王曙燕 《计算机应用研究》2021,38(5):1487-1490,1497
针对基于程序谱错误定位方法完全依赖于测试用例的语句覆盖信息导致错误定位效率低下的问题,提出了一种基于变异测试技术的程序谱错误定位方法。在原有语句怀疑度计算方法的基础上,增加了程序变异后执行结果与原程序执行结果不同的测试用例变化情况的分析。此外,为解决程序变异后产生的变异体数量巨大而导致执行代价过大的问题,提出了根据变异位置约简变异体的策略。实验结果表明,与几种基于程序谱的程序错误定位方法相比,该方法的错误定位代价最低,能有效提高错误定位的效率。  相似文献   

7.
变异测试通过执行变异体评价给定测试用例集的质量。然而,一定比例的等价变异体,不仅增加变异测试成本,也影响测试用例评价结果的准确性。鉴于此,提出基于弱变异分析的方法,以有效检测等价变异体。所提方法将变异前后语句组合为条件语句,以反映杀死变异体的必要性条件,并构造变异分支;将所有变异分支集成到原程序中;通过分析变异分支的可满足性,判定等价变异体。将所提方法用于6个程序的实验,结果表明,所提方法能够有效检测等价变异体。  相似文献   

8.
对导致变异测试高代价的原因之一--测试过程中容易产生数目庞大的变异体进行了研究,提出基于遗传算法聚类的变异体约简方法。把具有相似特征的变异体置于同一簇中,再从每个簇中随机选择一个作为代表,从而实现变异体的约简。实验表明:1)该方法可在不降低构造出的测试用例集的测试充分度的前提下,约简变异体;2)与K-means算法和凝聚型层次聚类算法相比,该方法能够在自动产生合适的聚类数目的同时,具有更优的约简效果。  相似文献   

9.
变异测试是常用的测试方法之一,变异测试分析的过程中计算开销会比较大,问题主要集中于测试过程中会产生大量的变异体,为了减少变异体的数量,提出用标准粒子群聚类算法进行选择优化,但标准粒子群算法在被测数据量增加到一定数量的时候,它的迭代次数就会增加、收敛速度就会下降。针对以上问题提出基于改进的粒子群算法对变异体进行选择优化。通过对变异体集合进行聚类分区,增强变异体集合的多态性,从而对粒子群算法改进优化。实验结果表明在不影响测试充分度的前提下,使变异体的数量大幅度减少,同时与K-means算法以及标准粒子群算法相比之下,改进后的方法具有更好的优化效果。  相似文献   

10.
张功杰  巩敦卫  姚香娟 《软件学报》2015,26(10):2504-2520
为数众多的变异体产生的高昂测试代价严重影响了变异测试技术在实际程序中的应用.为了大幅度减少弱变异测试中变异体的数量,提出基于统计占优分析的变异体约简方法.该方法首先利用变异前后的语句构造变异分支,并将所有变异分支集成到原程序中,形成新的被测程序;然后,通过统计测试用例对各个变异分支的覆盖信息,确定变异分支之间的占优关系;最后得到非被占优分支集,其对应的变异体就是约简后的变异体.将该方法用于8个程序的测试,结果表明:该方法能够约简平均90%的变异体,从而显著提高了变异测试的效率.  相似文献   

11.
Although powerful, mutation is a computationally very expensive testing technique. In fact, its three main stages (mutant generation, mutant execution and result analysis) require many resources to be successfully accomplished. Thus, researchers have made important efforts to reduce its costs. This paper represents an additional effort in this sense. It describes the results of two experiments in which, by means of combining the original set of mutants and therefore obtaining a new set of mutants—each one with two faults—the number of mutants used is reduced to half. Results lead to believe that mutant combination does not decrease the quality of the test suite, whereas it supposes important savings in mutant execution and result analysis. Copyright © 2008 John Wiley & Sons, Ltd.  相似文献   

12.
Several module and class testing techniques have been applied to object‐oriented (OO) programs, but researchers have only recently begun developing test criteria that evaluate the use of key OO features such as inheritance, polymorphism, and encapsulation. Mutation testing is a powerful testing technique for generating software tests and evaluating the quality of software. However, the cost of mutation testing has traditionally been so high that it cannot be applied without full automated tool support. This paper presents a method to reduce the execution cost of mutation testing for OO programs by using two key technologies, mutant schemata generation (MSG) and bytecode translation. This method adapts the existing MSG method for mutants that change the program behaviour and uses bytecode translation for mutants that change the program structure. A key advantage is in performance: only two compilations are required and both the compilation and execution time for each is greatly reduced. A mutation tool based on the MSG/bytecode translation method has been built and used to measure the speedup over the separate compilation approach. Experimental results show that the MSG/bytecode translation method is about five times faster than separate compilation. Copyright © 2004 John Wiley & Sons, Ltd.  相似文献   

13.
等价变异体识别一直是阻碍变异测试在工业界得以广泛应用的一个关键难题.为此提出了一种基于故障检测上下文的等价变异体识别算法.该算法通过静态分析技术抽取程序中与故障检测条件相关的代码上下文信息,以构造故障检测上下文;接着,故障检测上下文被转换为文档模型,经过一个文档表示学习网络进行编码;最后通过机器学习模型将变异体分类为等价或非等价变异.在包含了22个C程序和118 000个变异体样本的训练集上,该算法取得91%的分类精准度和82%的召回率;同时在跨项目交叉验证中,机器学习模型取得了77%的精准度和78%的召回率.该结果表明基于故障检测上下文的识别技术能够有效地提高等价变异体分类的精准性和泛用性,为提高变异测试技术的有效性提供了技术支持.  相似文献   

14.
并发程序由多个共享存储空间并发执行的流程组成.由于流程之间执行次序的不确定性,使得并发软件系统的测试比较困难.变异测试是一种基于故障的软件测试技术,广泛用于评估测试用例集的充分性和测试技术的有效性.将变异测试应用于并发程序的一个关键问题是,如何高效地生成大量的模拟并发故障的变异体集合.给出了一种并发程序的变异测试框架,...  相似文献   

15.
二阶神经网络映射能力的研究   总被引:2,自引:0,他引:2  
本文讨论了二阶神经网络的映射能力。主要内容包括:(1)从理论上严格地证明了二阶神经网络能以任意精度逼近任意连续函数。(2)给出二阶神经网络的BP算法。(3)模拟实验结果。模拟实验表明:在中间隐层单元数目相同的条件下,二阶神经网络的误差函数比一阶神经网络下降得快;在误差精度相同的条件下,二阶神经网络的隐层单元数目远比一阶神经网络少。  相似文献   

16.
Despite the existing techniques to reduce the costs of mutation analysis, the computational cost to apply mutation testing with large applications can be very high. One effective technique to improve the efficiency of mutation without losing effectiveness is parallel execution, where mutants and tests are executed in parallel processors, reducing the total time needed to perform mutation analysis. This paper presents a study of this technique adapted to current technologies. Five algorithms to execute mutants in parallel are analysed with three studies that use different network configurations and different number of processors with diverse characteristics. The experiments are performed with Bacterio P, a tool that is also presented. Unlike previous studies about parallel mutant execution, which date from the mid‐1990s, in the studies in this paper, the communication time in parallel systems no longer acts as a bottleneck. Thus, dynamic strategies, which require more communication, combined with other mutant cost reduction techniques, are the best strategies to run mutants in parallel.Copyright © 2012 John Wiley & Sons, Ltd.  相似文献   

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

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