[发明专利]一种冗余变异体识别方法有效
申请号: | 201710329693.2 | 申请日: | 2017-05-11 |
公开(公告)号: | CN107247663B | 公开(公告)日: | 2020-05-08 |
发明(设计)人: | 孙昌爱;郭新玲 | 申请(专利权)人: | 北京科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市广友专利事务所有限责任公司 11237 | 代理人: | 张仲波 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 冗余 异体 识别 方法 | ||
本发明提供一种冗余变异体识别方法,能够减少变异测试过程中变异体的执行时间。所述方法包括:比较变异体与待测程序源代码,获取每个变异体的变异位置及变异内容,确定每个变异体所属的块类别;对待测程序源代码进行数据流分析,获取待测程序的数据流信息,结合获取的待测程序的数据流信息,对获取的每个变异体的变异内容上的变量进行分析,确定变异体的变异类型;其中,所述数据流信息包括:每个变量的定义‑使用链;根据确定的变异体所属的块类别和变异体的变异类型,按照预先定义的冗余变异体识别规则,分析待测程序的每条定义‑使用链,获取满足冗余变异体识别规则的变异体并标记为冗余变异体本发明涉及软件技术领域。
技术领域
本发明涉及软件技术领域,特别是指一种冗余变异体识别方法。
背景技术
软件测试的一个根本问题是如何通过较少的测试用例尽可能地检测出软件中潜藏的各种故障。软件测试的实践表明,要想找出程序中潜藏的所有故障几乎是不可能的(即完全充分性测试),一种较为可行的办法是尽可能的缩小故障的搜索范围,以便于专门测试某类故障是否存在(相对充分性测试),为此人们提出了基于故障的软件测试。
变异测试是一种基于故障的测试技术。变异测试的基本思想是:测试人员首先根据待测程序的特征向其程序代码中植入各种类型的故障,产生大量的错误程序。产生的一个错误程序称为待测程序的一个变异体,用来模仿某种故障的操作称为“变异算子”,变异算子一般在符合语法前提下仅对待测程序作微小改动。如果执行某个测试用例导致一个变异体与待测程序产生不同的结果,那么称该变异体被“杀死”,即与该变异体相关的故障能够被检测出来,反之称该变异体“存活”。若不存在任何测试用例,使在某一变异体与待测程序上的执行结果不同,则称该变异体为待测程序的一个等价变异体。针对给定的测试用例集,能够“杀死”的变异体数量占所有产生的非等价变异体数量的百分比,称为该测试用例集合的“变异得分”。变异得分可以定量的评估测试用例集的质量,变异得分越高,说明测试用例集杀死的变异体越多,其检测故障的能力越强。
变异测试又称为变异分析,其可行性基于“熟练程序员”假设(通过对待测程序作合乎语法的代码修改,可以模拟熟练程序员的实际编程行为)和“耦合效应”假设(若测试用例可以检测出简单缺陷,则该测试用例也易于检测出更为复杂的缺陷)。变异测试可用于衡量测试用例集的揭错能力,也可以通过 植入错误来系统地模拟被测软件的各种真实缺陷,对已有测试用例集进行辅助评估。变异测试不仅成功应用于C、C#、Java、SQL等不同的编程语言中,开发出了Mothra、Proteum、MuJava、Muclipse等测试支持工具,并成功应用于测试规格说明书和程序模型上。主要应用于单元测试,当前在接口测试、面向对象软件的测试和合约测试等方面都有相关研究进展。研究结果表明,变异测试的故障检测能力强,与手工植入缺陷相比,自动生成的变异体模拟真实软件中的故障效果更佳,具有排错能力强、方便灵活等优点。
尽管如此,作为一种能够有效评估测试用例集质量的技术,变异测试技术并没有广泛应用于工业界,其主要原因如下:变异测试生成的变异体数量庞大且执行时间较长,使得分析过程中的计算开销较大。
发明内容
本发明要解决的技术问题是提供一种冗余变异体识别方法,以解决现有技术所存在的变异体执行时间开销较大的问题。
为解决上述技术问题,本发明实施例提供一种冗余变异体识别方法,包括:
对待测程序源代码进行程序块的划分,根据程序块划分结果生成规则文件;
比较变异体与待测程序源代码,获取每个变异体的变异位置及变异内容,并根据每个变异体的变异位置和生成的规则文件,确定每个变异体所属的块类别;
对待测程序源代码进行数据流分析,获取待测程序的数据流信息,结合获取的待测程序的数据流信息,对获取的每个变异体的变异内容上的变量进行分析,确定变异体的变异类型;其中,所述数据流信息包括:每个变量的定义-使用链;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京科技大学,未经北京科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710329693.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:软件缺陷检测方法及装置
- 下一篇:一种面向开源软件的协同行为测度方法