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

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

1.一种xUnit框架下面向对象软件中测试目标的自动化选择方法,其特征在于包含以下步骤:

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

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

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

2.根据权利要求1所述的xUnit框架下面向对象软件中测试目标的自动化选择方法,其特征在于,步骤1)具体过程为:首先获取被测软件的源代码,解析其中所有的类(Class);然后以每一个类为单位,根据类定义和类方法实现,分析类之间的依赖关系,确定类之间的关联;最后将解析出的类映射为节点,关联映射为有向边,构建类依赖图,该依赖图为简单的有向图。

3.根据权利要求2所述的xUnit框架下面向对象软件中测试目标的自动化选择方法,其特征在于,任意两个类之间的依赖关系定义分6种情况,假设给定两个不同的类c1和c2:

情况1.类c1继承(inherit)或实现(implement)了类c2;

情况2.类c1中的一个或多个域变量(field)的定义类型是类c2;

情况3.类c1中一个或多个方法(method)的返回值类型是类c2;

情况4.类c1中某一个方法的一个或多个参数(parameter)类型是类c2;

情况5.类c1中某一个方法的实现中,存在一个或多个局部变量(variable)的定义类型是类c2;

情况6.类c1中某一个方法的实现中,调用了类c2中的一个或多个方法;

如果存在这6种依赖关系之一,则定义两个类之间的关联<c1,c2>;类之间的关联是有向的,<c1,c2>和<c2,c1>是两个不同的关联。

4.根据权利要求1、2或3所述的xUnit框架下面向对象软件中测试目标的自动化选择方法,其特征在于,步骤2)具体过程为:首先根据测试需求设定关键节点集的规模,然后计算每一个节点的关键度指标κ,为从该节点出发,两跳可达集内的节点数量;接下来开始迭代,每次选择一个关键节点,直到选择出符合前述规模的足够数量的关键节点为止;最后将所选关键节点对应的类输出为关键类集合。

5.根据权利要求4所述的xUnit框架下面向对象软件中测试目标的自动化选择方法,其特征在于,一次迭代选择一个关键节点的处理流程是:考虑已经被选中的节点,计算候选节点关键度指标的折扣值δ;给定候选节点vi,令两跳可达集内已被选中的节点数量是ti1,同vi直接相邻的父节点中已被选中的节点数量是ti2,前述父节点定义为终止节点为vi之有向边的起始节点;令p为影响概率;节点vi的折扣值δi计算如下:

δi=ti1+(κi-ti1)×ti2×p

候选节点的权重w定义为关键度指标和折扣值的差,即节点vi的权重wi的计算如下:

wiii

根据节点权重,找出候选节点中权重最大的节点,作为本次迭代所选择的关键节点。

6.根据权利要求5所述的xUnit框架下面向对象软件中测试目标的自动化选择方法,其特征在于,步骤3)过程为:对于关键类集中的每一个关键类,首先根据关键类中的每一个公共方法(public)编写对应的测试方法;然后采用随机测试或符号执行方法达到既定的测试覆盖要求。

7.根据权利要求6所述的xUnit框架下面向对象软件中测试目标的自动化选择方法,其特征在于,达到既定的测试覆盖的具体过程为:当给定关键类c1,要求对以c1为起始节点的所有关联覆盖至少n次,n根据测试需求和测试成本决定;如果关联对应不止1个依赖关系,则要求对所有相应的依赖关系覆盖至少1次;达到测试覆盖要求,所有关键类处理完毕后,在xUnit框架支持下执行测试用例,完成自动化测试。

8.根据权利要求7所述的xUnit框架下面向对象软件中测试目标的自动化选择方法,其特征在于对类之间关联的覆盖,由类之间的依赖关系决定,对应依赖关系的6种情况;给定关联<c1,c2>,关联覆盖定义如下:

情况1.对类c1进行实例化;

情况2.对类c2实例化,赋予类c1中相应的域变量(field);

情况3.执行类c1中的相应方法,返回非空(null)的类c2对象实例;

情况4.对类c2实例化,在调用类c1中相应方法时,赋予类型为c2的参数;

情况5.对类c2实例化,赋予类c1相应方法实现中类型为c2的局部变量;

情况6.调用类c1中的相应方法,执行其中的针对类c2方法的调用语句。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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