[发明专利]一种基于传递依赖的类集成测试序列生成方法有效
申请号: | 201810696612.7 | 申请日: | 2018-06-29 |
公开(公告)号: | CN110659199B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 姜淑娟;张妙;张艳梅;姜丽 | 申请(专利权)人: | 中国矿业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 221116 江苏省徐*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 传递 依赖 集成 测试 序列 生成 方法 | ||
1.一种基于传递依赖的类集成测试序列生成方法,其特征在于,首先对程序进行静态分析,构建类间传递依赖模型,识别出类间传递依赖关系;然后,按照各调用语句被执行的概率计算类间传递依赖发生的可能性,即控制耦合复杂度,以此度量为传递依赖关系构建测试桩所需付出的代价;之后,设计新的测试桩复杂度计算公式,计算各个类的测试成本及测试净收益,通过比较测试成本及测试净收益,选择合适的类加入到类集成测试序列,并利用奖惩机制对剩余各个类的测试优先级进行调整,最终形成完整的类集成测试序列,该方法包括如下步骤:
1)构建类间传递依赖模型
定义1:传递依赖,当类
定义2:传递依赖调用链,类
类间传递依赖模型在对象关系图的基础上,增加系统中的传递依赖调用链,类间传递依赖模型表示为有向图ICTRD=(V, L, E),其中,节点集合V表示程序P中的类的集合;标识集合L={D, T, C},表示程序P中类间依赖关系的类型集合;有向边集合E= ED∪ET∪EC,表示程序P中类间依赖关系的集合,ED表示类间直接依赖,ET表示类间传递依赖,EC表示两个类之间既存在直接依赖又存在传递依赖;
2)计算控制耦合复杂度
控制耦合复杂度用于衡量类间传递依赖的发生概率,两个类之间存在传递依赖当且仅当二者之间存在至少一条传递依赖调用链,假定类
其中,
假定某条传递依赖调用链中共包含
其中,
某一访问操作的执行概率
第1步针对该访问操作,获取其所在的全部调用语句,并且针对每条调用语句,提取其路径条件;
第2步根据调用语句的路径条件,计算每条调用语句的执行概率;
当调用语句的路径条件为空时,该语句被顺序执行,不会由于分支语句的跳转而被打断,因此其执行概率为1;当调用语句的路径条件不为空时,该调用语句的路径条件从分支语句中提取而来,因此针对不同的分支语句,路径条件成立的概率并不相同;对于条件判断语句if而言,当调用语句的路径条件为多个不等式时,首先判断不等式之间是否存在冲突,若存在冲突,此时该调用语句一定不可能被执行;若某一路径条件为不含与、或关系的简单路径条件;反之,若某一路径条件为包含与、或关系的复合路径条件,同样在缺乏其他信息可供参考的情况下,假设共有
第3步计算访问操作的执行概率,由于每条调用语句的执行互不影响,并且一个访问操作由多条调用语句完成,只有当所有的调用语句均不执行时,该访问操作才不会成立,因此,在计算完每条调用语句的执行概率之后,需考虑其不同的组合情况,最终计算访问操作的执行概率;
3)计算测试桩复杂度
当类
WA表示属性复杂度的权重,WM表示方法复杂度的权重,WT表示控制耦合复杂度的权重,表示属性复杂度的标准差,表示方法复杂度的标准差,
4)生成类集成测试序列
第1步根据上述的测试桩复杂度计算公式,计算类间的测试桩复杂度,并构建测试成本矩阵,初始化各类的测试优先级;
第2步利用测试成本矩阵,计算各类的初始测试成本及初始测试净收益,设集合
测试净收益
第3步测试成本为零的类将被加入到类集成测试序列;若不存在测试成本为零的类,则将测试收益最大的类加入到类集成测试序列;
第4步对于剩余未被测试的类,根据其测试净收益,利用奖惩机制调整其测试优先级,若该类的测试净收益为正,提高其测试优先级;若该类的测试净收益为负,降低其测试优先级;若该类测试净收益为零,无需对其测试优先级进行调整;
第5步以未测试类同本轮集成类的依赖关系为反馈信息,对剩余未被测试的类的测试净收益进行调整,假设集合
第6步检查是否所有的类均已加入到类集成测试序列,若是,类集成测试序列生成完毕;否则,跳转至第3-5步继续执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国矿业大学,未经中国矿业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810696612.7/1.html,转载请声明来源钻瓜专利网。