自动化 测试框架的设计与实践

底下的 不用看了 为了凑字

基于 AI 的移动端⾃自动化 测试框架的设计与实践 何梁梁伟 爱奇艺资深 Android 架构师

3. 何梁梁伟 资深 Android 架构师 • 爱奇艺资深 Android 架构师 • 沪江学习 Android 团队负责⼈人 • Kotlin 早期布道者 • KotlinThree 发起⼈人

4. • 理理想中的 UI 测试框架 • 深度学习带来的机会 • Aion 的诞⽣生 • Aion 的优势与挑战 • AI 未来

5. • 易易于开发和维护 • 稳定性 • 执⾏行行效率 • 跨平台 • 跨应⽤用 • ⽀支持 Hybrid How

6. ⽀支持语⾔言 控件捕获 UIAutomator Appium Java/Kotlin 较⾼高 Java、Python、 Ruby等 ⾼高 Robotium Java 较⾼高 跨平台 否 是 否 跨应⽤用 是 是 否 ⽀支持 Hybrid 不不⽀支持 ⽀支持 ⽀支持 稳定性 中 中 中 Espresso UIAutomation Java/Kotlin JS 较⾼高 较⾼高 否 否 否 ⽀支持 中 是 ⽀支持 中

7. 传统框架的缺点 • 跨平台能⼒力力差 • 跨应⽤用能⼒力力差 • 稳定性对ID依赖较⼤大 • 控件捕获成本⾼高 • dump 系统视图树⼏几率性的失败

8. ⼀一种⽀支持所⻅见即所得⾃自动化测试框架

9. Sikuli

10. AirTest

11. Sikuli&AirTest 的不不⾜足 • 准确率不不⾜足 • 没有层次结构 • 代码稳定性差 • 代码可维护性差

12. f点i击nd“(t‘atba”b⾥里’里⾯)面.“fviinpd”(的te按x钮t='会员').click() f点i击nd“(导‘航na”v上’)的.“f搜in索d(”i按m钮g='搜索框').click() s往c下ro滚ll动do,wn找_a到nd“_奇fi葩n说d(”'的co“v封er⾯'面)”.,fi点nd进('去延禧攻略略').click()

13. • 图像切割 • 图像分类识别 • OCR ⽂文字识别 • 图像相似度匹配 • 像素点操作 能⼒力力的需求

14. • 理理想中的 UI 测试框架 • 深度学习带来的机会 • Aion 的诞⽣生 • Aion 的优势与挑战 • AI 未来

15. Top5 准 确 率 从 75% 提 升 到 98%

16. OCR Accuracy 93% total accuracy 98% chars accuracy

17. • 理理想中的 UI 测试框架 • 深度学习带来的机会 • Aion 的诞⽣生 • Aion 的优势与挑战 • AI 未来

18. PixelToApp

19. PixelToApp

20. 存在的问题 • 复杂界⾯面处理理难度⼤大 • 阈值设置适应性差 • 瓶颈突破⽐比较难 • 需要使⽤用⼤大量量算法,维护性差

21. Pix2Code train sample

22. 存在的问题 • 准确度不不够 • 中间⼲干预难 • 训练素材标注成本⾼高 • 切割精准度不不够

23. Aion 是怎么做的

24.

25.

26. core 图像切割 提取⼦子元素 条件判断 测试⽤用例例 截屏 场景判断 布局分类 AI 填充⼦子元素 执⾏行行/结束 传统测试框架

27. ⾃自定义算法 背景分块 切割 分布 相似切割 Jaccrad 相似切割 极⼤大空间 切割 直⽅方图 相似切割 元素Jaccrad 相似切割 前后景 分层

28. ?

29. [ [ 19., 300., 581.][ 830. , 945.5, 1061. ] ] [ [ 36. , 74.5, 113. ][162., 211., 260.] [336. , 459.5, 583. ][662., 710., 758.] [839., 893., 947.][ 987. , 1013.5, 1040. ] ] [ [ 36. , 74.5, 113. ][839., 893., 947.] ] [ [ 19., 300., 581.][ 830. , 945.5, 1061. ] ] (similarity, 0.856)

30. 0.856 0.994 0.948

31. 分 类 模 型 选 择

32. AI 优化

33. 素材分布不不均 5000 1000 500 10 脚本⽣生成 更更多应⽤用

34. Top-layer 到 Fine-tune 冻结 10 训练

35. 多结果并⽤用 结果 灰度图 MobileNet v2ShuffleNet v2 原图 轮廓图

36. • 理理想中的 UI 测试框架 • 深度学习带来的机会 • Aion 的诞⽣生 • Aion 的优势与挑战 • AI 未来

37. ⽀支持语⾔言 控件捕获 UIAutomator Java/Kotlin 较⾼高 Appium Java、 Python、 ⾼高 跨平台 否 是 跨应⽤用 是 是 ⽀支持 hybrid 不不⽀支持 ⽀支持 稳定性 中 中 Robotium Espresso UIAutomation Aion Java Java/Kotlin JS Python 较⾼高 较⾼高 较⾼高 低 否 否 否 是 否 否 是 是 ⽀支持 ⽀支持 ⽀支持 ⽀支持 中 中 中 较⾼高

38. 优势 • 可⻅见即可得,易易于理理解和开发 • 对系统框架依赖弱,跨平台 • 稳定性强,不不⽤用担⼼心 ID 混淆的问题 • 分类少,层次浅,视图捕获简单 • ⽆无缝⽀支持传统框架

39. • 准确率 • 样本数量量 • 执⾏行行时间 • 极度复杂背景的元素提取 • 特征极少的元素识别 • 悬浮元素的提取 挑战

40. • 理理想中的 UI 测试框架 • 深度学习带来的机会 • Aion 的诞⽣生 • Aion 的优势与挑战 • AI 未来

41. • 错误界⾯面识别 • ⼦子元素 AI 识别 • ⻚页⾯面预加载 • UI2Code • 录屏分析 AI More

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181221G12GQA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励