[发明专利]一种面向对象的类测试数据生成方法在审
申请号: | 201510698908.9 | 申请日: | 2015-10-24 |
公开(公告)号: | CN105243018A | 公开(公告)日: | 2016-01-13 |
发明(设计)人: | 康一梅;康妍 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明;顾炜 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 对象 测试数据 生成 方法 | ||
技术领域
本发明属于计算机软件测试领域,尤其涉及一种针对面向对象语言的类测试数据生成方法。
背景技术
面向对象软件的信息隐蔽、封装性、继承性、多态性和动态绑定等特性提高了软件的可重用性,使软件开发更快、质量更高,而且软件易于维护、易于修改,通过组装可复用子系统而产生更大的系统。但是另一方面,它却给软件测试带来了更多的困难。尤其是如何采用自动化的方法来生成面向对象的测试数据,已成为软件测试者们所面临的挑战。目前国内针对面向对象的测试数据多采用人工方式或计算机辅助方式生成测试数据,这类测试数据生成方式无法解决面向对象语言测试数据的封装性、继承性和多态性;这类方法会导致测试数据生成需要大量时间,测试效率低下;同时对软件测试人员的专业性要求高,还要求测试人员对测试软件很熟悉;以上两点导致测试效果可信度很低。
本发明提供一种面向对象的类测试数据生成方法,该方法主要针对类的封装和继承两大特性,利用对象抽象存储模型描述和记录类的成员变量在程序运行过程中的数据变迁,可自动化生成类对象测试数据;且生成的测试数据可以对测试程序逻辑路径进行全覆盖,符合测试用例等价类划分原则,数据代表性高。综上所述,该面向对象的类测试数据生成方法可以在一定程度上提高测试数据的生成效率和测试的自动化程度。
发明内容
本发明的主要目的是在于提供一种面向对象的类测试数据生成方法,该方法能够按照给定的待测试软件项目,针对被测程序生成最大限度覆盖所有可执行路径的对象测试数据集合,为具体的软件测试项目提供基础数据,从而提高软件测试的效率与自动化程度。
为了达到上述目的,本发明的方法包含如下步骤:
步骤一、分析被测程序,获取面向对象语言的类定义信息及继承关系图并构造类抽象存储模型。
类定义信息描述类定义中所确定的逻辑信息,它包含类权限定义信息、类成员变量定义信息、类成员方法定义信息、类成员方法实现定义信息;
类继承关系图是为描述类的继承关系而生成;面对存在单继承和接口实现的语言,类继承关系图只考虑单继承获得的父类成员对象和成员方法;面对多继承语言,类继承关系图需要依次考虑其父类成员对象和成员方法。
类抽象存储模型的目的是在后期静态符号执行步骤中,精准记录路径的类成员约束条件。该模型包含以下内容:
1.对象地址编号:该地址编号顺序递增,其中包含两个特殊地址编号,空指针地址编号和野指针地址编号;
2.对象类型名称:主要指类名称;
3.对象成员变量:主要指类定义中包含的成员变量,包含因多继承导致的隐藏成员变量。它内容包含变量名称和变量值。如果该成员变量依然为类对象,则该成员变量为递归定义,其变量值为指向的地址编号;
4.对象成员方法的方法摘要信息;
5.对象指针标识:标识该对象是否为指针对象;
6.对象成员约束集合:该约束集合内容包含两类,一类是赋值约束,另一类是判断约束;
步骤二、依据所述类成员方法函数流程图,对类成员方法调用建立与对象抽象存储模型的语义映射,生成类成员方法的函数方法信息。
方法摘要信息是用来描述类成员方法对类对象其他成员对象和外界对象的影响;包括但不限于赋值、拷贝、计算;其生成方法输入为类成员模型、函数继承信息、方法参数和函数流程图,输出为依据不同路径而生成的类成员操作集。
步骤三、依据所述待函数流程图描述的测试程序执行逻辑,生成精简后的程序逻辑执行路径集合。
程序逻辑执行路径可以清晰的描述程序执行逻辑,它采用程序切片的方法生成;具体解释为:将函数流程图中结构化语句切分为语句基本单元,由语句基本单元组成函数流程图节点,采用图遍历方法遍历函数流程图获得程序逻辑路径集合。
步骤四、以所述程序逻辑路径为输入,进行静态符号执行操作,收集类成员约束集。
静态符号执行方法,是指在不执行程序的前提下,用符号值表示程序变量的值,然后模拟程序执行来进行相关分析的技术。在类测试数据生成方法中,它以对象抽象存储模型为辅助,以程序逻辑路径为输入,依据方法摘要信息识别程序逻辑路径中语法单元的语义内容,并将语义内容作为约束记录在所述对象抽象存储模型中;由对象抽象存储表收集类成员约束信息。
步骤五、通过约束求解器求解所述类成员约束集,生成类成员可能值;并调用特定构造方法,生成符合可执行所述函数逻辑路径的类测试数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510698908.9/2.html,转载请声明来源钻瓜专利网。