[发明专利]基于修正条件判定组合覆盖的测试用例生成方法有效
申请号: | 201810450619.0 | 申请日: | 2018-05-11 |
公开(公告)号: | CN108647146B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 牟永敏 | 申请(专利权)人: | 北京信息科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京东方盛凡知识产权代理事务所(普通合伙) 11562 | 代理人: | 宋平 |
地址: | 100083 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于修正条件判定组合覆盖的测试用例生成方法,包括源代码预处理分析、控制树的生成方法分析、基于修正条件判定组合覆盖对控制树的优化、测试用例的生成的步骤。本发明使用修正条件判定组合覆盖准则生成测试用例,对比当前使用的自动化测试工具,该方法能够明显提高软件修正条件判定组合覆盖率,同时在语句覆盖、判定覆盖和简单条件覆盖准则方面也有相对的提高,测试用例少,覆盖率高,在提高软件测试用例的覆盖率方面有明显的优势。 | ||
搜索关键词: | 基于 修正 条件 判定 组合 覆盖 测试 生成 方法 | ||
【主权项】:
1.一种基于修正条件判定组合覆盖的测试用例生成方法,所述的其特征在于,包括以下步骤:步骤1,源代码预处理分析:通过分析源程序,将程序中的所有变量提取出来、并且将控制条件中的涉及到的所有变量都转化为输入变量和常量之间的关系;步骤2,控制树的生成方法分析:首先利用预处理分析后的源代码,通过GCC编译器生成源程序的中间文件,所述的中间文件存储的是源程序中的语句块信息、控制条件信息以及他们之间的关系;然后将上述中间文件中的信息均用行号信息进行替换,然后将替换后的行号信息用字符串进行表示,并存储到一个列表中,也就是将控制树的所有边信息都存储在了一个列表中,将控制树的所有边信息都存储在一个列表中,最后通过处理列表中的边信息,生成一个源程序的控制树;所述的控制树是一个三元组T=(N,E,n0),N表示控制树中所有的结点集,每个结点集由基本块和判定组成,若判定中包含多个条件,则将多条件拆成单个条件,并以‘2_1’表示第二行的第一个条件,用程序中的行号表示结点的编号,如果结点是一个基本块,则用行号最小的编号表示;E表示控制树中所有有向边集合;n0表示程序唯一的入口结点;步骤3,基于修正条件判定组合覆盖对控制树的优化:首先找出多个条件的不同组合,在排除短路情况后,判断每个组合是否符合可执行情况,即是否符合实际情况,如果某个组合不符合实际情况,则去除该组合,然后从剩下的组合中找出符合修正条件判定组合覆盖准则的组合,满足覆盖准则的所有条件,至此,找到基于修正条件判定组合覆盖准则的控制树;所述的修正条件判定组合覆盖准则是同时满足以下几个条件:程序中的每个入口至少进入一次,每个出口至少退出一次;程序中任意判定的所有可能结果都至少出现一次;程序中任意判定的每一个条件的所有可能结果至少出现一次;程序中每一个单条件都能够独立地影响对应判定的结果,即保证在该判定中只改变其中一个条件的结果,而保证其他条件取值结果不变时,能够改变该判定的取值;步骤4,测试用例的生成:结合控制树的优化过程,当给定一条路径之后,将该路径上的所有的控制条件信息都提取出来,通过求解器求解约束得到测试用例;所述的路径是控制树中入口结点到某个叶子结点上的一些不等式和等式的集合,由PC={Pi,Cij,Bij}表示,Pi代表待测函数中的第i条路径;Cij代表第i条路径上的第j个条件,且该条件均表示单个条件;Bij代表第i条路径上的第j个条件的返回值,取值为T、F和NG,NG表示该条件不影响待测函数中此判定的真假,如果执行的某一条路径中的Bij=F,则将该条件取反,再进行求解;如果Bij=NG,则表示不考虑该条件的取值。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京信息科技大学,未经北京信息科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810450619.0/,转载请声明来源钻瓜专利网。