【.com速译】在传统的软件开发中,测试人员除了手动进行各种测试外,往往还需要依赖自动化测试工具来重复执行一些相同的测试任务。对于一些简单的测试任务,不做任何修改,直接按照硬编码的值执行,记录回放工具可以记录用户的操作步骤,在相同的条件下,以相同的方式多次执行相同的步骤。虽然自动化测试的优点是减少了测试大量用例所花费的时间,但缺点是必须使用相应的自动化测试脚本。因此,测试人员往往需要花时间学习测试目标对应的编程语言以满足特定的测试需求,或者需要四处寻找现有的脚本资源。同时,他们需要维护现有的测试用例并根据需要进行调整以跟上测试目标的变化。此外,自动化测试的缺点还包括:可定制性有限:只有测试人员具备一定的编程能力,并且测试工具能够支持测试用例的语言导出,才能提供测试记录的定制。受限于屏幕大小和分辨率:测试工具在记录测试对象的屏幕位置时,可能会因为显示分辨率的调整和应用在不同场景和功能下的尺寸变化而失去原来的定位。显然,由于大多数自动化测试任务需要能够处理一系列测试数据,并且能够在不同条件和不同环境下执行测试,因此记录和回放工具只能自动化其中的一小部分。当然,客观来说,录制回放工具对于自动化测试的初学者和应用变更不频繁的场景来说确实是一个理想的解决方案。在测试界,人们容易将“无脚本自动化测试工具”与“录制回放工具”混淆。记录和回放为作业脚本提供硬编码输入值,用户可以从中自定义它们。借助无脚本自动化测试,您可以根据目标应用上的用例自动生成相应的测试脚本,是对传统录制回放功能的升级。因此,无脚本测试自动化是一种更加结构化的模型。使用可重复使用的脚本,用户可以轻松地自动化大部分测试用例。经过多年的发展和迭代,目前市场上有很多易于编写和维护的无脚本测试方案。让我们来讨论一下最流行的十种解决方案:1.自然语言处理(NLP)目前,一些最新的无脚本自动化测试工具可以使用NLP语法创建各种测试用例。就像编写简单的英文句子一样,用户可以轻松地自动化测试用例。这类工具一般都有AI驱动的内核,大大节省了用户维护的时间。因为用户只需要了解创建测试用例的正确语法,并根据实际情况应用到不同的测试场景中即可。此类工具的学习曲线并不陡峭。目前市面上典型的使用NLP的自动化测试工具包括:Testsigma(https://testsigma.com/)和Functionize(https://www.functionize.com/)等。2.基于模型的测试不同于大多数只创建测试脚本的工具。以TOSCA(https://www.tricentis.com/products/automate-continuous-testing-tosca/)为代表的模型化测试技术(https://www.tricentis.com/products/automate-continuous-testing-tosca/)tosca/)://dzone.com/articles/three-ways-to-crack-the-test-design-code-with-mode)为被测应用程序创建自动单元测试(AUT)模型。此类工具通常具有测试用例自动化所需的三个组件:AUT技术细节、测试计划逻辑和测试数据,它们可以组合并用于测试。每当检测到AUT中的任何变化时,中央模型都会自动更新已存储的有关AUT的所有技术细节。因此,此类测试技术更适合需要频繁维护的繁琐任务。为了能够覆盖所有需要测试的用例,同时忽略那些不需要涉及的部分,TOSCA将使用基于风险的测试技术(https://dzone.com/articles/risk)在除了基于模型的测试技术-based-testing),按需执行测试用例。3.录制截图使用“录制截图”作为测试步骤和动作的工具,主要用于视觉效果的应用测试。当现有屏幕截图与当前被测应用程序存在差异时,它们会立即生成相应的报告。Testim(https://www.testim.io/)和Screenster(https://screenster.io/)是两个典型的使用这种方法的工具:Testim.io记录了这个操作的Testcase。同时,该工具还提供了重新分组和重用测试步骤的选项。如果运行的测试用例与录制的截图不匹配,则认为录制的测试用例无效。该工具旨在通过使用AI识别和更正UI元素的位置、名称或外观的变化来维护现有测试用例。Screenster使用类似的方法,在每个用户操作后捕获UI屏幕和DOM快照,并将它们设置为可视化的基线,以便在测试期间进行比较。在实际测试过程中,Screenster会及时截取新的UI屏幕截图,并报告与现有基线的差异。Screenster还使用AI来维护各种测试用例。Screenster的智能选择器会自动定位已移动或更改的页面元素。通过发现和调整各种超时,它可以使用AI判断并等待正确的时间点执行下一步。4.基于图像的无脚本自动化Eggplant(https://www.eggplantsoftware.com/)是一个使用基于图像的无脚本自动化的工具。它使用图像匹配技术来识别被测系统(SUT)中的任何缺陷和故障。茄子使用双模型系统。控制器系统可用于创建和驱动测试,被测系统通过VNC连接到控制器。通过图像匹配,脚本语言可以自动对被测系统的UI进行各种操作。5.基于拖放的对象映射作为另一个无脚本自动化测试工具,Ascentialtest(https://www.zeenyx.com/AscentialTest.html)直接通过网站拖放创建测试动??作。您只需要在支持的浏览器中打开目标应用程序,然后将所有需要测试的操作一一拖放到测试工具中即可。针对不同的自动化测试场景,用户可以将不同的测试数据按照不同的顺序进行后续测试。6.关键字驱动测试关键字驱动测试就是预先定义要操作的关键字。当具有这些关键字的测试用例发生变化时,后续测试可以很容易地捕捉到。此外,用户无需学习用于创建此类测试脚本的编程语言。Testcomplete(https://smartbear.com/product/testcomplete/overview/)是关键字驱动的测试工具之一。7.对象驱动测试作为无脚本测试的另一种方式,对象驱动测试可以识别应用程序中需要测试的对象,然后通过对这些对象添加操作来创建相应的测试步骤。Worksoft(https://www.worksoft.com/worksoft-continuous-automation-platform/)工具使用此方法。它可以识别自动化的企业级应用程序(如:SAP)并对其执行各种操作。8、通过流程图进行可视化测试Codefuse(http://codefuse.io/)允许用户以流程图的形式而不是脚本的形式对各种流程进行自动化测试。这种类型的测试侧重于流程图中的两种类型的组件:条件和操作。用户无需具备任何脚本知识,只需要了解流程图的基本知识和流程的适用场景,即可根据不同条件自动执行同一工作流中的多个分支。9.将测试记录为脚本将测试记录为脚本,SeleniumIDE(https://www.seleniumhq.org/docs/02_selenium_ide.jsp),KatalonIDE(https://www.katalon.com/resources-center/blog/katalon-automation-recorder/),以及Ranorex采用的传统测试方法(https://www.ranorex.com/help/latest/ranorex-studio-fundamentals/ranorex-recorder/introduction/)。SeleniumIDE和KatalonIDE作为浏览器扩展提供,只能记录浏览器行为。并且Ranorex并不局限于测试网站,它提供了一个单独的应用程序来打开相应的集成记录器。这类测试工具通过命令和选择器的详细信息记录用户的所有动作。相应的测试步骤记录可以直接执行或导出到不同的编程语言。通过添加更多的函数和条件,用户可以进一步丰富他们导出的测试用例。10、用于测试自动化的AI机器人这类工具主要关注用户的测试体验,可以及时提供用户的反馈。作为使用AI机器人进行测试自动化的“先行者”,Test.ai(https://www.test.ai/)了解用户使用移动应用程序的行为,然后根据他们的喜好进行测试。原标题:ScriptlessTestingIsNotJustRecordandPlayback:Top10ScriptlessTestingApproaches,作者:ShrutiSharma
