[发明专利]一种面向对象的类测试数据生成方法在审
申请号: | 201510698908.9 | 申请日: | 2015-10-24 |
公开(公告)号: | CN105243018A | 公开(公告)日: | 2016-01-13 |
发明(设计)人: | 康一梅;康妍 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明;顾炜 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 对象 测试数据 生成 方法 | ||
1.一种面向对象的类测试数据生成方法,其特征在于:包含如下步骤:
步骤一、分析被测程序获取类定义信息和类继承关系图,构建对象抽象存储模型;
步骤二、依据类成员方法逻辑信息,创建类成员方法与对象抽象存储模型的语义映射,生成类成员方法的方法摘要信息;
步骤三、依据函数流程图和函数调用关系图,生成程序逻辑路径集合;
步骤四、采用静态符号执行方法,执行所述程序逻辑路径集合中的一条路径,收集类成员约束集;
步骤五、通过约束求解器求解所述类成员约束集,生成类成员可能值并调用构造方法,生成一组类测试数据;此时若程序逻辑路径集合不为空,返回步骤四执行。
2.根据权利要求1所述的面向对象的类测试数据生成方法,其特征在于:步骤一中所述类定义信息包含类权限定义信息、类成员变量定义信息、类成员方法定义信息、类成员方法实现定义信息;所述类继承关系图是描述多个类之间存在的继承关系;所述对象抽象存储模型是用以对类对象存储状态进行建模,该模型包含以下内容:对象地址编号、对象成员变量、对象成员方法函数方法信息、对象指针标识和对象成员约束集合;所述对象地址编号顺序递增,并且包含一个特殊地址编号,空指针地址编号;所述对象成员变量包含因多继承导致的隐藏成员变量,且该成员变量为递归定义,对象成员变量包含变量存储地址编号、变量名称,变量类型信息。
3.根据权利要求1所述的面向对象的类测试数据生成方法,其特征在于:步骤二所述方法摘要信息是用来描述类成员方法对类对象其他成员对象和外界对象的影响;包括但不限于赋值、拷贝、计算;其生成方法输入为类成员模型、函数继承信息、方法参数和函数流程图,输出为依据不同路径而生成的类成员操作集。
4.根据权利要求1所述的面向对象的类测试数据生成方法,其特征在于:步骤三所述函数调用关系图为除环调用图,除环调用图的除环方法为:依据函数调用顺序,删除递归调用和隐式递归调用;所述函数流程图由结构化语句组成,符合数据结构图类结构合操作;所述程序逻辑路径集合由程序逻辑路径组成,采用程序切片的方法生成;具体解释为:程序切片是将函数流程图中结构化语句切分为语句基本单元,由语句基本单元组成函数流程图节点,遍历函数流程图获得程序逻辑路径集合。
5.根据权利要求1所述的面向对象的类测试数据生成方法,其特征在于:步骤四所述约束为所述约束集的单元组成部分,约束定义为类成员变量应满足的表达式,可分类为由一元表达式描述、由二元表达式描述和由该两种表达式组合描述。
6.根据权利要求1所述的面向对象的类测试数据生成方法,其特征在于:步骤四所述静态符号执行方法,是依次处理所述程序逻辑路径;处理方法为依据方法摘要信息识别语法单元的语义内容,并将语义内容作为约束记录在所述对象抽象存储模型中。
7.根据权利要求1所述的面向对象的类测试数据生成方法,其特征在于:步骤五所述构造方法是类定义中一类特设构造方法,采用递归设计,会覆盖类及其所有父类,目的是为测试数据组装提供通路。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510698908.9/1.html,转载请声明来源钻瓜专利网。