加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

Testin云测CTO陈冠诚:AI在自动化测试中的创新机会点

发布时间:2020-01-03 11:44:16 所属栏目:动态 来源:站长网
导读:近日,主题为测思未来的TICA 2019阿里巴巴质量创新大会于杭州举办,作为云测试领域的开创者及下一代测试的引领者,Testin云测公司受邀出席会议,CTO陈冠诚做《AI在自动化测试领域的应用AI引领下一代测试新航向》主题分享,介绍AI技术与自动化测试的结合方式,以

文字识别在深度学习浪潮起来之前,有基于传统机器学习的方法,有两种是典型的,基于非常多的规则,包括精巧算法的设计,相对不是这么通用,但是垂直领域的使用下,精度还好。但是,一旦遇到自然场景,带角度、旋转、光线,因为它们不是靠训练数据驱动的,识别效果不如CPTN或者是EAST算法这么好。

但是,我们识别的时候需要做精度和性能之间的平衡,后面两种方案最大的问题是必须要求GPU才能支撑一个比较好的性能,有好的GPU才能有500毫秒的性能。我们这个产品可以云端部署和私有化部署,私有化部署如果要求客户配置一个GPU才能跑起来,对于有的客户来讲不能承受,我们内部实现多个版本,CPU和GPU方案都支持,可以根据用户的场景和预算灵活配置。

下面讲讲识别。文字识别是基于CRNN的模型做的。这是业界里面相对通行的方法。基于CRNN的思想,最核心点就是使用CRNN的方法提取图像的特征,通过循环神经网络,利用OCR典型的特征去识别,不是一个一个的字符去识别,而是识别一个词,词有上下文的关联关系,登录是有上下文,循环神经网络可以实现。

在深度学习和机器学习里有算法和数据,还有算力。这里面又牵扯到另外一个问题,数据怎么来的问题。我们知道最简单的方法,或者是最容易想到的方法是做大量APP界面截屏或者是人工做标注,但是你想要拿到千万级别的训练数据,用人工的方式效率非常低。

Testin云测CTO陈冠诚:AI在自动化测试中的创新机会点

我们的考虑是,从手机APP的角度上面来讲,用自动化测试的引擎,做大量APP的测试执行。比如,有5万台手机可以做大量的手机的截屏,先做第一步的筛选,用控件树的信息,把文字的内容和控件的内容进行关联。再用机器做校验,然后用人工做校验。用OCR做检测,主要是对位置的框定。把自己的传统的OCR识别匹配上面的信息给对应起来做框定,可以拿到很多数据。其实靠数据做检测不一定准,我们还有人工复核,我们请Testin云测的AI数据标注部门来做,机器生成之后,机器做二次校验,人工再做校验,得到源源不断的数据。

还有一个有意思的点是数据的泛化,有很多场景数据模拟显示不全,不同的背景,模拟分辨率低,模拟立体可以通用机器的方法实现,通过数据的变形之后拿到大量训练的数据样本。

这些都和数据训练相关,还有一个部分是性能。很多客户不具备用GPU部署的能力,我们在想有没有办法在CPU上面跑,OpenVINO是英特尔基于自身现有的硬件平台开发的一个框架。这是我们跟某一家云厂商的付费OCR高精度版本在APP上的测试结果,我们比他们在APP和Web场景下精度更高。

Testin云测CTO陈冠诚:AI在自动化测试中的创新机会点

第三,以图找图和图标识别。我们想要实现三个目标,看左边第一个图,这是一个典型的图文场景,我们看到手机的截屏,不管任何一个图片在屏幕上面的位置会发生变化,甚至背景颜色也会不一样,我们希望实现在不同的背景颜色下面找到同一个图。

第二是常见的系统按纽,典型安卓三个按纽,返回,主页,还有系统功能,有很多图标是通用的,比如,主页加一个搜索图标,通用图标能不能做更好的识别。

在这个图标里有一个问题,不同的设备上,分辨率不同,识别图标的大小不一样,第二个很多的图标是非常简约的设计,特征点非常小,不像做猫或者是狗,目标和整个轮廓性比较丰富,我们很多图标只有一个线,非常的抽象,这个特征非常少的情况下,怎样进行识别,给我们带来非常多的挑战。

第三是场景或者是背景会发生变化,比如,暂停按纽在不同播放音乐过程当中背景发生变化,但是人眼可以看出来是同一个图标,但是机器怎样进行识别?我们用的算法很简单,我们不认为深度学习就是唯一的方法,特征工程+深度学习结合更好,因为传统算法很轻量,这是我们不为深度学习论的最核心的原因,因为它需要GPU才能跑起来。第二点我们在整个全屏搜索上做了大量优化,优化全屏搜索效率。第三是相似度的判别器。我们和行业大厂的以图找图的工具做过对比,他们的精度在68-70%,我们的以图找图精度可以达到97%。

还有一类是通用图标,这里使用100W+图标标注数据做训练。国外有学者做开源的数据集,他们也是用机器控件进行识别和人工标注的方式结合。这里回到另外一个问题,我们讲深度学习或者是AI,有多少人工才有多少智能。我们人工标100万的图标级,比如,典型的前进,搜索,收藏等等典型的图标。举一个应用的例子,自动在整个应用里面找出哪些是“个人中心”的图标,“更多”这样的图标,包括“主页”这样的图标,还有“返回”的相关图标。

举一个真实QQ音乐APP的应用场景。你点击搜索,它直接点击搜索,通过OCR直接找点击搜索音乐这四个字,这时我们输入周杰伦,它就会输入周杰伦在输入框里面。点击周杰伦《说好不哭》,就会通过OCR里面输入周杰伦《说好不哭》,点击第三个《说好不哭》,第三个是我们的关键字,他会被点击到,这里有一个相对位置,我们在移动目标的下侧找另外一个目标,这是点击下侧,输入画像向右滑动,点击暂停按钮。这个时候,暂停按纽是人工标注好,点击分享按纽,分享按纽是我们识别过的这是一个分享按纽。

数据在这个行业里面是最大的壁垒,为什么这么说呢,因为在算法、算力、数据这三个要素中,我认为今天来讲,算法可以通过招到优秀的人才解决,很多算法大家分阶段可以学习学界发表的相关论文,但是数据相对来说壁垒更高。我们有大量的真机,做了各种各样的自动化测试,通过这些测试,确实有可能让整个门槛变得更高。

比如,OCR,前几天遇到识别错误的Bug,用户用非常艺术化的字体进行识别,我们训练的字库里没有这个字体。因为我们见到了这个字体,所以想到要把这个字体拿到训练数据里来,加入到OCR文字识别里,让整个文字识别的精度更高,这是我发现数据在AI应用里面最核心的一个场景,或者是最核心的一个壁垒。

五、总结

AI对于自动化测试,我觉得今天能够在三大环节进行赋能,测试用例的生成,测试的执行,测试结果的生成。整个测试的执行环节,通过文字的识别,图像的识别,图标的识别,让整个测试的执行变得更加稳定,兼容性更好,而不用基于传统机械控件的方式,因为OCR可以通过自动检测,哪怕文字,包括控件在页面上换了位置,只要还在这个页面上,算法都可以自动进行检测,原来用控件的方式,你要告诉整个脚本控件变成了什么。所以整个识别变得更加智能,包括在整个测试结果的解析上,不管是自动进行UI异常的识别,兼容性的识别,崩溃的识别,还有各种数据的分享,把整个测试的结果变得更智能。

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!