1

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

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

欢迎简要说明!!

4

3 回答 3

2

工具:

简单地说,工具就是软件。在测试自动化的情况下,工具是让您在应用程序上自动化测试的软件。您可以根据自己的要求选择许多测试自动化工具。一些例子是Selenium, UFT, Visual Studio CUIT, Jamo Solutions Meux Test,T-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 应用程序,您可以使用Selenium、或。UFTVisual StudioTest Studio
  • 如果是移动应用程序,您可以Appium使用Jamo Solutions Meux TestT-Plan Robot
  • 如果您想在大量设备和平台上测试您的移动应用程序,您可以使用基于云的工具Sauce Labs, 例如Perfecto MobileDevice Anywhere.
  • 如果预算不足,最好使用开源工具而不是商业工具,等等。

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

于 2014-08-13T10:55:39.153 回答
1

根据我的理解:

工具

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

框架

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

希望能帮到你:D

于 2014-08-13T09:49:11.073 回答
1

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

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

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

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

driver.findElement(By.id("username").sendKeys("MyUsername"); driver.findElement(By.id("password").sendKeys("password123"); driver.findElement(By.id("login) “)。点击();

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

于 2014-08-12T12:44:42.060 回答