自动化测试未来趋势(二)AI 机器学习技术

1. 机器学习

在上一部分,我们介绍了通过自愈技术解决自动化测试过程中对象识别问题。
但是在自动化测试过程中,我们仍然还会面临其他问题:

  • 仍然需要人工获取定位方式;
  • 如果是通过Canvas绘制出来的对象,如何识别元素 (如Flutter Web)。
    等等。

虽然自愈技术在传统的自动化测试中增加了一些容错能力。但是本质上还是基于元素定位的对象识别技术,用到的还是传统的DOM定位技术,如XPath或者是CSS定位器。

而我们知道,移动端和Web端的运行环境复杂,外部干扰因素很容易破坏自动化脚本运行的稳定性,这是元素定位器脆性本质导致的。

所以业界也一直在持续探索更稳定的对象识别技术。在早期我们使用到了CV(Computer Vision)计算机视觉 +OCR(Optical Character Recognition)光学字符设别技术。

而CV和OCR是基于图像处理和统计机器学习方法,比如业内比较流行的自动化测试框架airtest,就是基于CV技术来进行智能控件识别的。通过OCR及图像识别能力,实现相同流程下,一套自动化脚本可以在多平台上执行的能力,大大降低了脚本编写及后期维护成本。

目前业界也在实践与探索基于机器学习技术的CV和OCR来解决自动化测试学习成本高、维护成本高、Hybird识别差、跨应用能力差,以及不支持跨平台等方面的问题。

2. 智能识别

在UI页面中,我们的信息主要由图像和文字构成。如何高效地识别基于图像和文字的控件对象,是当前自动化测试不得不面临的问题。为了解决之前基于DOM技术的元素定位不稳定,以及后期的维护成本。目前在UI控件识别上有两种方式:一个是基于CV技术的图像识别,一个是基于OCR技术的文字识别。

2.1 基于CV的图像识别

传统的CV

在传统方式下,我们主要是基于图像特征识别技术:
提到图像识别算法一定绕不开OpenCV,常用的是SIFT算法,核心就是提取出图片当中的一些关键特征,这些特征在不同的机型,在不同的分辨率下面有很好的适应性。基于传统特征识别技术的处理过程如下图所示:


基于深度学习的CV

这种方法比现行的定位策略( image )更灵活,因为我们可以用CNN,或者其他深度学习框架来训练 AI 模型去识别控件图标,并不需要知道上下文,也不需要精确匹配控件图标。也就是说我们可以能跨应用和平台去找一个如 “购物车” 的图标这样的控件,不需要在意一些细微的差别。基于深度学习的处理流程如下图所示:


尽管基于深度学习的CV具有更强的能力,但是传统的方式依然有不可替代的优势,值得我们继续学习。如从目前来看深度学习仍然需要大量的数据,而传统的方式在这方面就会节省很大的成本。对于一些比较简单的识别任务,我们更推荐传统的CV方式。

2.2 基于OCR文字识别

OCR可识别屏幕上的预定义字符。使用OCR的软件将采用“最佳猜测”的方式来确定图像是否与字符匹配,以便将该图像转换为计算机可以处理的文本。传统的OCR基于图像处理(二值化、连通域分析、投影分析等)和统计机器学习(Adaboost、SVM)。

传统的OCR只能处理相对简单的场景,如:简单的页面布局、前景和背景信息便于区分及每个文本字符容易分割。随着我们的测试对象月来越复杂,页面布局,样式等多样化的场景下,传统OCR的精准度也收到了挑战。

随着深度学习的发展,我们可以通过新的算法技术来解决传统OCR的局限性。

3. 案例实践

在业内,大部分基于AI的自动化测试平台均采用了CV+OCR结合的智能识别技术,来降低自动化测试脚本编写成本以及后期的维护成本。

我们分别以基于OpenCV的airtest 平台为例:

基于OpenCV的UI自动化 - Airtest

Airtest主要用到了两种传统的OpenCV匹配算法:1. 模版匹配, 2 特征匹配
两种匹配算法的特点如下:
模板匹配

  • 无法跨分辨率识别
  • 一定有相对最佳的匹配结果
  • 方法名:"tpl", "mstpl"

特征点匹配

  • 跨分辨率识别
  • 不一定有匹配结果
  • 方法名列表:["kaze", "brisk", "akaze", "orb", "sift", "surf", "brief"]

在Airtest中可以自己配置选择使用的匹配算法。由于两种匹配算法各有利弊,因此一般默认是选择这几种匹配算法组合,算法依次进行图像识别,找到结果将停止识别,未找到结果将会一直按照这个算法的识别顺序一直循环识别直到超时。

如何判断图像识别成功或者失败呢?Airtest里面有两个重要的名词:阀值和可信度,阀值是可以配置的,一般默认为0.7,可信度是算法执行结束后计算出来的可能性概率,当 可信度>阙值 的时候,程序会认为 找到了最佳的匹配结果 ;而当 可信度<阙值 的时候,程序则会认为 没有找到最佳的匹配结果 。

如下这个例子:在Airtest中操作网易云音乐APP :



Touch(“图片”) 的原理如下:


Airtest本身并没有直接提供OCR方式识别,不过我们可以通过集成开源的Tesseract-OCR库来支持OCR识别能力。

面临的挑战:

基于传统的OpenCV的图像识别,主要的问题是图像的特征识别不够准确,特别是在图像本身的特征比较少,如有一大片白色背景等,或者是动态元素等。同时传统的识别成功率平均也就80%左右,还达不到人工的95%的准确率,因此在传统方式下,我们只能通过添加更多特征信息来优化识别率,但是想要匹配人工的准确率,传统的统计机器学习方式很难达到。

解决这个问题就需要更强的泛化能力,目前更多的是基于CNN等深度学习技术来解决此类问题。我们这里就不过多展开,大家可以参考Appium with AI项目。

详情:https://appiumpro.com/editions/39-early-stage-ai-for-appium-test-automation

4. 未来展望

随着DL,RL和NLP等技术的不断发展,未来是不是完全可以将我们的用户故事自动转化为自动化测试用例,做到了真正的零代码呢,目前业内也有这样的探索了,我们也在持续跟进。

CV和AI算法的加持让UI自动化测试在对象识别上有了新的突破,但依然无法摆脱软件层API操作的局限,受所在操作系统限制,依旧存在部分特定场景下元素无法识别的问题(如系统内Push消息操作);

我们可以看到业内领先的公司在尝试自动机械臂方式,来解决这个问题。
如下图阿里的Robot-XT:


图片出处:https://mp.weixin.qq.com/s/5ZngQyJiRZy6714-CC498g

那么这些技术是否是大厂的“专利”呢? 我想答案是否定的,未来AI技术一定也会像水电煤一样,变成最基础的底层设施,我们只需要会用即可。

5. 总结

在本文中,我们介绍了两种应用比较广泛的自动化测试新技术,目的是帮助大家了解自动化测试未来的发展趋势,从而更好地利用新技术来提高我们的测试效率。

自动化测试未来趋势不仅仅是这两种,还有如智能化探索性测试,智能遍历测试以及智能验证等。关于智能遍历所用到的技术,大家可以参考DQN的介绍

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容