基于深度强化学习的UI遍历

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1.
2.
3.
4. O1 O2 O3 O4 项目背景 解决方案 技术实现 未来工作
5. 项目背景
6. Android UI遍历测试 Android SDK中的Monkey长时间频繁快速的对 app界面进行各种操作,从而检测app的稳定 性,辅助手工测试人员发现不易发现的问题。 基于Monkey的思路,逐渐形成了一种自动化 测试方法称为UI遍历测试。 > adb install adapter > adb install testApk UI遍历测试通过不断与app UI界面做交互,以 期在有限的时间内获取更高的代码覆盖率、 adapter >_ 找出更多的bug。 Test APK
7. 传统遍历测试方法 Test Script Test Execution Test Automation 人工测试 人力成本、时间成本高 自动化脚本测试 通用性差,脚本维护成本比较大 基于Monkey的随机性测试 测试效果差,大量无效的输入 遍历测试痛点:随着app功能越来越复杂,耗费大量人力和时间成本,而且效果并不好
8. 基于模型的测试 基于模型的测试(model-based testing,MBT)技术 能够将测试活动进行抽象成模型,依靠不同的算法自动 Test Requirement Selection Modelling 生成测试用例,这能大大减少测试脚本的编写与维护工 作量。 Test Generaton 模型构建(Modeling) 测试需求选择(Test Requirements Selection) 测试用例生成(Test Generation) Test Concretization 测试具体化(Test Concretization) 执行测试(Test Execution) Test Execution
9. MBT的优点和难点 难点 优点  自动生成测试用例  通用的模型不容易设计  减少大部分冗余输入  状态空间爆炸很难解决  覆盖度更高  通用性高,维护成本低  黑盒测试
10. 解决方案
11. 深度强化学习 自AlphaGO在围棋上取得的成功,深度强化学 习算法得到各领域的关注,特别是在环境规 则比较清楚的问题上,深度强化学习算法能 够取得非常好的效果。
12. 解决思路 通用模型 有向图模型 马尔可夫决策过程 深度强化学习 状态空间爆炸 神经网络
13. QiAPE is All You Need QiAPE(奇猿)是基于模型的测试,在构建模型的 基础上应用深度强化学习算法,对APP进行深 度的遍历测试,同时监控后台信息,生成测试 报告。 基于有向图模型 算法:DQN、PPO、UCT、多智能体UCT
14. 我们的优势  抽象的图模型大大减少了状态空间数量  防止了Feed 页等无限动态刷新的页面  更智能的强化学习算法  多进程分布式架构  所需环境依赖少  支持各种Android版本,不同分辨率设备
15. 云设备平台 依托于360开测平台,有300多台机 型可供使用,满足用户对测试手机 数量和机型的需求 上线极库云平台
16. 可配置化脚本  自动登录功能  过滤不需要遍历的控件  屏蔽自动升级  屏蔽跳出app
17. 技术实现
18. State构建 UI页面其实是一种树状结构的数据, 其节点是每一个控件。每个控件一般 包含‘resource-id’、‘scrollable’、 ‘clickable’、‘bounds’等信息。通过提取 这些信息将页面抽象构建成一个state。
19. 有向图模型构建 将已探索的界面建模为有向图,用于记忆已探索的状态 节点:UI界面 state7 边:动作事件(click、scroll、back...) state1 event 1 state2 event 2 state3 event 3 event 7 event 8 event 11 event 6 state9 state4 state6 event 4 event 5 event 9 state5 event 10 state8
20. 工作流程架构 服务端 data 移动端 socket adapter viewtree image logcat info ... app adb 动作事件 数据处理 viewtree转换图 输入 数据处理 有向图模型 强化学习算法框架 … … …
21. DQN DNN:神经网络计算 Q 值 Experience Replay(经历回放):记忆库 Policy 状态S t 每一个action 的Q值 Q(S t ,a t ;w) (切断相关性) 奖励设置 (S t ,a t ) Q network(预测Q网络) 每N个step 复制model 正奖励:当产生新的Activity、新的 state、页面有变化 Replay Memory (回放记忆库) a t (用于重复学习) Target Network:暂时冻结 q_target 参数 存储(S t ,a t ,r t ,S t+1 ) Environment(环境) 根据Loss function 来更新NN参数 在a t 的Q Q(S t ,a t ;w) S t+1 Target Q network (目标Q网络) Target Q值 Max at+1 Q(S t+1 ,a t+1 ;w’) 奖励惩罚:当前state被访问的次数 Loss function=(r t +γMax at+1 Q(S t+1 ,a t+1 )-Q(S t ,a t )) r t
22. PPO PPO(Proximal Policy Optimization)近端策略优化算法 在训练过程中新旧策略的的变化差异如果过大则不 利于学习。
23. conv 3x3,32 Critic 3x3,64 神经网络 Actor heatmap V
24. 输出事件转换 将每个子view对应位置所有点的概率值 求平均,即得到该子view的概率值
25. 实验评估结果 测试了抖音app,与字节跳动Fastbot、北大深度学习框架Humanoid、DFS算法比较
26. UCT(MCTS)算法 Monte Carlo Tree Search,是一种人工智能问题中做出最优 决策的方法,一般是在组合博弈中的行动(move)规划 形式。它结合了随机模拟的一般性和树搜索的准确性。 AlphaGo三大利器:蒙特卡洛树搜索、卷积神经网络、强 化学习 UCT 可以被描述为 MCTS 的一个特例:UCT = MCTS + UCB。
27. UCT(MCTS)算法 选择 Selection:从根节点 R 开始,递归选择最优 的子节点,直到达到叶子节点 L。 扩展 Expansion:如果 L 不是一个终止节点,那么 就创建一个或者更多的子节点,选择其中一个 C。 模拟 Simulation:从 C 开始运行一个模拟的输出, 直到博弈游戏结束。 反向传播 Backpropagation:用模拟的结果输出更 新当前行动序列。
28. 实验评估结果 测试抖音app
29. 多智能体UCT算法 多个agent共享同一个树模型,相互协作 从同一个起点出发 结束时各自遍历到不同区域
30. 实验评估结果 测试今日头条app
31. 未来工作
32. 未来工作  更复杂的网络结构,提升算法性能  提高模型的通用性和泛化性  多平台:IOS、PC  业务拓展,比如游戏自动化测试、app敏感行为检测、模型重用、图 像UI异常检测……不仅仅是一个Moneky类工具
33. 360技术 THANKS 360质量效能

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 02:46
浙ICP备14020137号-1 $Map of visitor$