测试框架与测试工具

时间:2014-08-12 11:30:24

标签: selenium staf

我是新手测试。常用的术语如框架和工具让我很困惑。任何人都可以向我解释一下像STAF [软件测试自动化框架]这样的框架和像selenium这样的工具之间的区别。

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

欢迎简要说明!!

3 个答案:

答案 0 :(得分:2)

<强>工具:

简单地说,工具就是一种软件。在测试自动化的情况下,工具是可以让您自动化应用程序测试的软件。有许多测试自动化工具可供您选择,具体取决于您的要求。一些示例包括SeleniumUFTVisual Studio CUITJamo Solutions Meux TestT-Plan RobotTelerik Test Studio等。

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

<强>框架:

最流行的测试自动化工具(如SeleniumVisual Studio)提供了构建自己的测试所需的所有基本功能。但是,它们不提供用于测试的现成功能(如报告和异常处理)。这需要创建一个框架&#39;这只不过是使用一种选择工具编写的代码集合,可以轻松地测试应用程序。简而言之,框架是您使用工具(或工具集合)创建的,用于测试您的应用程序。

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

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

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

Actions.Login();

Actions.Logout();

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

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

选择测试工具:

要解决你的第二个问题,没有直截了当的答案。有许多标准会影响您的决定。但最终,这完全取决于您的要求和AUT的要求。

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

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

答案 1 :(得分:1)

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

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

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

假设您需要一个测试,以便在您输入正确的用户名和密码时检查您是否可以访问应用程序。只使用硒就可以了:

driver.findElement(By.id( “用户名”)的SendKeys( “名为myUsername”); driver.findElement(By.id( “密码”)的SendKeys( “password123”); driver.findElement(By.id( “登录”)点击();

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

答案 2 :(得分:1)

基于我的理解:

工具

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

<强>框架

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

希望能帮到你:D