2019年10月26日,由Testin主办的第二届NCTS中国云测试产业峰会在京召开。以“AI+未来”为主题,汇聚国内外测试领域知名专家学者、领先企业决策者、高层技术管理者、媒体从业者等,共同探讨高端云测试技术,帮助测试从业者了解最前沿的行业动态和最新的行业实践。会上,Testin总裁徐坤正式发布了AI测试新品iTestin。iTestin作为Testin人工智能战略的重要组成部分,融合了当前测试领域最顶尖的自然语言处理、文本识别、图标识别技术,全面提升测试产品。易用性和自动化效率,在成倍提高脚本编写效率的同时,也成倍增加脚本的维护成本。在现场发布环节,徐坤用自然语言展示了iTestin上AI+测试的真实能力,引起了现场观众的惊叹和赞叹。使用iTestin的测试人员只需要在界面中输入点击、等待、勾选、长按、输入等自然语言的文字描述,后台的AI就可以进行完整无误的操作及相关真机指令准确实时。以下为徐坤演讲实录:我是Testin的徐坤。先简单说一下举办NCTS中国云测试产业峰会的出发点。Testin已经做了8年的测试。我们发现整个测试行业,交流和分享的机会并不多。邀请从业者,以及互联网头部企业的一线测试专家,共同探讨中国测试领域的发展方向,与同行学习分享更好的经验。希望大家参加会议都能有所收获。今天是Testin组织的第二届云测试峰会,未来还会有第三、第四届。我们会一直持有下去,希望能为测试行业做一份小小的贡献。进入正题,本次大会的主题是AI+Future。我将介绍Testin通过人工智能在自动化测试方面的探索和成果。我将从测试的自动化开始。做测试的人很清楚,70%到80%的工作是重复的,都是在做同一个测试。自从有了测试,大家就在想,有没有可能用自动化的技术,把人们从重复枯燥的测试中解放出来。之前我把业界能找到的流行的自动化框架都找了一遍,包括基于Android的,基于iOS的等等,发现它们的操作界面都差不多,很像一个IDE。虽然所有的自动化框架都是自动化的,希望降低整体成本,但是测试人员还是要学习编程语言。被测应用总是在变化,导致自动化脚本的修改;另一个是跨应用、跨平台的支持,不是很好。现在自动化测试实现得特别好的往往是接口部分,其他的都不太好。我们也一直在做自动化探索。这个问题的根源在哪里?我们认为是因为底层的一些限制,都是基于程序本身的自动化框架,受限于语言本身。另外,也受限于程序员所能想到的各种场景,机器没有办法去思考和学习。但人是不同的。不管界面怎么变,只要人看得懂,就可以操作。我们在想,随着自动化测试的推进,机器能否像人类一样进行测试,而不是像编写程序那样进行测试?这个问题我们研究了很多年,也尝试过很多次。2012年以后,机器学习出现了,尤其是2016年以后,通过深度学习、计算机视觉、自然语言处理等,我们发现有机会让机器像人类一样理解人类语言,让机器也能理解人类语言。人类理解图形。人类定义了很多图标,比如“后退”、“主页键”等,但是机器可以知道图标背后的含义,可以知道后退键就是返回的意思。当然,机器也可以像人一样操作各种软件,实现原来的自动化。最有趣的一点是,如果我们做得好,机器可以像人一样继续学习,根据数据训练它,这样它可以学习新的场景,甚至比我们自己的,比我们为测试建立的场景更好.好的。Testin花了数年时间将整个人工智能技术整合到测试中,今天将发布iTestin。它的核心,第一部分是语言书写部分,完全基于自然语言,即日常生活中的点击、登录、左滑、右滑等,前端的操作会变得更加简单;另外,我们后台AI的人工智能部分做了大量的工作,会NLP语言和各种图形,比如八个汉字“点击登录”和“向下滑动”,也是这两个iTestin自动化工具的操作语句。我们的目标是两个原则。一种是只要会中文就可以写自动化脚本,点击登录,点击下滑。只要会手机操作,基本都能看懂所有的操作要点。之前给Testin的营销同学介绍过这个产品,半个小时就可以教一个从不知道程序代码的人写出人生第一个程序。基于在手机上的操作,基本可以支持动作,还有一些后台功能,包括等待,系统按钮等等,这些操作其实都依赖于背后AI的识别能力,第一个就是OCR.OCR的准确率会直接影响到整个执行,因为本质是看界面,我们大部分的操作都是基于文本,文本有不同类型的字体,不同的风格,还有遮挡等等,我就不说了技术细节。基本上,通过OCR技术,可以筛选出所有的热点文字,像人一样操作各种文字按钮,就可以看懂整个页面的意思。我们将系统按钮构建到整个AI的背景中。图标部分更有趣。人类识别的图标很多,但AI识别图标是相当困难的。我们收集了上百万个图标,训练这个模型,让它识别常见的,大概不到100个。以后随着数据越来越多,我们会让机器越来越聪明。计算机视觉可以对图形做更多的识别,以后很多事情都可以基于图像来做。让我们在现场测试该工具,看看它是如何工作的。先简单介绍一下,当前画面投射到我们放在这里的笔记本上,左边是手机的界面,后面会有一个小笔记本作为AI的背景。右边是我们录制脚本的IDE。现在我在几百人面前写程序,这个程序是中文的。我现在打开了QQ音乐。一个多月前,周杰伦发布了一首新歌。我会先搜索它。我输入“点击搜索”,操作机就会执行。然后,进入搜索界面,点击搜索音乐,进入输入框,输入“周杰伦”,点击《说我不哭》这首歌。为了测试这个,我们花了很多钱,因为周杰伦每次收费3块钱。看到周杰伦,向左滑一下,我们先停歌,给周杰伦发个信息,我试试分享到QQ空间。输入“少喝奶茶,多写歌”发给他,希望周杰伦能看到。这是我刚才录制的脚本。让我告诉你如果我想回放它会是什么样子。它可以变成一个组合脚本。现在机器正在自己运行。刚才点搜索的时候,会输入“周杰伦”。在结果列表中,我们找到周杰伦的歌曲,再次定位。这是我刚才录制的界面,切到周杰伦的页面,然后左滑,右滑,等待5秒的原因是根据UI层级来识别,我们等待全网下载页面加载,如果网络条件好的话,只需要2秒就可以搞定。希望周杰伦好好减肥,记住我今天当着几百人的面给他说的话。我刚才演示的是单个手机的播放过程。今天带了四部手机。如果我使用多部手机会怎样?左边是单机播放,分步执行。多机播放时,相当于发送一个脚本到后台,在四台手机上自动运行,那四台手机都在柜子里。今天拿起了华为、OPPO、小米、vivo的四款手机,还有刚才写的剧本,这四款手机一起播放这首歌。Testin还有全球最大的实验室,这是我们第一次公开实验室情况。几万部手机,几千款机型,每天都在运行,全世界不同的APP,在上面执行的自动化脚本,都是用我今天给大家演示的NLP方法写的。大约从2011年到现在,整个Testin平台已经运行了超过2亿个应用。刚才郭教授讲了中国大概有200万个app。从成立到现在,Testin已经测试了超过260万个应用程序,测试次数约为2.3亿次。我刚才演示的是机器像人一样做测试的过程。除了它运行的过程之外,机器实际上可以做机器应该做的事情。我们把测试报告汇总,生成的CPU,内存,抓取的所有数据形成一个图表,还有各种测试的结果。我们会保留排序轨迹,所有日志都会被拦截。传统自动化实现下滑需要写20行代码,用iTestin工具写四个汉字“下滑”就可以了。现在,我想测试另一个脚本,它与微信有关。刚才你进场的时候,我的同事应该让你扫一下二维码。不知道大家有没有加入今天测试会的群。如果你还没有,我希望你在10秒内加入该组。如果你还没有加入这个群,一时半会你可能会损失很多。左边是我们的脚本,其实很简单,先点击“微信”,再点击“NCTS”进入这个界面。我们来看看这个脚本,现场看一下,会进入这个群,然后点击更多功能,点击“红包”按钮。金额填“888”,现场测试压力真大。果然,你在做测试,已经充分体现出来了。现场测试结束,回归正题。再看,刚才的“向下滑动”对应的代码。我们会发现原来传统的自动化工具存在一些学习成本高、维护成本高的问题,比如不支持跨平台的问题。我们想通过iTestin这个工具来降低学习成本和维护成本,甚至可以支持跨应用。我只是发到微信和QQ音乐,是跨应用的。本质上,机器就像人类一样操作这个应用程序。如果人工智能变得更聪明,它甚至可以比人类做事更快更好。我们希望通过iTestin让机器像人一样进行测试。最后,我想谈谈Testin的愿望。其实这个愿望刚才已经发给大家了,字都在红包里。我们希望让测试变得更简单,也希望所有做测试的同事都能更快乐。为了让大家更开心,我决定自己发个红包,看看和机器比哪个更快。我今天要说的已经讲完了。希望以后测试的小伙伴们可以多多交流分享,让测试变得更有趣更有效率。再次感谢大家,谢谢!
