[发明专利]一种基于传递依赖的类集成测试序列生成方法有效
申请号: | 201810696612.7 | 申请日: | 2018-06-29 |
公开(公告)号: | CN110659199B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 姜淑娟;张妙;张艳梅;姜丽 | 申请(专利权)人: | 中国矿业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 221116 江苏省徐*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 传递 依赖 集成 测试 序列 生成 方法 | ||
本发明提供一种基于传递依赖的类集成测试序列生成方法,包括下列步骤:1)构建类间传递依赖模型;2)计算控制耦合复杂度;3)计算测试桩复杂度;4)生成类集成测试序列。本发明解决了“目前方法生成的类集成测试序列的测试代价较高、生成大规模系统的类集成测试序列时所需时间过久”的问题,该发明不但能够在较短时间内生成测试代价较低的类集成测试序列,而且能够为测试人员提供多种可以选择的测试方案,提高了软件测试的效率,最终更好地控制了软件产品的质量。
技术领域
本发明属于软件测试技术领域,且特别是有关于一种基于传递依赖的类集成测试序列生成方法。
背景技术
软件测试阶段共包括五个部分,即单元测试、集成测试、系统测试、验证和确认以及回归测试。其中,集成测试是软件测试阶段中的关键步骤,确保各模块及子系统能够按照预期目标,准确且稳定地运行。
常见的集成测试方法包括自底向上、自顶向下和三明治式方法。这些测试方法符合面向过程程序的特点,能够准确高效地完成面向过程程序的集成测试任务。但是对于面向对象程序,由于其系统缺乏明显的层次结构,类间调用关系错综复杂,测试人员无法直接利用上述方法进行集成测试。因此,针对面向对象程序的类间依赖特性,需要设计合理的类集成测试策略,为系统中的每个类确定其被测试的先后顺序。
在进行集成测试的过程中,若当前测试的类需要其他类提供服务,而其他类尚未被集成时,需要构建测试桩模拟相应的方法或属性以提供待测类所需的服务。由于面向对象程序中普遍存在着各种类间依赖,不可避免地需要构建各类测试桩,增加了额外的测试代价。如何以较低的测试代价对程序进行集成测试,以输出可靠的软件产品,是研究人员和开发人员需要解决的关键性问题。测试桩复杂度用来衡量构建各个测试桩所需花费的代价。按照不同的类间测试顺序进行集成测试,所需构建的测试桩的复杂度不同。一个合理的类集成测试序列,能够有效地降低测试桩复杂度,避免产生不必要的测试代价。可见,针对面向对象程序的集成测试,提出合理的类集成测试序列生成技术具有重要的意义。
发明内容
本发明目的在于提供一种基于传递依赖的类集成测试序列生成方法,解决了“现有方法生成的类集成测试序列的测试代价较高、生成大规模系统的类集成测试序列时所需时间过久”的问题,进而大幅度提高了集成测试的效率,同时保证了较高的可用性。
为达成上述目的,本发明提出一种基于传递依赖的类集成测试序列生成方法。方法包括下列步骤:
1) 构建类间传递依赖模型:对源程序进行静态分析,获取各类的成员变量信息、成员方法信息以及类间的属性耦合、方法耦合,并在此基础上获取类间传递依赖信息,形成传递依赖调用链,构造出类间传递依赖模型;
2) 计算控制耦合复杂度:提取类间传递依赖调用链中所涉及的全部访问操作,计算出各访问操作的执行概率,以此计算出传递依赖调用链的执行概率;根据各传递依赖调用链的执行概率,计算出类间控制耦合的复杂度;
3) 计算测试桩复杂度:根据第2部分计算出的类间控制耦合复杂度,结合类间属性耦合和方法耦合的复杂度,计算为类间关系构建测试桩所需的测试代价,即测试桩复杂度;
4) 生成类集成测试序列:利用测试桩复杂度,为系统构建测试成本矩阵,并利用奖惩机制调整类的测试优先级,根据各个类的测试优先级生成完整的类集成测试序列。
进一步,其中上述步骤1)的具体步骤如下:
步骤1)-1:静态分析源程序,获取类间耦合信息;
步骤1)-2:生成类间传递依赖调用链;
步骤1)-3:构造类间传递依赖模型,识别类间传递依赖。
进一步,其中上述步骤2)的具体步骤如下:
步骤2)-1:获取类间传递依赖调用链,并提取其中的全部访问操作;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国矿业大学,未经中国矿业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810696612.7/2.html,转载请声明来源钻瓜专利网。