【问题标题】:Testing Framework vs Testing tool测试框架与测试工具
【发布时间】:2014-08-12 11:30:24
【问题描述】:

我是测试新手。框架和工具等常用术语让我很困惑。谁能解释一下像STAF[软件测试自动化框架]这样的框架和像selenium这样的工具之间的区别。

还有如何为特定框架选择工具。选择的标准是什么?

欢迎简要说明!!

【问题讨论】:

  • 框架是构建其他工具的工具。
  • @Leo,您能否详细说明您的评论作为答案
  • 在我看来,框架是为开发人员打造的平台,因此您可以使用框架来构建其他工具。工具 = 开发者的东西,应用程序 = 用户的东西。见stackoverflow.com/questions/1415592/…

标签: selenium staf


【解决方案1】:

工具:

简单地说,工具就是软件。在测试自动化的情况下,工具是让您在应用程序上自动化测试的软件。您可以根据自己的要求选择许多测试自动化工具。一些例子是SeleniumUFTVisual Studio CUITJamo Solutions Meux TestT-Plan RobotTelerik Test Studio等。

通常,您必须使用受支持的编程语言在工具中编写测试。例如,使用UFT 的测试人员需要使用VB 编写代码,而使用Visual Studio 的测试人员可以使用VB 和C# 编写代码。但是,一些测试工具(如Telerik Test Studio)允许您编写无脚本测试,其中您的测试将包含一堆易于理解的关键字,而不是代码。

框架:

SeleniumVisual Studio 等最流行的测试自动化工具提供了构建自己的测试所需的所有基本功能。但是,它们不提供用于测试的现成功能(如报告和异常处理)。这需要创建一个“框架”,它只不过是使用自己选择的工具编写的代码集合,使测试应用程序变得容易。简而言之,框架就是您使用工具(或工具集合)创建来测试您的应用程序。

一个典型的框架由两部分组成:测试脚本和函数库。测试脚本是需要执行以对被测应用程序 (AUT) 执行操作的代码片段。函数库是由测试脚本调用的重要函数组成的类。这些可以包括计时功能、报告/记录功能、异常处理功能、数据通信功能等。

您还可以在运行时使用外部数据库将测试数据传递给测试脚本,而不是在测试脚本中硬编码。使用外部数据库的框架称为data-driven frameworks。您可以选择外部数据库,无论是 SQL Server、XML 文件还是简单的 Excel 电子表格。数据驱动框架利用 API 或包含自定义类,让您可以与数据库通信以传输数据。

另一种类型的框架是keyword-driven framework。这些框架用于需要编写数千个测试用例的脚本的长期测试自动化项目。这些框架的主要目标是通过重用已经编写的代码来减少编写测试用例脚本所需的时间。它们通常包含非常强大的函数库,可以仅使用预定义的关键字来编写测试用例的脚本。例如,登录和注销等应用程序上的常见操作由单行代码执行,例如:

Actions.Login();

Actions.Logout();

其中Actions 是一个函数库,由Login()Logout() 函数组成。这大大减少了脚本大小和测试脚本的长期维护需求,还有其他好处。

当然,您可以构建一个测试自动化框架并将其用于您自己的应用程序,也可以创建一个通用的测试自动化框架并将其提供给测试社区供所有人使用,这就是 STAF。

测试工具的选择:

要解决您的第二个问题,没有直接的答案。有许多标准会影响您的决定。但归根结底,这完全取决于您的要求和 AUT 的要求。

  • 如果是 Windows 桌面应用程序,则必须在 Visual Studio
  • 如果是Web应用,可以使用SeleniumUFTVisual StudioTest Studio
  • 如果是移动应用,可以使用AppiumJamo Solutions Meux TestT-Plan Robot
  • 如果您想在大量设备上测试您的移动应用 和平台,您可以使用基于云的工具,例如Sauce LabsPerfecto MobileDevice Anywhere
  • 如果预算不足,最好使用开源工具 商业工具等。

应用测试现在是一个庞大的行业,市场上不乏可用的测试工具。如果您知道自己想要什么并在 Google 上进行一些研究,就会找到最适合自己的工具。

【讨论】:

    【解决方案2】:

    我将尝试回答我认为人们通常使用这些术语的含义,让我们从更简单的术语开始:工具。

    像 selenium 这样的工具实际上是自动化的,它有一个 API 可以适用于它所涵盖的几乎所有东西(在这种情况下是网站),但它对你想要测试的网站如何工作一无所知,这意味着它处理低级结构,例如页面上的元素和点击。

    一个框架通常只是包装一个工具,通过传授你的应用程序的知识来更容易地进行测试,一个标准的例子是登录。

    假设您想要一个测试来检查您何时输入正确的用户名和密码才能访问应用程序。只使用 selenium 会是这样的:

    driver.findElement(By.id("username").sendKeys("MyUsername"); driver.findElement(By.id("password").sendKeys("password123"); driver.findElement(By.id("login").click();

    这很简单,但正如您猜想的那样,登录将在您的测试中大量使用,因此将其移至更易于重用的地方是有意义的(从更少代码的角度和可维护性的角度来看) )。这是一个框架发挥作用的地方,通常使用 selenium 它将是页面对象(参见here

    【讨论】:

    【解决方案3】:

    根据我的理解:

    工具

    • 我们“使用”工具来实现我们的目标(可以是自己或您的小组)。
    • 示例:我们使用 Selenium IDE 作为工具,帮助我们在冒烟测试期间自动执行一些重复步骤以进行某些验证。

    框架

    • 我们“设计”了一个框架来满足组织的使命。
    • 我们在设计框架时需要考虑的事项包括:
    • 可维护性
    • 可重用性
    • 数据驱动
    • 报告
    • 通过 Jenkins 等 CI 工具运行计划
    • 示例:我们使用WebDriver + Java + TestNG + ANT设计了一个测试自动化框架,以满足识别我们当前代码库稳定性的目标,并且测试将由jenkins每天触发和运行,SSRS报告将在每天的基础上以及每次测试完成时捕获。利益相关者可以在需要时随时查看每日代码稳定性报告。

    希望对你有帮助:D

    【讨论】:

      猜你喜欢
      • 2014-04-04
      • 1970-01-01
      • 2011-06-14
      • 2012-02-24
      • 2013-08-18
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多