测试框架vs测试工具



我是测试新手。像框架和工具这样的常用术语让我很困惑。有谁能给我解释一下像STAF这样的框架和像selenium这样的工具之间的区别吗?

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

简短的解释欢迎!!

工具:

简单地说,工具就是软件。在测试自动化的情况下,工具是允许您在应用程序上自动化测试的软件。根据您的需求,您可以选择许多测试自动化工具。例如:Selenium, UFT, Visual Studio CUIT, Jamo Solutions Meux Test, T-Plan Robot, Telerik 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()函数组成的函数库。这大大减少了脚本大小和测试脚本的长期维护需求,以及其他好处。

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

测试工具选择:

关于你的第二个问题,没有直接的答案。有很多标准会影响你的决定。但最终,这都是关于你的要求和你的AUT的要求。

  • 如果它是一个Windows桌面应用程序,你必须使用Coded UI Tests inVisual Studio
  • 如果是Web应用程序,可以使用SeleniumUFTVisual StudioTest Studio
  • 如果是移动应用程序,可以使用AppiumJamo Solutions Meux TestT-Plan Robot
  • 如果你想在大量设备上测试你的移动应用和平台,你可以使用基于云的工具,比如Sauce LabsPerfecto MobileDevice Anywhere .
  • 如果你的预算不足,你最好使用开源工具

应用程序测试现在是一个巨大的行业,市场上并不缺乏可用的测试工具。如果你知道你想要什么,在谷歌上做一些研究,你会找到最适合你的工具。

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

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

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

假设您想要一个测试来检查您何时在应用程序中输入正确的用户名和密码。如果只使用selenium,它会像这样:

driver.findElement (By.id("用户名").sendKeys("上的用户名都"dangillmor);driver.findElement (By.id("密码").sendKeys("password123");driver.findElement (By.id("登录").click ();

这很简单,但是你可以猜到login将在你的测试中被大量使用,所以把它移到一个更容易重用的地方是有意义的(从更少的代码和可维护性的角度来看)。这就是框架发挥作用的地方,通常对于selenium,它将是页面对象(见这里)

根据我的理解:

工具>

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

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

相关内容

  • 没有找到相关文章

最新更新