面向对象类集成测试序列生成方法研究
发布时间:2020-04-15 16:13
【摘要】:信息时代下,计算机科学技术的蓬勃发展带来了软件产业的飞速进步,软件产业现已遍及当代社会发展和经济生活的各个角落。作为提高和保证软件质量的重要手段,软件测试技术能够及时发现并纠正软件缺陷,避免因软件质量问题而导致的各类生产生活不便和重大经济损失。集成测试是软件测试阶段中的关键步骤,确保各模块及子系统能够按照预期目标,准确且稳定地运行。面向对象程序的类间调用关系错综复杂,无法利用传统的集成测试方法进行测试,因此提出了基于测试序列的类集成测试策略。不同的类集成测试序列,其测试代价并不相同。确定合理的类集成测试序列,能够有效地降低测试桩复杂度,从而避免产生不必要的测试代价。可见,针对面向对象程序的集成测试,提出合理的类集成测试序列生成技术具有重要的意义。国内外众多专家学者提出了多种类集成测试序列生成方法,然而现有方法生成的类集成测试序列的测试代价较高、针对复杂系统运行时间过长。本文在分析与研究现有方法的基础上,对目前存在的部分问题进行了改进,提出了基于奖惩机制的类集成测试序列生成方法和基于传递依赖的类集成测试序列生成方法,并实现了一个针对Java语言的类集成测试序列生成工具。针对现有方法生成的类集成测试序列的测试代价较高、生成大规模系统的类集成测试序列时所需时间过久的问题,本文提出了一种基于奖惩机制的类集成测试序列生成方法。该方法首先根据测试成本和测试净收益,为所有的类设定初始测试优先级;之后,选择合适的类进行测试,并将这些类同其他待测类间的依赖关系作为反馈信息,重新计算其他待测类的测试净收益,利用奖惩机制调整其他待测类的测试优先级;重复上述过程,直至所有的类均被测试。实验证明,该方法能够在较短的时间内生成测试代价较低的类集成测试序列。针对现有方法无法全面地度量类集成测试序列的测试代价这一问题,本文提出了一种基于传递依赖的类集成测试序列生成方法。该方法首先识别类间传递依赖,构建类间传递依赖模型;之后,计算控制耦合的复杂度,度量为传递依赖关系构建的测试桩的代价,设计新的测试桩复杂度计算方法;最后,根据新定义的测试代价度量方法,对现有方法进行改进。实验证明:该方法能够度量类间传递依赖,且类间传递依赖会对类集成测试序列的测试代价产生影响。此外,本文设计并实现了一个针对Java语言的类集成测试序列生成工具,利用本文提出的两种方法生成类集成测试序列。
【图文】:
图 5-2 GenCITO 工具界面Figure 5-2 User Interface of GenCITO然后,,点击“选择待分析系统”按钮,设置待分析程序的 class 文件的路径在本示例中选择 email__spl 系统进行实验,之后,点击“类集成测试序列生成按钮,对 email__spl 系统生成类集成测试序列。GenCITO 执行完毕,最后点击“结果记录及展示”按钮,展示 email__spl 系统的类间依赖关系、生成的类集成测试序列、相应的测试桩及测试代价等信息。类集成测试序列的生成结果如图 5-3 所示。其中,类编号列表显示系统中类编号和类名之间的对应关系,位于图的左侧上半部分。类间直接依赖列表显示了以继承、聚集、关联等为代表的类间直接依赖关系,箭头左侧为源类编号及其名称,右侧为目标类编号及其名称,位于图的左侧中间部分。类间传递依赖列表显示类间传递依赖关系,同类间直接依赖关系的表述形式一致,箭头左侧为源类右侧为目标类,位于图的左侧下半部分。生成的类集成测试序列位于图的右侧上半部分,图中数字为类的编号,同一测试优先级的类之间不存在相互依赖关系可以同时被测试。集成测试所需的测试桩位于图的右侧中间部分,箭头左侧的数
62图 5-3 类集成测试序列生成结果展示界面Figure 5-3 User Interface of GenCITO Result5.3 本章小结(Summary)本章设计实现了一个类集成测试序列生成工具 GenCITO,首先介绍了GenCITO 的框架和主要模块;之后,详细描述了各模块的主要功能和实现细节,并通过 email__spl 系统展示了 GenCITO 的运行过程及运行结果。
【学位授予单位】:中国矿业大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP311.53
本文编号:2628736
【图文】:
图 5-2 GenCITO 工具界面Figure 5-2 User Interface of GenCITO然后,,点击“选择待分析系统”按钮,设置待分析程序的 class 文件的路径在本示例中选择 email__spl 系统进行实验,之后,点击“类集成测试序列生成按钮,对 email__spl 系统生成类集成测试序列。GenCITO 执行完毕,最后点击“结果记录及展示”按钮,展示 email__spl 系统的类间依赖关系、生成的类集成测试序列、相应的测试桩及测试代价等信息。类集成测试序列的生成结果如图 5-3 所示。其中,类编号列表显示系统中类编号和类名之间的对应关系,位于图的左侧上半部分。类间直接依赖列表显示了以继承、聚集、关联等为代表的类间直接依赖关系,箭头左侧为源类编号及其名称,右侧为目标类编号及其名称,位于图的左侧中间部分。类间传递依赖列表显示类间传递依赖关系,同类间直接依赖关系的表述形式一致,箭头左侧为源类右侧为目标类,位于图的左侧下半部分。生成的类集成测试序列位于图的右侧上半部分,图中数字为类的编号,同一测试优先级的类之间不存在相互依赖关系可以同时被测试。集成测试所需的测试桩位于图的右侧中间部分,箭头左侧的数
62图 5-3 类集成测试序列生成结果展示界面Figure 5-3 User Interface of GenCITO Result5.3 本章小结(Summary)本章设计实现了一个类集成测试序列生成工具 GenCITO,首先介绍了GenCITO 的框架和主要模块;之后,详细描述了各模块的主要功能和实现细节,并通过 email__spl 系统展示了 GenCITO 的运行过程及运行结果。
【学位授予单位】:中国矿业大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP311.53
【参考文献】
相关期刊论文 前4条
1 赵玉丽;王莹;于海;朱志良;;基于复杂网络的类间集成测试序列生成方法[J];东北大学学报(自然科学版);2015年12期
2 潘伟丰;李兵;马于涛;刘婧;;基于复杂软件网络的回归测试用例优先级排序[J];电子学报;2012年12期
3 张艳梅;姜淑娟;张红昌;;一种基于动态依赖关系的类集成测试方法[J];计算机学报;2011年06期
4 卢炎生,毛澄映;面向对象簇级测试中类间测试序确定方法研究[J];小型微型计算机系统;2005年06期
本文编号:2628736
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2628736.html