生态小程序自动化智能链路测试-SmartPathTest
原创
李松,陆晓静
蚂蚁质量AnTest
蚂蚁质量AnTest
微信号
gh_ac5eb4e2c97a
功能介绍
蚂蚁质量技术团队的技术分享以及产品介绍。
为什么?
生态业务是支付宝重要战场,生态质量在要通过建能力,打通路解决商家问题,行业的特色是业务纵深,生态的特点是众多小程序无法做到一一验收测试,如何自动发现行业小程序的问题,以及潜在的质量风险,要用到自动化测试的技术,中心化小程序行为路径较为单一,而往往很难对有着生态行业纵深属性的小程序做到如人工测试那么细致的测试,人工测试成本又太高,每天约几千个小程序变更,上线,需要以自动化的方式进行测试。在CY22S1我们提出了一种基于
自动化编排的测试方法
,触达成功率比较低,人工维护成本高,泛化性较差
,
本文主要提出了一种基于前端UI检测的模拟用户意图的小程序自动化智能测试方案,针对具有行业生态纵深的小程序可以做到深度遍历功能性测试
。应用场景例如:
扫码点餐餐饮点餐链路测试(发现不可用问题,以及潜在合规风险)
在餐饮,景区,民生等业务场景中存在较长链路的测试配置,主要难点在于
个性化配置小程序的链路需要人工配置成本较高,配置一次到成功测试需要20-30分钟,变更发版不能自适应,需要重新配置——
减少
配置维护
成本
长链路稳定性较差,测试的成功率只有50%左右,异常打断——需要特殊情况
智能处理
,提升一次测试成功率
弹窗问题,账号问题,登录态问题,地理位置,授权问题等——
集成
云验收底层检测,模拟能力,端到端测试
注:云验收——承接支付宝域对外合作的项目验收,包括各行业场景,出行,IOT机具,教育,医疗等。打开支付宝搜索「云验收」马上体验
是什么?
已有方案调研
总结:以上的传统自动化测试的方法以及结合机器学习的算法后的测试方法,对用户行为和业务信息的挖掘都不够充分,因此我们希望能提出一种更能挖掘用户行为信息以及更贴近业务的自动化测试方法,通过小批量标柱数据,结合强化学习算法,达到较好的自动化测试效果。
算法:用户行为+强化学习
工程:打标引擎+执行引擎
难点1:减少配置
维护
成本,人力成本从O(N)到O(1)(覆盖)
针对不同行业纵深,例如餐饮点餐,景区买票,预约服务等,对基于用户行为的链路进行小批量标注,训练获得具有行业属性的模型(约1小时时间小批量标注100条左右数据,模型训练后)可重复使用,覆盖该行业链路下所有类似链路。
针对小程序变更,通过强化学习模型可以达到较好的点击效果,以前配置了具有链路深度的测试后,变更需要重新配置,现不需要做任何改动即可以自适应调整,如有多条路径,例如:点餐过程中,存在多个餐品可供选择的情况,亦可以覆盖这种情景,如有链路无法触达,只需要一次打标即可。
难点2:提升测试成功比例,触达效果显著提升(智能)
具有带有用户意图的测试,链路深度复杂度乘数倍增,原来的固定话配置的方式,导致一个步骤不成功,本次测试就失败的情况,未避免这种问题,引用了强化学习算法巡检测试的模型,可以根据当前页面的元素进行实时推理,获取当前页面可点击控件的置信度,进行点击,提升了一次测试的成功率,节约了机器资源。
我们训练了页面元素控件识别的算法,根据图像识别的原理,识别出页面上的控件(按钮,图片,更多,关闭,弹窗等)通过OCR技术识别到页面上的文字,通过主体识别算法识别到特殊的具有行业属性的控件标注,通过整合控件识别模型,可以达到较好的点击效果。
难点3:通用底层技术解法,解决“最后一公里”问题(集成)
在不区分行业的应用场景中,模型仍可以根据实际的页面信息通过基于用户行为与强化学习的模型进行点击,针对支付宝首页推荐巡检,可以做到具有一定深度的测试。
具有业务场景的行业生态小程序,借助云验收平台底层能力,可以解决巡检测试中的“最后一公里”问题,例如:弹窗,授权,手机号绑定,地理位置模拟,小程序内扫码,微信扫码等。
结合错误页识别,白屏识别,风险检测等算法,小程序自动化测试的应用场景还有很多。
怎么做
算法简介
基于用户行为的模型原理
通过模拟人意图的深度学习算法,离线训练基于用户动线打标的点击序列(状态,点击位置)
通过执行引擎,推理当前页面控件点击置信度
来自论文:《Humanoid A Deep Learning-based Approach to Automated Black-box Android App Testing》
基于强化学习的模型原理
与环境交互大量训练,获得当前页面(点击后的奖励)
将达到终止页、找出异常这种fix的reward,将深度学习的网络中学习到的用户点击的probility作为deep reinforcement network中的reward,叠加到fix reward中作为total reward。这样deep reinforcement network也可以学习到用户如何进行点击。two-step training: 第一步先train supervise
network,第二步将supervise network的pred probility作为deep reinforcement network的reward输入
来自论文:《
Deep Reinforcement Learning for Black-box Testing of Android Apps
》
工程简介
用户行为打标引擎
通过打标引擎,可以快速采集用户行为动线数据,经过多次迭代可以快速稳定对页面元素进行点击路径动线标记。
智能动线执行引擎
通过执行引擎可以快速部署智能动线执行算法链路,以及检测断言,动线算法执行。
效果展示
我们使用云平台进行真机测试,使用触达收银台的成功率做为线上指标。在没有现有算法介入的情况下,触达收银台的成功率为10%,使用现有算法的情况下,成功率显著提升。
可视化算法模型生成的高斯概率堆积图
正常测试到收银台
发现的异常场景
合作联系
期待你的更多业务场景入驻,欢迎评论区留言。
如对本文有任何建议或问题,请关注我们的微信公众号,我们将私信回复 ❤️
预览时标签不可点
微信扫一扫
关注该公众号
继续滑动看下一个
轻触阅读原文
蚂蚁质量AnTest
向上滑动看下一个
知道了
微信扫一扫
使用小程序
取消
允许
取消
允许
:
,
。
视频
小程序
赞
,轻点两下取消赞
在看
,轻点两下取消在看
分享
留言