AI移动自动化测试框架设计(解读)

简介: AI移动自动化测试框架设计(解读) 理想种的移动UI自动化框架: 易于开发和维护 稳定性 执行效率 跨平台 跨应用 支持Hybrid(混合应用) 传统的UI自动化框架(UIAutomator、Espresso、appium等),或多或少在这些方法做的不够完美。

AI移动自动化测试框架设计(解读)

理想种的移动UI自动化框架:

  • 易于开发和维护

  • 稳定性

  • 执行效率

  • 跨平台

  • 跨应用

  • 支持Hybrid(混合应用)

传统的UI自动化框架(UIAutomator、Espresso、appium等),或多或少在这些方法做的不够完美。


那么理想中的框架应该是什么样的?

模拟用户的操作,用户在操作的时候是不需要知道控件的属性(ID、name)的,它应该是一种所见即所得的操作。

所以,像Sikuli 、AirTest这样的基于图片识别技术的测试框架就很好。

但是,它们也有一些不足:

  • 准确率不足

  • 没有层次结构

  • 代码稳定性差

  • 代码可维护性差

如果,测试脚本可以变成这样:

311516-20190313181408142-786480464.png

这个样的脚本表达接近我们的自然语言。比如,点击标签上的会员按钮,就变成 find('tab').find('会员'),代码的维护性也会变得很好。


要实现这样的框架需要哪些技术:

  • 图像切割

  • 图像分类识别

  • OCR文字识别

  • 图像相似度匹配

  • 像素点操作

图像切割:可以把一整张图片切割出不同的块,比如一张App的截屏,可以切割成导航栏、视频封面列表、搜索框等不同的块。

图像分类识别:对上面切割的块进行分类,需要图像分类的能力。

OCR文字识别:依赖图像 OCR 的识别能力,知道对应的视图里面有哪些文字。

图像相似度匹配能力:这一点传统的图像处理库就可以实现。比如Python的pillow库。

像素点的操作:可以依赖传统的框架,比如通过坐标完成操作,也可以使用机械臂来完成像素点的操作。


深度学习带来的机会

在深度学习以前,图像分类领域的准确率一定在75%以下,引入深度学习使准确率提高到98%、99%。有文章说准确率达到95%说明已经超过人类了,这是一个相当高的水平。

311516-20190313181536467-1249199088.png

识别率在逐年提高。

ORC的能力主要体现在:完整准确率和文字准确率。

完整的准确率是指,在一个截图里面,会有一些标题和词组,如果标题里面有一个字出现了错误,就认为这个标题的识别是错误的,通过这种方式,准确率能够达到93%。

文字的准确率,是将一张截图分割成多个块,然后识别出每个块上的文字。因为已经分割了块,所以识别率可以达到98%。

311516-20190313181614726-506999475.png


终于介绍到AIon框架了。

有了上面这些技术做为基础以后,就可以尝试AIon框架实现了。

这中间还介绍了UI2Code 、pix2code两个“类似”框架的。它们是将截图生成用户界面代码,感兴趣可以百度了解。

这里直接介绍Alon的工作方法。敲黑板!这里考试重点。

311516-20190313181706397-306415449.png

AIon 会把一个截图切成几块:tab、导航、状态栏等,然后用深度学习图像分类,对每一块进行分类识别,识别完了以后,就会把对应块里的子元素提取出来,再用一些AI的技术,提取里面的内容,把它填充到子元素的属性里面去,最后就会得到二级视图树的结构,最后,就可以去做对应的点击操作了。


AIon的处理过程:

311516-20190313181731033-1139856524.png

比如要实现一条测试用例,

首先截屏,对它进行场景判断,场景判断会应用到一些AI分类识别,识别出当前界面有没有弹出对话,或者它是否是登陆页的场景识别。场景识别完了以后,就会进行传统的图像切割,图像切割完了以后,进行布局分类,布局分类也会应用到一些AI的技术,分类完了以后,进行子元素的提取,对这个子元素进行填充,填充会应用到一些AI的技术。

最后,当视图树构建完了之后,匹配之前写的测试用例里面的条件进行匹配,匹配之后,执行测试用例,这就是整个AIon的核心流程。

由于考虑到之前的一些测试用例,还有一些传统的测试框架写的测试用例,本身还做了对传统测试框架的融合。

AIon的处理过程中涉及到一些技术问题这里就省略了,通篇阅读下来有点像论文。强烈建议阅读原文,我这里只是简化了对原文的解读。

从中get到了一些基于AI实现自动化框架的思路。未来的自动化测试肯定会越来越使用更简单,功能更强大。要么去实现AI自动化框架,要么被AI自动化框架淘汰!你选吧!

阅读原文

相关文章
|
3天前
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
11 1
|
4天前
|
自然语言处理 测试技术 API
深入理解自动化测试框架Selenium的设计理念与实践
【4月更文挑战第15天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速迭代的关键手段。Selenium作为一种广泛使用的自动化测试框架,提供了对多种浏览器和平台的支持,极大地促进了Web应用的功能测试。本文旨在剖析Selenium的核心设计理念,探讨其在实际项目中的应用,并指出常见的误区及最佳实践,以期帮助测试工程师更高效地利用Selenium进行测试工作。
|
5天前
|
监控 测试技术 API
深入理解自动化测试框架Selenium的设计与实现
【4月更文挑战第14天】在软件开发过程中,自动化测试是确保代码质量、减少人工重复劳动的关键步骤。Selenium作为一款广泛使用的自动化测试工具,提供了对多种浏览器和操作系统的支持。本文将探讨Selenium的核心组件及其架构设计,分析其如何通过WebDriver与浏览器交互,以及它如何支持多种编程语言进行脚本编写。同时,我们还将讨论Selenium Grid的作用以及它如何实现并行测试,以缩短测试周期并提高测试效率。
169 58
|
7天前
|
Web App开发 前端开发 Java
框架分析(11)-测试框架
框架分析(11)-测试框架
|
21天前
|
敏捷开发 设计模式 监控
深入理解自动化测试框架的设计原则
在软件开发的复杂多变环境中,自动化测试已成为确保产品质量和加速市场交付的关键步骤。本文将探讨自动化测试框架的设计原则,包括模块化、可扩展性、易用性和可靠性,旨在为软件测试工程师提供构建高效、健壮且易于维护的自动化测试系统的指导。通过分析设计模式的应用,我们将了解如何减少代码冗余,提高测试覆盖率,并适应快速变化的技术要求。
|
22天前
|
前端开发 IDE JavaScript
深入理解自动化测试框架Selenium的设计与实现
本文旨在探讨开源自动化测试框架Selenium的核心设计及其实现机制。通过分析其架构、组件和工作原理,揭示Selenium如何有效地支持跨浏览器、跨平台的自动化Web测试。文中不仅介绍了Selenium的主要功能模块,还详细讨论了其面临的挑战及应对策略,为读者提供了深入了解和使用Selenium的理论基础和实践指导。
|
26天前
|
设计模式 敏捷开发 监控
深入理解与应用软件自动化测试框架
在快速迭代的软件开发过程中,自动化测试已成为确保产品质量和加快交付速度的关键因素。本文将详细探讨自动化测试框架的核心原理、设计模式及其在实际项目中的应用。我们将分析几种流行的自动化测试工具,如Selenium、Appium和JUnit,并讨论它们如何集成以形成强大的测试解决方案。文章还将展示通过自定义框架来满足特定测试需求的实例,以及如何通过持续集成和持续部署(CI/CD)流程优化测试实践。
|
27天前
|
敏捷开发 IDE 测试技术
深入理解自动化测试框架Selenium的设计理念与实践
随着敏捷开发和持续集成的理念深入人心,自动化测试在软件开发周期中扮演着越来越重要的角色。Selenium作为一个广泛使用的自动化测试工具,其设计理念和实践对于提高测试效率和质量具有指导意义。本文将深入探讨Selenium的核心设计原则、架构以及最佳实践,旨在帮助读者构建更稳定、高效的自动化测试系统。
|
27天前
|
jenkins 测试技术 持续交付
深入理解自动化测试框架设计原则与实践
本文旨在探讨自动化测试框架的设计原则及其在实际项目中的应用。通过对自动化测试框架的系统剖析,我们揭示了有效构建和维持测试框架的核心要素,并提供了一套实用的指导方案来帮助读者实现高效、可靠的自动化测试流程。文章不仅聚焦于框架的技术细节,也强调了灵活性、可维护性和可扩展性在设计时的重要性,同时结合实际案例分析,展示了如何在不同测试环境中定制化和优化测试框架。
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率:AI驱动的自动化测试策略
【2月更文挑战第30天】随着人工智能(AI)在软件开发周期中的日益普及,其在提高软件测试效率方面的潜力正受到越来越多的关注。本文探讨了如何通过集成AI技术来优化自动化测试流程,从而减少重复工作、提高错误检测率和加快反馈速度。我们将分析当前AI在自动化测试中的应用,并提出一系列策略以利用AI改进测试案例生成、执行和维护过程。
66 0

热门文章

最新文章