如何将人工智能技术应用到自动化测试上?新梦想软件测试

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

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

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

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

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

现如今测试面临的主要挑战是什么/p>

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

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

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

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

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

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

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

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

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

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

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

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

我们在测试中如何运用机器学习/p>

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

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

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

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

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

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树人工智能机器学习工具包Scikit-learn211597 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年6月28日
下一篇 2019年6月28日

相关推荐