[发明专利]一种基于Actor-Critic算法的类集成测试序列生成方法在审
申请号: | 202110689058.1 | 申请日: | 2021-06-22 |
公开(公告)号: | CN113868113A | 公开(公告)日: | 2021-12-31 |
发明(设计)人: | 张艳梅;张颖辉;张志成;姜淑娟;刘俊杰 | 申请(专利权)人: | 中国矿业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N20/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 221116*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 actor critic 算法 集成 测试 序列 生成 方法 | ||
1.根据权利要1所述的一种基于Actor-Critic的类集成测试序列生成方法,一种基于Actor-Critic算法的类集成测试序列生成方法,其特征在于:
步骤1、定义目标任务:本方法的任务就是使Actor网络环境中不断地进行尝试,根据不同的状态选择不同的动作,同时,Critic根据当前所处的环境,对Actor所选动作做出价值评估;最终使两个网络不断优化,最终目标是为了训练出的Actor网络选择出总体测试桩复杂度最低的序列;
步骤2、程序静态分析:对源程序进行静态分析,将获取的信息用于计算类间的属性和方法复杂度,通过属性复杂度计算类间的属性耦合,通过方法复杂度计算类间的方法耦合;
步骤3、度量测试桩复杂度:依据前面得到的属性和方法复杂度计算测试桩复杂度,为后面奖励函数的设计提供信息;
步骤4、设计奖励函数:将测试桩复杂度的计算融入奖励函数的设计中,将动作收益与动作成本相减得出动作净收益,作为动作奖励值;
步骤5、Actor网络选择动作:通过奖励函数反馈值函数,通过值函数的设定保证累计奖励最大化;
步骤6、Critic网络评价动作的优劣:当Actor完成设定的训练次数,选出整体奖励值最大的动作路径,即为本次学习得到的类集成测试序列;
步骤7、更新网络参数:当Actor网络与Critic网络完成一定次数的循环后,产生的经验值可以用于更新两个网络中的参数,使之更加准确;
步骤8、得出类集成测试序列:当Actor完成设定的训练次数,选出整体奖励值最大的动作路径,即为本次学习得到的类集成测试序列。
2.根据权利要求1所述的一种基于Actor-Critic的类集成测试序列生成方法,其特征在于:
步骤1的具体步骤如下:
1.1、将要分析的软件系统中的所有类视作一个类集合;
1.2、Actor网络依次选择不重复的类作为动作,记录下动作顺序,最终所得动作顺序即为类集成测试序列候选方案;
1.3、从候选解决方案中找到一条总体测试代价最低的动作顺序,即为本次学习过程所求的类集成测试序列。
3.根据权利要求1所述的一种基于Actor-Critic的类集成测试序列生成方法,其特征在于:
步骤2的具体步骤如下:
2.1、分析类间关系,通过属性复杂度计算类间的属性耦合,用A(i,j)表示,i和j分别表示程序中的类,属性复杂度数量上等于i调用j的成员变量数、方法参数类型与方法的返回值数目三者之和;
2.2、通过方法复杂度计算类间的方法耦合,用M(i,j)表示,方法复杂度数目等于i调用j中方法的数目;
2.3、对属性和方法复杂度进行标准化,即属性复杂度是,方法复杂度是,得到的结果均在0到1之间。
4.根据权利要求1所述的一种基于Actor-Critic的类集成测试序列生成方法,其特征在于:
步骤3的具体步骤如下:
3.1、用熵权法设定测试桩复杂度计算中的属性权值WA和方法的权值WM;
3.2、结合属性复杂度和方法复杂度计算得到测试桩复杂度SCplx:
3.3、当得到类集成测试序列时,对过程中产生的测试桩复杂度进行累加,得到总体测试桩复杂度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国矿业大学,未经中国矿业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110689058.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:电平衡双工器、使用其的方法以及电子设备
- 下一篇:灰水回收及再利用系统和方法