首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于深度强化学习的iOS应用测试方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京航空航天大学

摘要:本发明公开了一种基于深度强化学习的iOS应用测试方法,属于软件测试技术领域。本发明方法首先实现了一个测试代理动态库,实现获取iOS应用GUI信息、注入GUI事件、生成测试报告等功能;其次设计了一个基于历史信息的被测应用的当前细粒度状态表示方法,为深度强化学习测试模型生成决策时提供更多的信息,减少重复进入已探索过的页面;最后本发明设计了一个基于动态衰减策略的奖励函数,根据当前页面的探索程度动态给与奖励值,探索的越充分奖励越少。采用本发明测试方法可以到达一些以前应用难以达到的应用程序状态,平衡了测试过程中的探索与利用,对代码覆盖率以及故障检测率有进一步的提升。

主权项:1.一种基于深度强化学习的iOS应用测试方法,其特征在于,包括如下步骤:步骤一、构建测试代理动态库并集成进被测iOS应用的可执行文件中;所述的测试代理动态库用于获取iOS应用的GUI信息,注入GUI事件,生成测试报告;所述的测试代理动态库实现为后缀为.framework的二进制文件,包含如下六个模块:Hook模块实现在被测iOS应用启动的同时启动通信监听模块;通信监听模块监听指定的设备端口的通信,直到被测iOS应用被关闭,将主机发送来的指令发送给指令解析模块,当指令的动作执行结束后,将执行结果返回给主机;指令解析模块解析指令,根据解析结果,调用GUI信息获取模块、GUI事件注入模块和代码覆盖率模块;GUI信息获取模块实时获取被测iOS应用的GUI信息,该模块中指令包含获取GUI信息UIInfo、获取所有页面信息allVCs、获取当前页面信息currentVC,该模块对获取的信息过滤,获取当前页面下所有控件的必要信息;GUI事件注入模块用于对被测iOS应用模拟执行人的动作;代码覆盖率模块控制被测iOS应用代码覆盖率统计的开始及保存,该模块中指令包含开始代码覆盖率统计和保存代码覆盖率;步骤二、在主机设置测试脚本和测试参数脚本,在指定iOS设备安装并启动已集成测试代理动态库的被测iOS应用,唤醒通信监听模块,监听指定设备端口的通信;步骤三、主机向测试代理库发送指令allVCs,获取被测iOS应用所有的页面信息,并统计页面数量;步骤四、主机向测试代理库发送指令UIInfo和currentVC,分别获取被测iOS应用的GUI信息以及当前所在页面信息,确定被测iOS应用当前的细粒度状态;所述的被测iOS应用的细粒度状态由历史信息向量、当前所在页面独热编码以及当前页面控件向量三部分构成;历史信息向量记录从测试开始至今所有已经探索过的页面,当前所在页面独热编码表示被测iOS应用当前所处页面,当前页面控件向量表示当前所处页面包含的控件状态;步骤五、主机加载深度强化学习算法的测试模型,将被测iOS应用当前的细粒度状态输入测试模型,测试模型输出被测iOS应用下一步的动作;步骤六、主机将下一步动作指令发送至被测iOS应用的测试代理库,GUI事件注入模块根据指令对被测iOS应用当前页面的相应控件执行动作;步骤七、在对被测iOS应用执行完动作后,测试代理动态库开始收集被测应用当前的环境状态,检查本次动作是否产生了新的故障,如有,将故障日志传输给主机,重启被测iOS应用,若无,更新当前代码覆盖率;计算本次动作的奖励值;步骤八、测试模型接收本次动作的奖励,对测试策略进行迭代以及优化;步骤九、使用优化后的测试模型继续转步骤四执行,直到达到测试参数脚本中设置的测试时间限制或测试步长设置。

全文数据:

权利要求:

百度查询: 北京航空航天大学 一种基于深度强化学习的iOS应用测试方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。