一种基于强化学习的类集成测试序列生成方法

文档序号:26589840发布日期:2021-09-10 20:33阅读:来源:国知局

技术特征:
1.一种基于强化学习的类集成测试序列生成方法,其特征在于:步骤1、定义强化学习任务:强化学习的任务就是使智能体在环境中不断地进行尝试,根据获得的奖励值不断调整策略,最终生成一个较好策略,智能体根据这个策略便能够知道在什么状态下应该执行什么动作;步骤2、程序静态分析:对源程序进行静态分析,将获取的信息用于计算类间的属性和方法复杂度,通过属性复杂度计算类间的属性耦合,通过方法复杂度计算类间的方法耦合;步骤3、度量测试桩复杂度:依据前面得到的属性和方法复杂度计算测试桩复杂度,为后面奖励函数的设计提供信息;步骤4、设计奖励函数:将测试桩复杂度的计算融入奖励函数的设计中,指导智能体向测试桩复杂度更低的方向学习;步骤5、设计值函数:通过奖励函数反馈值函数,通过值函数的设定保证累计奖励最大化;步骤6、生成类集成测试序列:当智能体完成设定的训练次数,选出整体奖励值最大的动作路径,即为本次学习得到的类集成测试序列。2.根据权利要求1所述的一种基于强化学习的类集成测试序列生成方法,其特征在于:步骤1的具体步骤如下:1.1、将要分析的软件系统视为一组在测试时进行需要进行集成的类的集合;1.2、保留智能体在路径中执行的动作序列,即动作历史,作为集成测试类序列的候选解决方案;1.3、从候选解决方案中找到一条总体奖励最大的动作历史,即为本次学习过程所求的类集成测试序列。3.根据权利要求1所述的一种基于强化学习的类集成测试序列生成方法,其特征在于:步骤2的具体步骤如下:2.1、分析类间关系,通过属性复杂度计算类间的属性耦合,使用a(i, j)代表,i,j分别表示程序中的类,属性复杂度数量上等于i调用j的成员变量数、方法参数类型与方法的返回值数目三者之和;2.2、通过方法复杂度计算类间的方法耦合,使用m(i, j)代表,方法复杂度数目上等于i调用j中方法的数目,然后对属性和方法复杂度进行标准化。4.根据权利要求1所述的一种基于强化学习的类集成测试序列生成方法,其特征在于:步骤3的具体步骤如下:3.1、通过熵权法计算类间的属性和方法复杂度的权值;3.2、结合属性和方法复杂度计算得到测试桩复杂度;3.3、当得到类集成测试序列时,对过程中产生的测试桩复杂度进行累加,得到总体测试桩复杂度。5.根据权利要求4所述的一种基于强化学习的类集成测试序列生成方法,其特征在于:测试桩复杂度
其中,,,a(i, j)代表类i和j之间的属性复杂度,m(i, j)代表类i和j之间的方法复杂度,熵权法最先进行的就是对连个指标进行标准化,这样得到的结果均在0到1之间,标准化之后的类间的属性复杂度是,方法复杂度是。6.根据权利要求1所述的一种基于强化学习的类集成测试序列生成方法,其特征在于:步骤4的具体步骤如下:4.1、设计当智能体探索并集成到的类越优,其得到奖励值越高的奖励函数;4.2、当过程中任意一个动作类重复出现两次,给予这条路径一个最小值,以便继续探索时进行避免;4.3、通过以上两点结合测试桩复杂度,设计奖励函数,训练智能体倾向于探索测试桩复杂度更低的路径。7.根据权利要求6所述的一种基于强化学习的类集成测试序列生成方法,其特征在于:其中,智能体经过i

1次状态变换到达σ
i
,σ
i
表示状态路径,r(σ
i
)表示该状态路径会得到的奖励值,max表示最大奖励值,这里取1000,c为一个正整数值,这里取100,a
σi
表示与状态路径对应的动作历史,scplx()表示测试桩复杂度。8.根据权利要求1所述的一种基于强化学习的类集成测试序列生成方法,其特征在于:步骤5的具体步骤如下:5.1、根据环境的交互产生的状态和选择的动作,得到一个即时回报的q值,用q(s, a)表示,其中s表示状态,a表示动作;5.2、根据下一个状态s’选择最大的q(s’, a’)并将其乘以一个折扣因子γ;5.3、再加上智能体在状态s下执行动作a得到的奖励值r;5.4、整体乘以一个学习率α;5.5、再加上刚才即时回报的q值得到现在的q值。9.根据权利要求8所述的一种基于强化学习的类集成测试序列生成方法,其特征在于:其中,α表示学习率,r表示智能体在状态s下执行动作a得到的奖励值,γ表示折扣因子。10.根据权利要求1所述的一种基于强化学习的类集成测试序列生成方法,其特征在于:步骤6的具体步骤如下:6.1、智能体根据动作选择机制选择动作;6.2、智能体完成训练次数的时候,系统选择最大整体奖励值的动作序列返回,即为所求的最优类集成测试序列。

技术总结
本发明公开了一种基于强化学习的类集成测试序列生成方法,属于软件测试技术领域。包括下列步骤:1)定义强化学习任务;2)程序静态分析;3)度量测试桩复杂度;4)设计奖励函数;5)设计值函数;6)生成类集成测试序列。本发明解决了目前已有的基于强化学习的类集成测试序列生成方法评估确定类集成测试序列花费的总体代价的指标不够精确的问题,为实际生产生活中测试人员开展测试工作提供了更为准确的度量方法,提升了集成测试的效率,可以更好地控制产品的质量。制产品的质量。制产品的质量。


技术研发人员:张艳梅 丁艳茹 姜淑娟 袁冠 张颖辉
受保护的技术使用者:中国矿业大学
技术研发日:2021.06.10
技术公布日:2021/9/9
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1