查看原文
其他

未来已来,人工智能测试势不可挡:介绍9款AI测试工具

朱少民 软件质量报道 2022-06-03

昨天,杭州传来大消息:这座创新之都要拿出真枪实弹的道路,进行无人自动驾驶测试。太棒!这是继深圳、上海之后,又一个城市进行无人驾驶汽车测试。居然,有媒体人说“快得让人胆颤心惊!”

今天,我打电信10000号时,体验和以往完全不同,不再按“1、2、3、…”这样的数字键,而是和机器人对话,直接说“宽带报修”,那边机器人说;“您刚才保修过一次,还要继续吗?”,我说“确认”…。

之前,我们也被许多事件感到震惊,甚至恐惧:

  • AlphaGo、AlphaZero完胜世界顶尖围棋手

  • 微软的语音识别技术首次达到了人类同等水平

  • 翻译机器人已经超过具有专业翻译水准

  • 医院、工厂开始引进更多的机器人

  • 智能家电更是如雨后春笋、层出不穷

  • 刷脸解锁、刷脸支付

  • ……

人类开始走入人工智能(AI)的时代。


AI的本质是通过软件来实现特定的算法,各行各业的AI如火如荼,但感觉软件工程自身的AI反而落后,是这样吗?也不是,而是暗流涌动,在未来某一天会爆发开来。这里,通过给大家介绍多款引入AI的测试工具,让大家体会到AI已近在眼前,不管你见还是不见。当我们使用这些新一代的测试工具,会体会到一场新的测试革命正在发生,测试机器人也会不断涌现出来。


1. Applitools

Applitool采用一种自适应的算法来进行可视化测试(或者说视觉验证),而且不需要事先进行各种设置,不需要明确地调用所有元素,但能够发现应用程序中的潜在错误。

  • 利用基于机器学习(ML) / AI进行自动维护(能够将来自不同页面/浏览器/设备的类似变化组合在一起);

  • 修改比较算法,以便能够辨别哪些更改是有意义的、显著的;

  • 能够自动理解哪些更改更可能是一种缺陷还是一种期望,就这种差异进行排序;

  • 很多这些事情在行动中看起来还为时过早,但看着路线图会让你了解现在有多少AI被纳入测试工具公司的路线图。

记得两年前,我还给某企业做自动化时,介绍过这个工具,那时AI还没有那么突出,只是作为视觉验证技术来介绍的,有图为证。


2. Appvance IQ

根据应用程序的映射和实际用户活动分析,使用机器学习和认知自动生成自动化测试脚本。脚本生成分为两步走:

  1. 生成应用程序蓝图:由机器学习引擎创建的应用程序蓝图封装了对被测应用程序的来龙去脉的深入理解。蓝图随后能够集成真实用户如何浏览应用程序的大数据分析。

  2. 脚本生成是认知处理的结果,可以准确地表示用户做了什么或试图做什么。它使用应用程序蓝图作为被测应用程序中可能的指导,以及服务器日志作为实际用户活动的大数据源。 

AI驱动的脚本生产是软件测试的一项重大突破。 它将极大降低脚本开发的巨大工作量——接近为零的工作量。AI创建的脚本组合既是用户驱动的,又比手动创建的脚本更全面。


3. Eggplant AI自动化

Eggplant Digital Automation Intelligence整套工具使用AI和深度学习来从界面上寻找缺陷,能够自动生成测试用例,大幅度提高测试效率和覆盖率。

  1. 通过用户的眼睛测试。分析实际屏幕 - 而不是代码,使用智能图像和文本识别来测试应用程序逻辑、动态的用户界面,并进行真正的端到端测试。,这样可以测试任何设备上的、各种不同技术开发的软件,并可以像用户一样与应用进行交互。

  2. 能够测试功能、性能和可用性 - 所有与用户体验相关的关键产品属性。通过用户的眼睛验证这种体验,可以更简单、更直观地进行测试。这意味着,非技术人员 - 从手动测试人员到业务分析人员、产品和用户专家 - 都可以成为有效的测试人员。

  3. 使用人工智能和机器学习自动生成测试用例,并优化测试执行以发现Bug并覆盖各种用户体验,可以增强自动化测试的执行力度。基于测试结果、根本原因和用户影响的自动化分析,可以帮助团队提高生产力并缩短上市时间,并与DevOps保持同步。

  4. 完全量化的质量管理,实现了跨职能协作,弥合了产品所有者与质量保证部门之间的差距。可以完全根据指标合格率和缺陷密度来报告质量状态,而不是以用户术语来揭示应用质量的细节,如应用评分、页面加载时间、消费者转换率等。


4. MABL

Mabl由一群前Google雇员研发的AI测试平台,侧重对应用或网站进行功能测试。在Mabl平台上,我们通过与应用程序进行交互来 “训练”测试。录制完成后,经训练而生成测试将在预定时间进自动执行。

  1. 没有脚本的自动化测试(Scriptless tests),并能和CI集成

  2. 消除不稳定的测试(flaky tests) - 就像其他基于AI的测试自动化工具一样,Mabl可以自动检测应用程序的元素是否已更改,并动态更新测试以补偿这些更改。

  3. 可以不断比较测试结果和测试历史,以快速检测变化和回归,从而产生更稳定的版本。

  4. 可以帮助快速识别和修正缺陷,在用户受到影响之前就能提醒我们可能产生的影响。


5. ReTest

ReTest 是一家德国公司的产品,源于人工智能研究项目,使用人工智能猴子来自动测试应用程序(Intelligent monkey testing)。与其他测试自动化工具不同,在创建脚本时不需要选择被测对象的ID、会自动处理等待时间,脚本执行非常稳定。如果属性或元素是不稳定的,那么可以在执行测试后简单地标记它们。本工具号称是专门为测试人员设计的,能有效地消除了用户拥有任何编程技能的需求,测试人员只需要领域知识、待测试软件的工作原理以及认定缺陷的能力。


6. Sauce Labs

Sauce Labs,测试人员比较熟悉,移动app自动化测试框架Appium出自他们手里。Sauce Labs是最早开始基于云的自动化测试的公司,每天运行超过一百五十次的测试,通过多年测试数据的积累而拥有一个虚拟宝库,能够利用机器学习来针对这些数据进行分析,更好地理解测试行为,主动帮助客户改进测试自动化。他们相信,在测试中使用已知的模式匹配和不同的AI技术是非常有用的。


7. Sealights

Sealights类似Sauce Labs,也是一个基于云的测试平台,能够利用机器学习技术分析SUT的代码以及与之对应的测试,不局限于单元测试,还包括系统级的业务测试和性能测试。它还有一个显著特点,基于机器学习以呈现完整的质量Dashboard,帮助我们进行“质量风险”的评估,能够关注用户所关心的东西,包括哪些代码未经某种类型或特定的测试,这样很容易地确保未经测试的代码不会上线,至少要得到尽可能的必要的验证。

Sealights可以轻松创建每个人都能看到的高质量仪表盘。因此,对于每个构建,您都可以了解测试的内容、状态和覆盖范围,以及是否正在改进,减少或存在质量问题。


8. Test.AI

Test.AI (前身为Appdiff ) 被视为一种将AI大脑添加到Selenium和Appium的工具,以一种类似于Cucumber的BDD语法的简单格式定义测试。Test.AI在任何应用程序中动态识别屏幕和元素,并自动驱动应用程序执行测试用例。它由Justin Liu和Jason Arbon创建。


9. Testim

Testim专注于减少不稳定的测试(flaky tests)和测试维护,试图利用机器学习来加快开发、执行和维护自动化测试,让我们开始信任自己的测试。


除了上述工具/平台之外,像Functionize 、Panaya Test Center 2.0、Kobiton、Katalon Studio和 Tricentis Tosca等工具也具有智能特性。


其它参考:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存