[发明专利]一种面向对象软件的类簇测试方法有效
申请号: | 201610021303.0 | 申请日: | 2016-01-13 |
公开(公告)号: | CN105528296B | 公开(公告)日: | 2018-10-23 |
发明(设计)人: | 于海;王莹;朱志良;赵玉丽;张伟 | 申请(专利权)人: | 东北大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 沈阳东大知识产权代理有限公司 21109 | 代理人: | 胡晓男 |
地址: | 110819 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种面向对象软件的类簇测试方法,将待测试软件系统构建为有向环路网络;遍历有向环路网络中的所有类节点计算测试重要度;遍历有向环路网络中的所有强连通分量,计算各环路中的各条边所对应的测试桩复杂度;对环路中的每一条边赋予权值并进行移除环路操作;生成类级集成测试序列对待测试软件系统进行类簇测试。本发明将软件系统中容易出错的类以及发生错误后波及范围较大的类视为重要测试节点,将类的复杂性和类的错误传播影响力结合起来,以尽早发现软件缺陷和有效控制错误的传播范围为测试目标,结合类的测试重要度打破软件系统网络的环路,生成集成测试序列,既保证测试重要度值高的节点优先被测试,又降低了测试桩总体复杂度。 | ||
搜索关键词: | 一种 面向 对象 软件 测试 方法 | ||
【主权项】:
1.一种面向对象软件的类簇测试方法,包括:步骤1:以类为节点、以类间依赖关系为边,将待测试软件系统构建为有向环路网络;步骤1.1:读取待测试软件系统编译后的jar包,通过扫描分析语法分析树结构,导出存储待测试软件系统的类间依赖关系的XML文件;步骤1.2:从XML文件中解析出待测试软件系统中类、模块、接口、函数、属性以及它们之间的依赖关系,过滤掉XML文件中包含的Java虚拟机中的工具类及方法,只保留待测试软件系统自身的类;步骤1.3:构建以类为节点、类间关系为边的有向环路网络;步骤2:遍历有向环路网络中的所有类节点,根据每个类节点的拓扑结构特征计算描述该类节点的复杂程度与影响程度的测试重要度;所述步骤2按如下步骤进行:步骤2.1:遍历有向环路网络中的类节点,计算描述类节点的复杂程度的复杂性因子和描述类节点的影响程度的影响因子;所述复杂性因子为类节点代码容量与由类间调用关系而引入的复杂性指标的加权和;所述影响因子为与类节点及与其存在依赖关系的各类节点所形成的所有路径上各条边的传播概率之和的均值;步骤2.2:对复杂性因子和影响因子进行加权求和得到当前类节点的测试重要度;步骤2.3:若有向环路网络中的所有类节点的测试重要度值都已得到,则执行步骤3,否则返回执行步骤2.1;步骤3:遍历有向环路网络中的所有强连通分量,计算各强连通分量内各环路中的各条边所对应的测试桩复杂度,即为该条边的起始类节点模拟终止类节点构造的测试桩的难易程度;步骤4:对环路中的每一条边赋予权值,并进行移除环路操作,将有向环路网络变成无环路网络;步骤5:对无环路网络中存在依赖关系的类节点按照类节点的最大依赖深度值升序排序,最大依赖深度相同的类节点按照测试重要度值的降序排序,无环路网络中的孤立类节点随机排在最后,从而生成类级集成测试序列;所述最大依赖深度的定义为无环路网络中经过每个类节点的所有依赖路径对应的依赖深度的最大值;无环路网络中依赖路径经过的某类节点的所对应的依赖深度为该类节点到依赖路径终止类节点的距离加1;步骤6:按照类级集成测试序列对待测试软件系统进行类簇测试;其特征在于,所述步骤2.1,包括:步骤2.1.1:扫描分析当前类节点Ci的源代码信息,统计该类节点内部使用过的操作符个数ηi和操作数个数
以及使用这些操作符和操作数的总次数Ni,根据公式(1)求出当前类节点的代码容量VLi;
步骤2.1.2:由步骤1.1生成的XML文件,解析出当前类节点Ci直接或间接依赖的类节点集合RT,并求出集合RT中每个类节点的代码容量;查找出当前类节点Ci到任意类节点Cj∈RT的所有路径集合
及其路径上每条边的传播概率pk,定义如下,
式中,FECm→Cn表示该条边的起始类节点Cm中调用类节点Cn中的属性或方法的总数,FEm表示类节点Cm中方法和属性的总数;利用上述信息计算当前类节点Ci中由于类节点间调用关系而引入的复杂性指标CKi,定义如下:
式中,VLk'表示类节点Ck∈RT的代码容量VLk归一化后的结果;EPik表示类节点Ci到Ck∈RT的任意路径ptik∈Pathij中包含的边总数;步骤2.1.3:结合当前类节点Ci的代码容量以及由于类节点间调用关系而引入的复杂性指标,根据公式(4)求得当前类节点的复杂性因子CFi,复杂性因子CFi为类节点代码容量与由类节点间调用关系而引入的复杂性指标的加权和;CFi=α×VLi′+β×CKi (4)其中,α+β=1;影响因子为与类节点及与其存在依赖关系的各类节点所形成的所有路径上各条边的传播概率之和的均值;根据公式(5)求出当前类的影响因子IFi:
步骤4中所述对环路中的每一条边赋予权值,具体是根据边经过的环路总数、起始类节点的测试重要度值及该条边所对应的测试桩复杂度,分别对环路中的每一条边赋予权值。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610021303.0/,转载请声明来源钻瓜专利网。