[发明专利]类集成测试中的环路破除方法有效
申请号: | 201510631000.6 | 申请日: | 2015-09-29 |
公开(公告)号: | CN106095661B | 公开(公告)日: | 2018-12-28 |
发明(设计)人: | 张艳梅;姜淑娟;袁冠;王荣存 | 申请(专利权)人: | 中国矿业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 高桂珍 |
地址: | 221000 江苏省徐*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种类集成测试中的环路破除方法,该破除方法包括构建完全对象关系图WORD、统计WORD中环路个数、破除WORD中环路;破除WORD中环路首先需要识别出WORD中由类以及它们之间的依赖关系形成的强连通组件SCCs,然后查找每一个强连通分量SCCi中所有的环路,统计SCCi中每条边所涉及的环路数目,进而将一个有环图破除环路成为一个无环图;该方法较全面地考虑面向对象的特点,如多态性、抽象类不可实例化以及类之间不同的继承关系,即公有继承,保护继承和私有继承这三种不同的继承关系等特点对破除环路的影响,提供了较好的静态依赖关系和动态依赖关系构成的环路中边的删除规则,降低了测试成本,提高了测试的准确度。 | ||
搜索关键词: | 集成 测试 中的 环路 破除 方法 | ||
【主权项】:
1.类集成测试中的环路破除方法,包括:构建完全对象关系图WORD、统计WORD中环路个数、破除WORD中环路;其特征是:破除WORD中环路首先需要识别出WORD中由类以及它们之间的依赖关系形成的强连通组件SCCs,然后查找每一个强连通分量SCCi中所有的环路,统计SCCi中每条边所涉及的环路数目,进而将一个有环图破除环路成为一个无环图;其破除环路规则为:假设λ是无环的ORD,节点A,B,C∈λ,A是B的客户类,B是C的父类,类B既是父类又是服务类,C到A之间有一个依赖关系C→A,A→C和C→A与其它节点都不构成其它新的环路;根据动态依赖关系的定义,存在一条动态依赖关系A→C,使得WORD增加一个环路A→C→A;可以通过以下途径来破除环路:(1)删除A→B,那么A→C随之消失,可以破除环路A→C→A;如果B不是抽象类,则类B可以被实例化,C可以继承类B的数据成员,此时需要为类B,类C,以及C的子类构造测试桩,可能的测试顺序为A,B,C或者B,A,C;如果B是抽象类,则类B不能被实例化,然而,它仍然说明类A所需要的服务,而这个说明仅仅是模拟创建类B的测试桩的一个信息片段,在这种情况下,需要为类B构造测试桩,而且B是抽象类,它不能被实例化,仅测试B是不可行的,应该结合它的子类(类C)的一个实例来测试,因此,测试顺序为A,BC;(2)删除C→A可以破除环路A→C→A;当B不是抽象类时,需要为A构造测试桩,并且相应的测试顺序为B,C,A;如果B是抽象类,它不能被实例化,仅测试B是不可行的,应该结合它的子类(类C)的一个实例来测试,因此,可能的测试顺序为BC,A;此外,可以通过删除A→C来破除环路:当B不是抽象类时,需要为B构造测试桩,相应的测试顺序为B,A,C;当B是抽象类时,需要为类B构造测试桩,相应的测试顺序为A,BC;(3)删除动态依赖关系A→C可以破除环路A→C→A;当B不是抽象类时,需要为C构造测试桩,相应的测试序为B,A,C;当B是抽象类时,它不能被实例化,仅仅测试类B是不可行的,应该结合它的子类(类C)的一个实例来测试,因此,可能的类测试顺序为A,BC。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国矿业大学,未经中国矿业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510631000.6/,转载请声明来源钻瓜专利网。