随着软件系统规模的不断扩大、复杂度迅速的上升,对软件质量提出了更高的要求,软件质量受到人们越来越多的关注。软件测试这一确保软件质量的有效方法也越来越被学术界和工业界所重视。基于语句覆盖的测试方法,如语句、分支覆盖等,即使达到了100%覆盖率,也无法确保100%检测出程序所含故障。为解决该问题,人们提出了一种高故障检测率方法,主要思想是使用变异测试方法来检测语句覆盖无法检测出的那一部分故障。本文完成了该框架中:去除冗余的变异算子、面向数值型变异体的值域分析和设计实现了高度可扩展的变异系统三个主要部分,并对整体检测效果进行了实验。此外,故障定位也是测试总体流程中承上启下重要的一环,现有基于程序执行频谱的方法,受偶然正确性用例等影响,而基于变异的故障定位方法则可以避免这一类噪音的影响。本文提出一种基于变异测试的去算子敏感性的故障定位方法。本论文依托国家自然科学基金重大研究计划“代码自动化覆盖测试的关键技术研究与系统研发”(课题编号:91318301)、国家自然科学基金项目“基于抽象内存模型的复杂类型测试用例生成方法研究”(课题编号:61202080)、国家高技术研究发展计划(863计划)“网构化软件协同生产和运行演化集成平台及服务环境”(课题编号:2012AA011201)和中国博士后科学基金(2015M581032)开展研究。本文将变异测试这一有效的测试方法,分别结合到高故障检测和故障定位两个测试领域。本文以提升高故障检测率方法的效率和精度、提升基于变异的故障定位的精度为目标,具体研究内容包括:(1)基于程序上下文的冗余变异体选择方法高故障检测率方法的目标是寻找一个小的变异体集合,该集合相对覆盖用例集是难测的。但变异测试可以生成海量的变异体,会大大提升测试成本和分析难度。因此,高故障检测率方法首先要去除冗余变异体,来降低测试成本。该部分工作贡献有:本文提出了一种基于程序上下文的冗余变异体选择方法,来降低变异测试成本。针对程序中的顺序语句所产生的变异体,基于故障的可达-感染-传播模型,提出了使用区间抽象域来表示程序状态,通过区间运算判断变异体之间冗余关系的算法;针对程序中的条件语句,基于谓词故障层级,分别给出了面向简单谓词和复合谓词的冗余变异体选择算法。并对这两种算法对冗余变异体的判定效果进行了分析,最后给出了在分层抽样背景下,非冗余变异体生成的约束边界条件。对Siemens和开源项目等共8个工程进行了实验,并与随机选择法进行了对比。结果表明,本文所提方法在减少变异测试时间成本的同时,可以保持较高的变异得分。(2)变异分析中基于仿射运算的变异体值范围分析方法高故障检测率方法将对非冗余变异体进行分析,选取难测故障集,分析过程涉及变异分析和变异测试用例生成等。其中,对数值型变异体的分析是一个重要的环节。这是因为在国防、航天、金融等关键领域所使用的计算机软件中,许多物理属性是通过数值变量来描述的,一些核心业务也是通过对这些变量进行数值计算来完成的。为寻找这些程序中难测故障,就需要对数值变量进行分析,计算结果的精度会直接影响高故障检测率方法的准确度。目前变异测试已有研究并未对数值型变异体采取优化分析,只是按字表含义进行简单的值域划分;或是使用了初级的精度不高的区间运算,严重影响了整体精度。该部分工作贡献有:本文在基于路径的程序分析背景下,结合变异测试的自身特点,使用精度更高的仿射运算来代替区间运算,给出了一种基于仿射运算的变异体值范围分析方法,给出了抽象域的定义、抽象语句的操作并描述了所支持的具体语义。提出了具体程序语句的预处理算法、具体语义向抽象语义的转化和变异约束的处理及仿射运算规则等。该方法作为变异测试/分析的前端处理模块,是难测故障分析的基础,是数值型难测故障分析的前置条件,可为其提供更加紧凑精确的输入域,以提升变异测试/分析的总体精度。此外,为验证本文方法整体的高故障检测率,进行了两组实验,分别使用了开源的TCASP和5个benchmark函数,实验结果表明:本文方法对条件型变异体,最高可以检测传统覆盖方法无法检测的故障的93.8%。对数值型变异体,平均可以检测78.5%传统覆盖方法无法检测的故障。(3)去算子类型敏感性的基于变异测试的故障定位方法随着变异测试研究的不断深入,人们发现除其自身的高故障检测率,和其他测试领域结合仍产生了不错的效果,如基于变异的故障定位等。基于变异的故障定位作为一种新出现的软件故障定位方法,相比基于程序频谱的定位方法,一定程度上克服了偶然正确用例带来的噪音问题,但现有的基于变异的故障定位未考虑变异算子类型敏感性问题,即随机使用算子会导致结果有很大的波动。该部分工作贡献有:为提升基于变异的故障定位效果,本文给出一种精度更高的基于变异测试的故障定位方法。具体的,针对关系变异算子、逻辑变异算子和值相关变异算子分别提出了算子选择算法。这种针对程序上下文进行的变异算子选择方法,可以一定程度上缓解使用随机算子所带来的定位不准确问题。使用两组疑似度计算公式对六个SIR开源程序和11个Linux实际程序进行了实验,结果表明本文所提方法可以缓解随机算子带来的算子类型敏感性问题,提升基于变异测试的故障定位方法的定位精度。(4)具有高可扩展性的变异测试系统为支持上述高故障检测率和基于变异的故障定位方法,设计实现了一款具有高可扩展性的变异测试系统。该部分工作贡献有:本系统针对现有C语言变异测试工具的算子类型不易扩充、自动化程度较低、对实际工程支持有限等问题进行研发,具体由故障注入、故障模型、批量执行与结果分析四个模块组成。使用自然的抽象语法树结构来表示变异体,具有高度的可扩展性;给出了针对循环体、字符串函数、数学计算函数和复杂数据结构的变异算子扩展方法,并可自定义更为丰富的变异算子,扩大变异测试的故障检测范围。使用实际开源项目中的程序,和其他故障注入工具进行实验对比,本系统具有更佳的测试效果。
【学位单位】:北京邮电大学
【学位级别】:博士
【学位年份】:2018
【中图分类】:TP311.53
【部分图文】:
试、嵌入式软件测试、Web应用测试、移动APP软件测试和云计算应逡逑用测试、大数据应用测试和人工智能应用测试。逡逑具体的如图1-1所示。但也要注意软件测试是一个发展迅速的研宄领域,新逡逑的技术层出不穷,本图只能孔窥一二。逡逑2逡逑

tjv邋m邋mi邋c逦m邋ia邋m邋ijv逡逑图1-1软件测试研究领域逡逑1.2研究原因逡逑1.2.1高故障检测率相关问题逡逑上述经典的覆盖测试方法可以一定程度上检测出程序中的故障,但存在检测逡逑能力有限等不足之处。逡逑据相关实验和工程经验,满足语句、分支准则的用例集只能检测出大约80%逡逑故障,约苻20%故障是无法检测出来的[1]。如下例:只打川例&=6时,才可以检逡逑测该故障。如{a=0;a=l邋6}虽然满足该语句的100%分支覆盖,但无法检测出该故逡逑障。高故障检测率方法中,称这类故障为“难测故障”。逡逑表1-1逦程序例子及其生成的变异体逡逑逦源程序逦W逦逡逑逦a<6逦邋a<=6逡逑而另一方面,和经典的测试方法相比,变异测试是一种基于故障的测试方法,逡逑具有更高的故障检测能力。通过选择变异算子集合,变异测试可以模拟一些“特逡逑殊”或“难测”的故障

逦北京邮电大学工学博士学位论文逦逡逑面向C语言的变异测试系统,该系统同时也是前述章节的支持平台。第七章对逡逑前文进行了总结并展望了未来工作。各章节组织架构图如下:逡逑
【相似文献】
相关期刊论文 前10条
1 陈劲林,杨士元,胡东成;考虑故障检测率的可维修 k/n(G)系统的可靠性研究[J];清华大学学报(自然科学版);1998年03期
2 苏明;张斌;;基于外场数据的飞机PHM系统测试性评估方法[J];电子技术与软件工程;2017年16期
3 温王荣;;通讯设备的可测试性与可靠性分析[J];科技资讯;2011年13期
4 马羚;李海军;王成刚;杨智勇;;考虑换件维修代价的测试优化选择[J];仪器仪表学报;2015年02期
5 孙智;孙建红;李冰月;张雪枫;;基于分层多信号流图的飞机空调系统故障诊断[J];振动.测试与诊断;2018年01期
6 任江涛;蔡远文;史建伟;邢晓辰;;基于马田系统的设备健康监测技术研究[J];计算机测量与控制;2012年03期
7 冯康;;基于试验的试飞阶段检测率验证模型研究[J];飞行力学;2015年04期
8 苏林;尚朝轩;连光耀;王宝龙;;基于故障检测率的主元个数确定方法[J];计算机测量与控制;2011年08期
9 郭基联;邵帅;虞健飞;;飞机PHM系统故障诊断能力外场验证模型[J];空军工程大学学报(自然科学版);2016年03期
10 代西超;南建国;黄雷;黄金科;张超;;基于改进遗传模拟退火算法的测试优化选择[J];空军工程大学学报(自然科学版);2016年02期
相关会议论文 前2条
1 耿少锋;;关于测试性指标分配方法的思考[A];'2010系统仿真技术及其应用学术会议论文集[C];2010年
2 张士刚;胡政;罗德明;陈颖;罗旭;;基于多信号模型的某惯测组合测试性分析与改进[A];2008中国仪器仪表与测控技术进展大会论文集(Ⅱ)[C];2008年
相关博士学位论文 前3条
1 钱茛南;高故障检测率与故障定位技术研究[D];北京邮电大学;2018年
2 雷华军;电子系统测试方案优化设计理论与关键技术研究[D];电子科技大学;2015年
3 朱敏;电子系统内建自测试技术研究[D];哈尔滨工业大学;2010年
相关硕士学位论文 前10条
1 陈言;农田灌溉系统关键装置分布及性能检测[D];黑龙江八一农垦大学;2018年
2 徐雯;基于事件驱动软件的混合测试准则[D];上海师范大学;2014年
3 张荷;基于PU学习的软件故障检测方法研究[D];西北农林科技大学;2015年
4 RUKUNDO Olivier;基于蚁群算法的模拟电路测试模式优化[D];华中科技大学;2009年
5 杨兴霁;系统可测性分析与辅助设计软件总体设计及关键模块实现[D];电子科技大学;2011年
6 楚向磊;降低虚警的故障模糊聚类方法研究[D];南京航空航天大学;2007年
7 廖恒;基于多信号模型的系统可测性设计分析研究与实现[D];电子科技大学;2016年
8 蒋春萍;NHPP类软件可靠性度量方法研究[D];兰州理工大学;2010年
9 蔡坚;计算机硬件电路可测试性设计与自动测试的实现[D];西北工业大学;2003年
10 吕珊珊;某电子控制系统自动测试系统开发及SRAM内建测试方法研究[D];北京交通大学;2017年
本文编号:
2807583
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2807583.html