[发明专利]xUnit框架下面向对象软件中测试目标的自动化选择方法有效

专利信息
申请号: 201310146574.5 申请日: 2013-04-24
公开(公告)号: CN103309805A 公开(公告)日: 2013-09-18
发明(设计)人: 顾庆;陈道蓄 申请(专利权)人: 南京大学镇江高新技术研究院
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 江苏圣典律师事务所 32237 代理人: 贺翔
地址: 212000 江苏省镇*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: xunit 框架 面向 对象 软件 测试 目标 自动化 选择 方法
【说明书】:

技术领域

发明涉及面向对象软件的自动化测试中,关键测试目标的识别和选择、以及测试用例设计问题;特别针对xUnit框架,以对象类为测试目标,在大量的对象类中选择出关键的测试目标集合,据以设计测试用例,提高软件测试性能和效率。

背景技术

xUnit框架又称为单元测试框架,最初用于设计单元测试工具SUnit,测试面向对象编程语言SmallTalk所编写的软件。其后制作者将SUnit移植到Java语言,开发出著名的Java软件单元测试框架JUnit。随着JUnit的成功应用和推广,xUnit框架被广泛用于设计和开发各种编程语言的单元测试工具,其中包括AUnit、CUnit和CppUnit等,分别对应Ada语言、C语言和C++语言等。xUnit框架还推广到Python、JavaScript、以及PHP等脚本语言。虽然被称为单元测试框架,但是xUnit框架的功能并不局限于单元测试,可以拓展到集成测试甚至系统测试。目前xUnit框架已成为测试驱动开发理念的重要支持设施之一。

按照xUnit框架要求,测试人员或者开发人员编写可以自动运行的测试用例(TestCase)。每一个测试用例针对一个测试目标;例如JUnit中的一个TestCase类对应被测Java软件的一个对象类。测试用例中包含多个测试方法(TestMethod),针对测试目标中的组成元素;例如JUnit中TestCase类的每一个TestMethod方法对应Java类中定义的一个或多个方法。测试方法是最基本的执行单元,其中的重要成分是断言(Assertion),用于判定测试用例执行是通过还是未通过。测试断言根据测试目标的状态来设定谓词条件,测试时基于谓词条件的判定值决定测试结果。多个测试用例组合在一起构成测试用例集(TestSuite)。xUnit框架以测试用例集为单位调度和执行测试用例,其中需要编写测试代码构建测试环境(TestContexts),主要完成多个测试目标的实例化和初始化。xUnit框架为测试人员和开发人员的有效合作提供便利,能够提升软件测试自动化程度,减少软件测试的时间和成本。

目前软件自动化测试技术主要分三大类,分别是随机测试、基于搜索的测试、以及符号执行。其中随机测试技术通过随机地选择函数/过程/方法调用序列和随机确定输入参数值来生成测试用例;可以增加测试用例的多样性并保证测试结果的无偏性,但是不能保证软件测试的覆盖率,使得软件缺陷检测的几率过低。基于搜索的测试将待覆盖的测试目标转换为目标函数,例如代码距离等;采用启发式搜索方法,例如遗传算法、模拟退火等,搜索确定输入参数值,进而生成测试用例。符号执行技术将软件中的变量转换为符号变量,将待覆盖的测试目标转换为路径表达式,即路径上分支谓词的组合;通过求解路径表达式生成对应的测试用例。这些自动化测试方法都需要考虑测试目标的设定问题。对于较大规模的计算机软件,测试目标动辄上千,各个测试目标之间的依赖关系复杂;针对一个测试目标设计的测试用例,通常能够覆盖与其关联的其他测试目标。另一方面,测试时间和成本有限,测试用例生成数量受到限制,不可能对所有测试目标设计和执行测试用例。有鉴于此,需要考虑测试目标的合理选择问题:不应对所有测试目标一视同仁,而应该确定测试目标的优先级和排序,选择关键测试目标集来设计和执行测试用例。

发明内容

本发明所要解决的技术问题是提供一种xUnit框架下面向对象软件中测试目标的自动化选择方法,该方法是在xUnit框架下对面向对象软件实施自动化测试时,选择关键测试目标集,并据以设计测试用例;从而以较少的测试用例数量达到较高的软件测试覆盖率,提高软件缺陷检测的几率,使得自动化测试更具有导向性和目的性;有效提高软件测试的性能和效率。。

本发明所述的一种xUnit框架下面向对象软件中测试目标的自动化选择方法,其包含以下步骤:

1)基于xUnit框架,以被测软件中的对象类作为测试目标;通过分析对象类之间的依赖关系构建类依赖图;

2)根据类依赖图和测试需求,基于节点的两跳可达集,选择影响范围最大的关键节点集合;

3)将关键节点集合映射为关键类集合,以关键类集合中的对象类作为测试目标,再按照xUnit框架设计和执行相应的测试用例。

上述步骤1)具体过程为:首先获取被测软件的源代码,解析其中所有的类(Class);然后以每一个类为单位,根据类定义和类方法实现,分析类之间的依赖关系,确定类之间的关联;最后将解析出的类映射为节点,关联映射为有向边,构建类依赖图,该依赖图为简单的有向图。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学镇江高新技术研究院,未经南京大学镇江高新技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310146574.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top