AI智能遍历测试-从移动端到Web端_第1页
AI智能遍历测试-从移动端到Web端_第2页
AI智能遍历测试-从移动端到Web端_第3页
AI智能遍历测试-从移动端到Web端_第4页
AI智能遍历测试-从移动端到Web端_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AI智能遍历测试——从移动端到Web端目

录基于深度强化学习的UI遍历测试Android端基于深度强化学习的UI遍历测试Web端基于深度强化学习的UI遍历测试Android端Android

SDK中的测试工具Monkey,能够长时间频繁快速的对app界面进行各种操作,从而检测app的稳定性,辅助手工测试人员发现不易发现的问题。基于Monkey的思路,逐渐形成了一种基于页面交互的测试方法称为UI遍历测试。UI遍历测试通过不断与app

UI界面做交互,以期在有限的时间内获取更高的代码覆盖率、找🎧更多的bug。adb

install

adapteradb

install

testApkTest

APKadapter>_背景:Android

UI遍历测试传统遍历测试方法人工测试人力成本、时间成本高自动化脚本测试通用性差,脚本维护成本比较大测试效果差,大量无效的输入基于Monkey的随机性测试遍历测试痛点:随着app功能越来越复杂,耗费大量人力和时间成本,而且效果并不好Test

ScriptTest

ExecutionTest

Automation基于模型的测试(model-based

testing,MBT)技术能够将测试活动进行抽象成模型,依靠不同的算法自动生成测试用例,这能大大减少测试脚本的编写与维护工作量。模型构建(Modeling)测试需求选择(Test

Requirements

Selection)测试用例生成(Test

Generation)测试具体化(Test

Concretization)执行测试(Test

Execution)ModellingTest

RequirementSelectionTest

Concretization Test

ExecutionTest

Generaton基于模型的测试深度强化学习马尔可夫决策过程神经网络有向图模型通用模型状态空间爆炸项目思路QiAPE(奇猿)是基于模型的测试,在构建模型的基础上应用深度强化学习算法,对APP进行深度的遍历测试,同时监控后台信息,生成测试报告。基于有向图模型算法:DQN、PPO、UCT、多智能体UCT自动化:生成测试用例通用性:适用于所有APP黑盒测试:不需要获取APP源码QiAPE

is

All

You

Need移动端服务端强化学习算法框架adapterappdata有向图模型动作事件viewtreeimage

logcat

info...viewtree转换图数据处理数据处理socketadb输入………工作流程架构DQNEnvironment(环境)Replay

Memory(回放记忆库)PolicyQ

network(预测Q网络)Target

Q

network

(目标Q网络)Loss

function=(rt+γMaxat+1Q(St+1,at+1)-Q(St,at))状态Stat每一个action的Q值t tQ(S

,a

;w)(St,at)存储(St,at,rt,St+1)St+1每N个step

复制model根据Loss

function来更新NN参数在at的Q

Q(St,at;w)Target

Q值Maxat+1Q(St+1,at+1;w’)rt奖励设置正奖励:当产生新的Activity、新的state、新的页面奖励惩罚:当前state被访问的次数DNN:神经网络计算

Q

值Experience

Replay(经历回放):记忆库

(用于重复学习)Target

Network:暂时冻结

q_target

参数

(切断相关性)PPOPPO(Proximal

Policy

Optimization)近端策略优化算法在训练过程中新旧策略的的变化差异如果过大则不利于学习。测试了抖音app,与字节跳动Fastbot、北大深度学习框架Humanoid、DFS算法比较实验评估结果UCT(MCTS)算法Monte

Carlo

Tree

Search,是一种人工智能问题中做🎧最优决策的方法。它结合了随机模拟的一般性和树搜索的准确性。AlphaGo三大利器:蒙特卡洛树搜索、卷积神经网络、强化学习UCT

可以被描述为

MCTS

的一个特例:UCT

=

MCTS

+UCB。选择

Selection:从根节点

R

开始,递归选择最优的子节点,直到达到叶子节点

L。扩展

Expansion:如果

L

不是一个终止节点,那么就创建一个或者更多的子节点,选择其中一个C。模拟

Simulation:从

C

开始运行一个模拟的输🎧,直到博弈游戏结束。反向传播

Backpropagation:用模拟的结果输🎧更新当前行动序列。UCT(MCTS)算法测试抖音app实验评估结果多个agent共享同一个树模型,相互协作从同一个起点🎧发结束时各自遍历到不同区域多智能体UCT算法测试今日头条app实验评估结果基于深度强化学习的UI遍历测试Web端传统的web遍历测试有基于selenium、QT4W的自动化测试框架,但是一般都设计了很多规则,可拓展性和通用性较差。页面改版时,之前的代码不能用了。传统的遍历方法很容易陷入局部循环背景Web端技术架构传统的Web端UI遍历方法也有遍历深度不深、效果不好的问题,Android端项目完成后,我们团队开始了Web端的框架搭建,搭建了基于深度强化学习算法rainbow-DQN的Web端UI遍历测试框架rainbow-DQN有向图模型动作选择序列化数据数据处理数据处理输入………Web

pageSeleniumDOM

dataJS

scriptCDP

moduleNetworkdataChromeJS

scriptRedis记录异常网络输出Rainbow-DQNRainbow-DQN是由DeepMind提🎧的一种在DQN的基础上融合了6个改进的的深度强化学习算法Double

DQNPrioritized

replayDueling

networksMulti-step

learningDistributional

RLNoisy

NetsNature

DQN网页页面其实是一种树状结构的dom

tree数据,每个dom作为其节点。每个控件一般包含‘className’、‘id’、‘tagName’、‘text’等信息。通过提取这些信息将页面抽象构建成一个state。技术实现:State构建将已探索的界面建模为有向图,用于记忆已探索的状态节点:网页界面边:动作事件(点击、滚动、回退...)state2state3state4state6state9state7state8event

1event

2event

3event

6event

9event

7event

10event

4

event

5state5event

8event

11state1有向图模型构建使用CDP模块获取network数据,分析捕获错误状态码,并把结果保存到数据库;并用协程做异步处理,实时获取数据故障获取测试360极库云网站,统计urls

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论