当前位置:主页 > 科技论文 > 软件论文 >

基于变异技术的测试用例自动生成及优化

发布时间:2021-06-14 06:54
  软件测试是一种通过触发软件中存在的缺陷来提高软件质量的技术,其核心关键是寻找一种合适的方法来获得具有优良的纠错能力的高质量测试用例集。变异测试是基于缺陷植入的一种测试技术,它不仅可以作为评价测试用例的标准,还能在生成测试用例的过程中指导生成高质量测试用例集合。但是,现有变异测试技术存在众多的变异算子,使用众多变异算子会呈指数级地生成相应数量的变异体,从而导致昂贵的测试代价,严重影响了将这一技术用于实际的测试活动中。因此,降低现有的变异测试代价是非常有必要的。通过在不影响变异得分的情况下约简变异算子集合,有助于提高生成测试用例的效率。本文基于变异研究新的测试用例生成方法,从而能够得到较短测试用例长度、较高测试覆盖率、较高变异得分、较强Bug检测能力的测试用例最优集。首先,针对变异体数量的问题,本文提出一个基于Selective Mutation的变异算子选择策略。从变异测试常用工具Mujava的19个变异算子中,选择出一个变异算子子集。该子集仅包含5个变异算子AOIU、AOIS、ROR、AORS、AORB,使用该子集获得的测试用例能够在全集的变异体上获得95%以上的平均变异得分。因此,使... 

【文章来源】:西南科技大学四川省

【文章页数】:56 页

【学位级别】:硕士

【部分图文】:

基于变异技术的测试用例自动生成及优化


变异测试流程图

变异算子,操作过程


西南科技大学硕士学位论文10写出的有缺陷代码与正确代码的在重要部分都完全一致,仅因为疏忽造成了一些编码失误导致了小bug(不考虑代码的逻辑错误)。基于这个理论,变异测试使用变异算子的作用来代替程序员实际可能会犯的错误。耦合效应假设则为若一个测试用例可以检测出简单bug,则该用例也具有检测到更复杂的bug的能力。把通过改变程序的语法来生成变异体的操作称为变异算子(mutantoperators),它定义了如何将语法变化引入到程序之中。例如,算术变异算子改变程序语法时,例如将+改为-(如图2-2)。Offutt和King于1987年对Fortran77首次提出了22种变异算子,这些变异算子的简称和描述如表2-1所示。在随后的研究人员对变异算子的设定中都将这组22个变异算子作为基础变异算子。图2-2一个变异算子的操作过程表2-1F77定义的常用22种变异算子图2-1中的等价变异体指的是在语义上等同于原始程序的变异体。通过去除这些无用类型的变异体,能够获得了两个重要的好处:首先,降低了执行变异所需的效率,其次,提高了变异分数测量的准确性。一个简单的等价变异体如图2-3所示。变异算子描述变异算子描述AAR数组引用替代GLRGOTO标签替代ABS插入绝对值LCR逻辑运算符替代ACR数组引用替代常量ROR关系运算符替代AOR算术运算符替代RSRReturn语句替代ASR数组引用替代变量SAN语句分析CAR常量替代数组引用SAR变量替代数组引用CNR数组名替代SCR变量替代常量CRP常量替代SDL语句删除CSR常量替代变量SRC源常量替代DERDo语句修改SVR变量替代DSADATA语句修改UOI一元操作符插入

基于变异技术的测试用例自动生成及优化


等价变异体


本文编号:3229303

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3229303.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户78b49***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com