[发明专利]基于搜索的类集成测试序列问题中初始种群的生成方法在审
申请号: | 201710578788.8 | 申请日: | 2017-07-17 |
公开(公告)号: | CN109271308A | 公开(公告)日: | 2019-01-25 |
发明(设计)人: | 姜淑娟;张悦宁;张艳梅 | 申请(专利权)人: | 中国矿业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 221116*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 初始种群 测试序列 集成测试 遍历 粒子群算法 约束条件 多叉树 寻优 森林 搜索 随机性 矩阵 简单遗传算法 人工智能算法 个体适应度 方法生成 分析系统 矩阵转置 依赖关系 遗传算法 影响算法 树合并 求解 构建 收敛 测试 合并 引入 | ||
基于搜索的类集成测试序列问题中初始种群的生成方法。首先引入了一个约束条件,即测试某序列的类时,不允许打破类间的强依赖关系。随后提出一种在此约束条件下类测试序列的生成方法,包括分析系统得到强依赖矩阵、将矩阵转置并遍历以构建多叉树或多叉树森林、把可以合并的树合并、补全没有遍历到的类进而得到完整的森林、按随机顺序层次遍历森林中的每一棵树以得到类测试序列;本发明一定程度上解决了利用人工智能算法(如遗传算法和粒子群算法)求解类集成测试序列时,由于初始种群个体适应度值较低、整体质量较差而影响算法收敛速度及寻优结果的问题。将通过该方法生成的类测试序列作为初始种群,不失随机性,同时整体质量有所提高,加强了简单遗传算法和简单粒子群算法的寻优能力。
技术领域
本发明属于软件测试技术领域,特别是在基于搜索的类集成测试序列生成技术中,一种在某约束条件下初始种群(类测试序列)的生成方法。
背景技术
类集成测试序列的确定是面向对象软件集成测试中的关键难点之一。面向对象软件具有封装性、继承性和多态性等特点,所以其测试技术与传统的面向过程软件有很大区别。类的测试顺序关系到软件缺陷发现的时间和设计测试桩造成的测试成本,因此,确定类的集成测试序列成为集成测试中的一个重要研究问题。
在面向对象软件测试过程中,测试桩的开发成本往往是很高的,所以确定类集成测试序列的首要任务就是降低测试桩的开发成本。基于图论的方法由于自身的局限性,无法适用于大型程序。而在确定类测试序列的时候,需要考虑影响测试桩的各种因素,因此,求解类测试序列的问题可以转化为优化问题。目前已有的方法包括遗传算法(GeneticAlgorithm,GA)和粒子群优化算法(Particle Swarm Optimization,PSO)等,它们都属于人工智能算法。这类方法为了表示构造测试桩的代价,往往以序列的总体复杂度作为适应度函数,通过随机生成一定数量的个体组成初始种群,一个类测试序列作为一个个体。之后对种群进行一系列的进化操作,在进化一定的代数之后,最终获得适应度函数下的最优解。
目前,简单的遗传算法和粒子群算法都是通过随机方法生成初始种群,初始种群个体的适应度较低,一定程度上制约算法的收敛速度,导致在规定的进化代数内无法得到更优的解。因此,简单的进化算法逐渐不能满足实际需要。
发明内容
为了解决现有的方法初始种群个体适应度较低,导致寻优效果不佳的问题,本发明提供了一种约束条件下的类测试序列(种群个体)的生成方法。即,引入一种约束条件对初始种群进行预处理,约束条件为:打破类间依赖关系生成类测试序列时,不允许打破类间的强依赖关系。首先,确定类间的依赖关系类型;然后,提出多叉树的构建算法,把存在强依赖关系的目标类和源类分别作为多叉树的根节点和叶子节点;最后,对多叉树进行层次遍历,生成带有随机性且满足约束条件的个体。方法执行一次生成一个个体,所以,执行次数要与种群规模相同。其中,种群规模一般为类个数的两倍到三倍。由此方法生成的个体所组成的初始种群,不失随机性,同时整体质量有所提高,可以加强简单遗传算法和简单粒子群算法的寻优能力。方法包括以下步骤:
(1)为了方便表示,把待测系统的所有类从1开始编号。
(2)通过静态分析得到类间的强依赖矩阵M,M[i,j]=1表示类i强依赖类j,若M[i,j]=0则表示两个类不存在强依赖关系。
(3)将矩阵M转置并遍历。首先得到转置矩阵M’,转置的目的是把强依赖关系转换成类测试序列中的前后位置关系,如M[i,j]=1表示类i强依赖类j,为了满足约束,在序列中类j需在类i前面,转置后的矩阵M’可以更加直观地表示这种前后关系。M[i,j]=1变成M’[j,i]=1,表示类j在类i之前。然后遍历转置矩阵,当M’[j,i]=1,则把类j作为根节点,类i作为叶子节点,构建一棵多叉树。
(4)把可以合并的树合并,在一棵树中某个类是根节点,而在另一棵树中该类作为叶子节点,此时认为两棵树是可以合并的。如果不存在这样的类,则保持原状。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国矿业大学,未经中国矿业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710578788.8/2.html,转载请声明来源钻瓜专利网。