【问题标题】:Difference between automation testing tool and automation framework自动化测试工具和自动化框架的区别
【发布时间】:2011-04-18 10:22:09
【问题描述】:

我试图了解自动化框架和自动化测试工具之间的区别。根据维基百科中的Test Automation,工具依赖于环境,而框架提供了运行该工具的结构。

但是,我们有 White 与 Windows 应用程序交互,然后 Selenium 在基于 Web 的应用程序的浏览器上工作。我们将这两个称为“框架”,但它们都需要使用 NUnit 或 JUnit 等测试框架运行。所以我觉得它们应该因此被称为工具。

我们如何区分自动化测试工具和自动化框架?

【问题讨论】:

  • “框架”意味着你必须做一些工作来填补空白。 “工具”意味着它完成了大部分工作。营销人员忽略了事实,并决定如何称呼它。
  • 啊哈。所以我提到的例子并不完全是框架,它们是工具,对吧?
  • 我怀疑尝试将这些分类为黑白类别不是很有帮助。要问的正确问题是,“配置需要多少工作量,我能获得哪些好处?”

标签: testing frameworks automation


【解决方案1】:

我现在在这方面有更好的工作经验,我觉得我可以自己回答这个问题。基本上是一个框架:

  • 提供常用函数库列表,
  • 生成日志,
  • 提供使用配置文件进行典型设置更改,
  • 并将用户测试数据与代码分开,这样我们就不会 硬编码实际的测试代码,
  • 充当实际测试代码和原始语言代码之间的一层。这使得维护实际测试代码变得更加容易和简单,因此工程师可以更有效地进行更改/修复,
  • 将原始代码与测试代码分开,这样如果产品中发生一般更改,则只能修改选定的功能,而不是让它影响所有测试。

现在,在我的原始查询中,White 确实是一个框架

  1. 原因是,如果我们试图“跑”白方,它自己不会做任何事情。它只是为我们提供了一些我们可以调用并完成工作的函数。

  2. 我提到了

但它们都需要使用测试框架运行

因此暗示怀特需要使用 NUnit 否则它是无用的。我错了。 White 不一定需要使用测试框架。我们还可以编写只使用白色而不使用其他任何东西的基本程序代码,但它仍然可以完成一些有意义的任务。

我们添加的测试框架 (NUnit) 仅用于完成另一个单独的目标(跟踪代码的不同部分(称为测试)并生成测试通过/失败的最终报告。

3.我也提到了

但它们都需要使用 NUnit 或 JUnit。所以我觉得它们应该因此被称为工具。

这里的误解是“如果它使用一个框架,那么它必须是一个工具”。正确的想法是一个框架可以让我们完成一些任务,它仍然可以使用另一个框架让我们完成更多的任务。例如,我正在使用 White 框架来自动化 Windows 对话框。现在我添加 Log4j 框架来为我自己的日志添加功能。接下来我添加了一个单元测试框架,以便我们可以以测试的形式运行代码(它使用了之前的两个框架)并生成结果。接下来,我添加了 PNUnit 框架,现在可以并行运行测试。看到这个想法了吗?

现在是工具——这些只是我们在使用实际代码时使用的实用程序——这些代码将利用上述所有框架来完成一些实际有价值的任务。它可以是允许执行代码的 IDE 或平台。

【讨论】:

    【解决方案2】:

    自动化工具是对应用程序执行自动化操作的平台。自动化工具是一种通用工具,可以实现任何类型的测试用例。一些自动化工具将没有选项来分离测试脚本或模块或选择多个测试脚本来执行。

    自动化框架是自动化工具的插件。如果没有在自动化工具之上创建的自动化工具,自动化框架将无能为力。我们正在创建一组测试执行的角色和标准,例如测试用例选择、执行流程、报告生成、测试管理工具集成等。

    • 我们只能使用 Tool 进行自动化,但不能仅使用自动化框架来执行自动化
    • 自动化框架依赖于组织标准和项目结构,所以我们可以创建一个自动化框架我 f 工具本身提供了一个框架(如 UFT、Guage 等)
    • 我们可以使用 Selenium 和 Sikuli 等单一自动化框架创建工具或俱乐部多个工具不支持的新功能
    • Automation Freemason 将提供轻松维护

    【讨论】:

      【解决方案3】:

      在“工具”中,您使用“框架”将它们链接起来:)

      【讨论】:

        【解决方案4】:

        只要输入正确,工具就会为您进行实际测试。而框架为您提供了进行测试的必要帮助。就像 White 的情况一样,它只是帮助您获得控制并提供鼠标点击和其他东西。它实际上并没有自己运行任何东西。 Nunit 是另一个级别稍高的框架,您运行测试用例,它只会告诉您它是否通过。

        一个工具的例子可以是碎片整理程序,它实际上执行操作。

        只是想解释一下我的观点。希望对你有帮助!

        【讨论】:

        • 当我们说白色帮助我们点击应用程序时,它最终不是一个工具吗?我觉得 Selenium 也一样。它可以帮助您在浏览器中单击、输入字符、按键、读取数据等。与 Nunit 结合使用,您可以使用它们创建一个工作项目。
        【解决方案5】:

        我一直在使用自动化测试工具,并开发了自动化框架,根据我的经验为您提供详细信息 -

        自动化测试工具 -

        它是一种实用程序,可以具有在特定或各种被测应用程序 (AUT) 上运行的特性、功能和能力,例如 - 它可以搜索和唯一识别 AUT 对象、窗格、按钮、链接等。

        底层库、实用程序、方法和对象识别模型作为工具的核心框架工作,它提供了操作它的特性、功能和能力。 但是这个底层核心系统主要是支持/静态代码,不能根据自定义需求进行更改。

        大多数市场标准工具都专注于其对象识别模型,其中包含大量技术,如 .NET、JAva、Struts 等,但在 -

        创建测试脚本/场景

        文本、excel、Json、XML等数据文件的数据输入和使用

        管理脚本执行 具有基本的结果报告功能。

        大多数时候缺乏定制和适应选项 - 因为每个项目或工作都有不同的需求。

        自动化框架 -

        框架作为一个词的意思——一套规则或最佳实践。即使自动化测试工具具有特性和功能,它也需要一组规则和驱动程序来启动、管理和报告完整的测试执行。

        框架可以是一组脚本(库、jar、方法等),这些脚本是根据定制和定制的客户/项目/工作需求开发的。它可以使用自动化工具的核心功能的核心/最佳特性和功能,然后将其包装在框架中 - 创建一个 -

        更无缝的多脚本和平台执行。

        测试数据管理 - 如果需要,创建、输入和重置。

        测试编排 - 什么触发了构建,输入来自哪里,要执行的所有内容,在哪里执行,如何集成,谁/如何控制执行,在哪里报告以及向谁发出警报。

        希望这能给这个问题带来更多的前景。

        【讨论】:

          【解决方案6】:

          我认为框架类似于类,工具是从它实例化的对象。

          我设计的基础架构能够调度会话以测试复杂的并发系统测试,同时同样适用于调度单个功能或单元测试。

          虽然这些框架允许会话管理、调度(套件、场景、任务、远程、Web、内联、进程、线程)、通知、事件处理和日志记录;它们也是通过默认或自定义属性提供特定操作调度、监控、分析、通知和补救(用于持续测试能力)的工具。

          因此,框架描述了默认行为,并被实例化为工具,以在预期的 QA 环境中应用默认行为和自定义行为。

          【讨论】:

            【解决方案7】:

            Selenium 是一种自动化浏览器操作的工具。

            Selenium Grid 是一种用于在不同环境中运行的多台机器上分布测试的工具。

            脚本语言测试框架取决于您的自动化项目将要构建的技术堆栈,如下所示:

            • Java 堆栈
              • Java 作为脚本语言
              • JUnit/TestNG 作为测试框架
            • PHP 堆栈
              • PHP 作为脚本语言
              • PHPUnit 作为测试框架
            • Python 堆栈
              • Python 作为脚本语言
              • UnitTest/PyTest 作为测试框架

            类似于其他语言堆栈。

            希望,这个例子清除了这个线程的原始问题。

            谢谢,

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-02-25
              • 1970-01-01
              • 1970-01-01
              • 2017-07-19
              • 1970-01-01
              • 2016-07-09
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多