自动化测试工具和自动化框架之间的区别

时间:2011-04-18 10:22:09

标签: testing frameworks automation

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

但是,我们有White与Windows应用程序交互,然后Selenium适用于基于Web的应用程序的浏览器。我们称这两个“框架”,但它们都需要使用像NUnit或JUnit这样的测试框架来运行。所以我认为他们应该被称为工具。

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

7 个答案:

答案 0 :(得分:2)

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

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

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

  1. 原因是,如果我们试图“跑”白色,它本身就不会做任何事情。它只是为我们提供了一些我们可以调用并完成工作的功能。

  2. 我提到了
  3.   

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

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

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

     我还提到了

      

    但它们都需要使用像NUnit或者测试框架来运行   JUnit的。所以我认为他们应该被称为工具。

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

如果输入正确,工具会为您进行实际测试。而框架为您提供了进行测试所需的帮助。就像White一样,它只是帮助您获得控件并提供鼠标点击和内容。它实际上并没有自己运行任何东西。 Nunit是另一个略高级别的框架,你运行你的测试用例,只是告诉你它是否通过。

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

只是想解释我的观点..希望它有所帮助!

答案 3 :(得分:1)

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

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

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

答案 4 :(得分:0)

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

自动化测试工具 -

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

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

大多数市场标准工具都专注于使用.NET,JAva,Struts等大量列表技术的对象识别模型,但可能不具备同样的强大或能力 -

创建测试脚本/场景

数据输入和数据文件的使用,如text,excel,Json,XML等。

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

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

自动化框架 -

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

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

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

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

测试编排 - 什么触发了构建,输入来自何处,执行的内容,执行的位置,如何集成,控制执行的人/控制方式,报告位置以及警报对象。

希望这能为这个问题提供更多的前景。

答案 5 :(得分:0)

我认为Framework类似于类,而Tool是从其实例化的对象。

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

尽管这些框架允许会话管理,调度(套件,方案,任务,远程,Web,内联,进程,线程),通知,事件处理和日志记录;它们也是通过默认或自定义属性提供特定动作调度,监视,分析,通知和补救(以实现持续测试能力)的工具。

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

答案 6 :(得分:0)

是用于自动执行浏览器操作的工具。

Selenium Grid 是用于在运行于不同环境中的多台计算机之间分布测试的工具。

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

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

类似于其他语言堆栈。

希望,此示例清除了该线程的原始问题。

谢谢