当前位置:首页 > 智能硬件 > 人工智能AI
[导读] 人工智能一直科技最高级的地域,将程序代码、数据分析进行自动可视化,依托软件和硬件一体去模仿人类一些或繁琐或简单的工作。 此文也是关于人工智能技术的探讨,主题为:如何将人工智能技术应用到自

人工智能一直科技最高级的地域,将程序代码、数据分析进行自动可视化,依托软件和硬件一体去模仿人类一些或繁琐或简单的工作。

此文也是关于人工智能技术的探讨,主题为:如何将人工智能技术应用到自动化测试上?

在测试中加入AI,自动测试也变为可能。将无聊、重复的工作交给AI,这样测试人员就可以用更多时间做其他测试方面的思考。

布道师、Applitools的高级架构师Gil Tayar为我们介绍了如何将AI技术应用到自动化测试的内容。

InfoQ采访了Tayar,咨询了他有关现如今测试面临的主要挑战,自动化测试分为哪六个层次,软件产业在这六个层次中取得了什么样的进展,如何实现自动可视化测试,我们在测试中如何应用机器学习技术,以及AI给测试人员的工作会带来什么影响。

现如今测试面临的主要挑战是什么?

Tayar:很遗憾的是,测试还没有成为主流。我还记得在80年代、90年代的时候,整个行业都没有把QA这个职业和手动测试软件当一回事。不只是说没有自动化测试,而是根本没有测试!好在现在时代已经不一样了,在交付产品之前测试人员都会定期测试软件,而且很多人开始使用自动化测试。

但在如今的“互联网时代”,这还不够。由于使用了敏捷方法,我们需要部署得越来越快,这其实是一件好事。因为越来越多开发人员会自己测试自己的软件,而不是慢悠悠地等待专门的测试人员来测试他们的软件。

但是,开发人员测试自己的软件还没有成为主流。大多数开发人员不会自己写测试来检查代码,他们选择手动测试,或者等待测试人员进行测试,保证他们的软件正常运作。

这正是测试面临的主要挑战,怎么让开发人员编写自己的测试。而不幸的是,AI在这方面起不到什么作用,AI只是测试时使用的工具,但如果你自己不测试,AI就没用了。事实就是这样,AI从现在到未来都只能作为测试的辅助,如果你自己不想测试,AI不可能自动帮你完成测试。

开发人员必须要有测试的想法,这就是我们在测试方面面临的主要挑战。

自动化测试的六个层次。它们分别是什么?

Tayar:这个概念来源于自动驾驶的五个层次。它们描述了AI如何帮助我们进行测试。

完全没有自动,你需要自己写测试!

驾驶辅助:AI可以查看到页面,帮助你写出断言。你还是要自己写“驱动”应用程序的代码,但是AI可以检查页面,并确保页面中的期望值是正确的。

部分自动化:虽然能分辨实际页面和期望值的区别这一点已经很好了,但是第二层次的AI需要有更深层的理解。比如说,如果所有页面都有相同的变更,AI需要认识到这是相同的页面,并向我们展示出这些变更。进一步来说,AI需要查看页面的布局和内容,将每个变更分类为内容变更或是布局变更。如果我们要测试响应式web网站,这会非常有帮助,即使布局有细微变更,内容也应该是相同的。这是Applitools Eyes这样的工具所处的层次。

条件自动化:在第二层,软件中检测的问题和变更仍然需要人来审查。第二层的AI可以帮助我们分析变更,但不能仅仅通过查看页面判断页面是否正确,需要和期望值进行对比才能判断。但是第三层的AI可以做到这一方面,甚至更多其他方面,因为它会使用到机器学习的技术。比如说,第三层的AI可以从可视化角度查看页面,根据标准设计规则,例如对齐、空格、颜色和字体使用以及布局规则,判断设计是否过关。AI也能查看页面的内容,基于相同页面之前的视图,在没有人工干预的情况下,判断内容是否合理。我们还不能达到这一层次,但我们正在向这个方面努力。

高度自动化:直到现在,所有AI都只是在自动化地进行检查。人类尽管使用自动化软件,还是需要手动启动测试,需要点击链接,而第四层的AI可以自动启动测试本身。AI将通过观察启动应用程序的真实用户的行为,理解如何自己启动测试。这层的AI可以编写测试,可以通过检查点来测试页面。但这不是终点,它还需观察人的行为,偶尔需要听从测试人员的指令。

完全自动化:我必须承认,这个层次有点恐怖。这个层次的AI可以和产品经理“交流”,理解产品的标准,自己写测试,不需要人的帮助。

软件产业在这六个层次中取得了什么样的进展?

Tayar:大多数公司肯定在第二层,目标向第三层努力。我相信要达到第四层需要一段时间,但我们终有一天是可以达到的。至于是否能达到第五层,我非常怀疑,但未来不可估量!(原文中引用了古犹太人毁坏第二圣殿的典故,比喻未来不可估量。)

如何实现自动可视化测试?

Tayar:其实在几年前,即使是开发人员都不能自动进行可视化测试,更不要说使用AI了!由于基于像素的算法误报率过高,截图应用程序,根据预期进行检查是不可能的。

但是随着计算机视觉算法和现代人工智能(AI)技术的应用的发展,编写可视化测试已经成为现实。人们发现测试中缺少可视化测试。由于可视化测试的存在,现在我们可以测试到软件的方方面面。

那我们如何使用AI技术避免误报,AI是否能比单纯比较像素的算法做得更好?答案不仅仅牵涉到一个技术,需要将不同算法结合在一起,一个算法解决一个准确度的问题,通过决策树结合不同算法的结果(有时候将一个算法的结果应用到另一个算法中)来确定最后的结果。但要使用什么算法呢?分割算法就是一个例子,这个算法试图确定图片的文字和图像部分。这不是一个简单的问题,因为我们需要弄清,表情符号其实是文字,而图像中的文本是图像的一部分,并不是新的文字。这就是深度学习的魅力所在,由于我们代码中使用了深度学习技术,我们的准确率从88%提高到了96%。

所以要做到自动视觉化测试,你需要使用现代的数据化测试工具,比如Applitools Eyes。这些工具有一些简单的高级AI技术,因此你不需要理解并实现。看看这个例子:

在这个例子中,我们验证了一个博客应用程序。在常规的、非视觉化、非AI的测试里面,我们需要验证主页和特定的博文,对于页面中的每个元素进行几十次检查(即使这样我们还是会遗漏一些)。但是在这个例子里面,我们只是“checkWindow”,截图上传到服务器,服务器使用AI技术检验截图。

我一直觉得,测试是为开发过程服务的,它避免了在代码中添加新功能的烦恼,更重要的是,避免了代码重构的烦恼。但为什么这只能运用在业务逻辑上?为什么我们的可视化代码(在CSS、HTML和JS文件中)不能测试,我们还要再为它们担忧?AI可以帮助我们实现这一目标。

Appraise是另外一款可以用于视觉化测试的工具。早先,InfoQ采访了Gojko Adzic有关使用Appraise进行自动视觉化测试的内容:

Adzic:Appraise采用实例化需求的方式,但将其运用于视觉化内容。我们采用具体的例子,让其从自动化层面创建可执行的实例化需求,用headless Chrome截屏,与预期的结果进行对比。和普通的实例化需求工具(期望结果和实际结果不同就认为是错误的)不一样,Appraise采用确证测试方法。它将所有的不同展现给人来评估,让人决定差别是否正确,如果是的话就进行确认。

我们在测试中如何运用机器学习?

Tayar:我最近看到了一个讲座,讲的是如何使用机器学习测试Candy Crush游戏。由于Candy Crush是高随机的游戏,任何情况都可能发生,标准的测试技术很难实现。King的目标是想要了解是否这局游戏可以成功完成,要完成有多复杂。他们一开始使用蛮力法尝试所有路径,计算其中有多少可以成功。这个方法确实有用,但需要花好几个小时,因为组合可能太多了(使用去除无效路径组合的算法)。要解决这个问题,他们使用了Genetic Algorithms,使用一些最基本的算法(如只使用粉色糖果,一直消除障碍等),在一局游戏中进行试验。之后他们使用最佳算法(基于如何胜利完成一局游戏的算法),再结合两者,“创建”一个新的算法。不断重复,最后得到一个最佳算法。

再举一个例子,卷积神经网络帮助我们分析图像,并从中提取语义信息。在生成图像的应用程序中是非常实用的。可视化测试工具使用它来理解页面的不同部分,以及相互之间的联系,正如我上文所述一样提取不同的文字和图像块。

AI会对测试人员的工作产生什么影响?

Tayar:请问拖拉机会给农民的工作带来什么影响?当然是巨大的影响!农民不再需要做枯燥、乏味的体力劳动工作,只要交给机器来做就可以了。我相信AI也会给测试人员带来相同的影响。乏味、重复的工作交给AI,测试人员就可以用更多时间来思考。

大多数测试人员已经习惯思考测试相关的方方面面:思考产品,思考怎么测试,思考边界情况等等,他们也需要工具来完成无聊、重复的工作。一些测试人员需要学会怎么思考更高层次的问题,确实会有一部分测试人员无法适应,但我相信他们只是少数。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭