[发明专利]基于测试级的类测试顺序确定方法无效
申请号: | 201210456315.8 | 申请日: | 2012-11-14 |
公开(公告)号: | CN102937933A | 公开(公告)日: | 2013-02-20 |
发明(设计)人: | 张艳梅;袁冠;姜淑娟 | 申请(专利权)人: | 中国矿业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 高桂珍 |
地址: | 221000 江苏省徐州市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 测试 顺序 确定 方法 | ||
1.基于测试级的类测试顺序确定方法,该方法包括构建扩展的对象关系图、统计EORD中环路个数、消除EORD中环路及类测试级排序,其特征在于,构建扩展的对象关系图,在对象关系图ORD中增加表示动态依赖关系的边,用标有Dy的虚线边表示,可得到扩展的对象关系图,记为EORD={V,E},其中,V为表示程序中的各个类节点,E={EI∪EAg∪EAs∪EDy},EI、EAg、EAs分别表示类间继承边、聚集边和关联边;统计EORD中环路个数,首先分别将SCCs中包含的每一个子强连通分量SCCi中所有边以树的形式组织在一起,规则是将由类编号从小到大表示的各个类依次作为根节点,SCCi中包含的边作为分支进行构建,每选择一个不同的根节点时构建一棵不同的查找树,构建一棵查找树时在一条路径中避免重复的节点,最后以与根节点相同的节点作为叶子节点,直到SCCi中的边不能满足树中叶子节点与根节点相同为止;然后对这些查找树进行前序遍历,去掉重复的路径,最后得到SCCi中包括的总的环路数目及所有环路及路径,SCCi中各边涉及的环路的数目;消除EORD中环路,对于存在环路的EORD,需要消除环路进而给出类间测试序列,因此,确定类间测试顺序的核心问题就是打破环路,由于C(关联边)=C(动态依赖边)<C(聚集边)<<C(继承边),因此称继承关系和聚集关系为强联系关系,动态依赖关系与关联关系均为弱联系关系,为了减少测试代价,在消除环路时避免删除强联系边,在打破环路的过程中遵循删除涉及环路最多的关联边或者动态依赖边的规则,首先需要识别出EORD中由类以及它们之间的依赖关系形成的强连通组件SCCs,然后查找每一个强连通分量SCCi中所有的环路,统计SCCi中每条动态依赖边和关联边所涉及的环路数目,进而将一个有环图消除环路成为一个无环图;类测试级排序,在程序的执行过程中,消除EORD中的环路以后,程序中仍存在动态依赖关系,但这些动态依赖关系并没有使得EORD构成环路,即无环的EORD中既包含静态依赖关系又包含动态依赖关系;由于动态依赖关系在程序运行时期才会存在,同时,传统的逆向拓扑排序只能在程序静态状态下确定类测试顺序,因此不能通过简单的逆向拓扑排序为存在两种依赖关系类簇确定测试顺序。
2.根据权利要求1所述的消除EORD中环路,其特征在于,所述的消除EORD中环路中的边的删除规则,对于存在环路的EORD,首先需要消除环路,删除哪些边消除环路将直接影响到构建测试桩的数量;为了解决已有的方法忽略动态依赖关系的问题,为测试提供足够的测试桩,需要考虑动态依赖边对打破环路的影响,同时为了满足构建的测试桩最少,应该遵循删除最少的边打破尽量多的环路的原则。
3.根据权利要求1所述的消除EORD中环路,其特征在于,所述的EORD中的环路消除算法,首先统计动态依赖边和关联边所涉及的环路数目,然后判断涉及环路数目最多的边的类型:如果涉及环路数目最多的边为动态依赖边,或者动态依赖边和关联边涉及相同的环路个数,即包括由一条动态依赖边和一条关联边构成一个最简单的环路的情况,判断导致动态依赖边形成的边的类型:如果是关联边,删除动态依赖边;如果是聚集边,也删除动态依赖边;如果两个类之间同时存在一条关联边和一条动态依赖边同向,且它们涉及的环路数目相同且最多,则同时删除这两条边;如果两个类之间同时存在一条聚集边或继承边和一条动态依赖边同向,且它们涉及的环路数目相同且最多,则删除环路中的关联边;如果涉及环路数目最多的边为一条关联边,则删除该关联边;如果多条关联边或动态依赖边的环路数目相同且最多,则删除其中任意一条关联边或动态依赖边。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国矿业大学,未经中国矿业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210456315.8/1.html,转载请声明来源钻瓜专利网。