人工智能 自动化测试
敏捷方法论的发展迫使企业进行创新并以闪电般的速度交付。 在交付周期时间减少的同时,提供积极的用户体验并保持竞争优势所需的技术复杂性也在增加,而我们引入引人注目的创新的速度也在增加。
为了满足持续集成和交付的需求,我们转向了以自动化为后盾的连续测试,但是当这些趋势持续并且差距扩大时,我们如何进行测试? 由于这是数字转型的时代,我们需要数字测试来满足由AI,IoT,机器人技术和量子计算驱动的未来质量需求。
如果我们观察一下测试实践随时间的变化,那么直到2018年,它都集中在CI / CD,可伸缩性和连续测试上。
现在,测试的期望更多地是关于实时风险评估。 为了满足当前场景下的测试期望,人工智能(AI)可以模仿人类的智能行为进行机器学习和预测分析,可以帮助我们实现目标。
超越连续测试
如果我们分析自敏捷出现以来的旅程,它已经完全改变了交付应用程序的方式。 在敏捷开发之前,曾经有一个月甚至有时超过一个月的发布时间。 在敏捷方面,公司会进行两周的冲刺,并在两周内发布。 为此,Continuous Testing出现了,其中开发了用于回归和健全性测试的自动化服。 这支持快速交货和快速的测试周期。
现在,随着世界朝着数字化转型的方向发展,预测市场需求并建立具有可预测性和可扩展性以适应未来趋势的系统的压力已无可避免。 测试将需要额外的帮助以加快该过程。 人工智能模仿人类的智能行为来进行机器学习和预测分析,可以帮助我们实现目标。
什么是人工智能?
首先让我们了解人工智能的含义。 Forrester将AI定义为-
“通过编码,业务规则和越来越多的自学功能构建的系统,该系统能够补充人类的认知和活动,并与人类自然互动,而且能够理解环境,解决人类问题并执行人类任务。 “
简而言之,人工智能使机器能够通过数据学习,从而赋予他们做出决策的能力。 这些算法不是为解决特定问题而编写的,而是以一种使系统能够基于数据做出决策的方式进行设计的。
如何在软件测试中使用AI?
使用AI和机器学习来自动化-
a)单元测试–单元测试对于确保构建稳定且可测试非常重要。 借助RPA等基于AI的单元测试工具,开发人员可以减少繁琐的测试用例并维护单元测试。
b)API测试 -API测试通过深入了解问题的根本原因来节省时间和精力。 UI测试的问题在于,由于UI不断变化,它们不再可靠,而API测试可以使应用程序更深入地了解问题,并直接找到问题的根源,最终使应用程序更加健壮。
有许多工具正在使用人工智能,通过将手动UI测试转换为自动API测试,降低采用API测试所需的技术技能并帮助组织制定可扩展的全面API测试策略,从而帮助降低API测试的复杂性。
c)UI测试-自动化的第一步是将手动UI测试转换为自动化测试。 有一些工具可以利用AI在多个平台和浏览器上运行测试用例,还可以从功能流程中学习,从而减少维护工作并使测试更加可靠。
以下是一些最受欢迎的工具-
由AI驱动的测试工具-有多种使用AI的测试工具,尽管没有充分利用AI的优势,但它们仍然能够为测试人员提供很多帮助-
1. Applitools-这是一款由AI驱动的视觉测试和监视工具,可以在不同的浏览器和平台上运行测试。 它使用AI来识别UI中有意义的更改,并将它们识别为错误/所需的更改。
它还利用基于ML / AI的自动维护功能(能够将来自不同页面/浏览器/设备的相似更改分组在一起)
2. Testim-它利用机器学习进入自动化最关键的部分,即执行和维护测试。
3. Sealights- Sealights使用AI和机器学习来分析代码并运行覆盖受影响区域的测试。 它可以是任何类型的测试单元,功能,性能,手册等。
它提供了有用的见解“质量风险”,让用户准确了解上次构建中未通过特定测试类型(或任何其他测试类型)更改的文件/方法/行,从而使用户将精力集中在重要的事情上。测试类型)。
4. Test.AI- Test.AI正在构建为一种工具,它将为Selenium和Appium添加AI大脑。 它是由Jason Arbon创建的,Jason Arbon是Google测试软件的合著者和Appdiff的创始人。 测试以类似于Cucumber的BDD语法的简单格式定义,因此它不需要代码,也不需要弄乱元素标识符。
- AI就像真实的人一样,识别应用程序中的屏幕和元素。
- AI执行用户场景-准备就绪即可按需测试
- AI可以识别元素,因此即使情况发生变化,您的测试也不会中断。
5. MABL-与其他基于AI的测试自动化工具一样,MABL可以自动检测您的应用程序元素是否已更改,并动态更新测试以补偿这些更改。 您只需要显示必须进行测试的工作流程,然后MABL完成其余工作。
6.重新测试-重新测试传播了一种创新的测试方法,该方法是“智能”猴子测试和“差异测试”的组合,实际上比常规测试更像GUI版本管理。
此工具进行猴子测试,从而使猴子(称为Surili)具有人工智能,并且可以通过捕获用户动作来由用户进行训练。
7. ReportPortal-顾名思义, ReportPortal是一款由AI驱动的自动化工具,其重点更多地放在报告分析和管理上。 根据其网站-
- 一站式管理所有自动化结果和报告
- 使自动化结果分析具有可行性和协作性
- 通过缺陷管理建立快速可追溯性
- 加快常规结果分析
- 可视化指标和分析
- 一起做出更明智的决策
8. Functionlize- Functionlize提供了一个无缝自动化的整体解决方案,而在AI的帮助下,维护工作量几乎为零。 它的AEA工具查找并修复了损坏的测试脚本,从而消除了手动维护。
Functionize使用机器学习进行功能测试,就其功能而言,它与市场上的其他工具非常相似,例如能够快速创建测试(无需脚本),在几分钟内执行多个测试以及进行深入分析。
通过在功能化测试云中维护测试套件,它还提供了可伸缩性。
人工智能在测试中的挑战
机器学习过程完全取决于数据,因此导致数据集的数量很大。 AI模型测试场景应具备识别和消除人为偏差的能力,而人为偏差通常成为训练和测试数据集的一部分。
缺乏对AI和机器学习过程的认识,并且测试人员需要适当的培训。
2019年及以后的AI
随着我们从线性瀑布模型发展到敏捷,未来将关乎AI和机器学习技术。 作为一名测试人员,我们需要先行一步,开始深入研究AI的各个方面,动手使用AI驱动的工具并加以利用。
无论是聊天机器人还是亚马逊的Alexa,人工智能已经在很多地方铺平了道路,我们需要非常热衷于如何将设备用于测试用例以测试此类应用程序并快速交付。
随着基于AI的测试工具需求的增长,测试人员可能最早需要培训。 具有AI及其应用程序的高级知识将非常有帮助。
翻译自: https://www.javacodegeeks.com/2019/04/testing-third-wave-automation.html
人工智能 自动化测试