首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试框架vs测试工具

测试框架vs测试工具
EN

Stack Overflow用户
提问于 2014-08-12 19:30:24
回答 3查看 1.8K关注 0票数 1

我是测试新手。像框架和工具这样的常用术语让我很困惑。谁能给我解释一下像STAFsoftware测试自动化框架这样的框架和像selenium这样的工具有什么区别?

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

欢迎简要说明!

EN

回答 3

Stack Overflow用户

发布于 2014-08-13 18:55:39

工具:

简单地说,工具就是软件。在测试自动化的情况下,工具是允许您在应用程序上自动化测试的软件。有许多测试自动化工具可供选择,具体取决于您的需求。例如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。这些框架用于需要编写数千个测试用例脚本的长期测试自动化项目中。这些框架的主要目标是通过重用已经编写的代码来减少编写测试用例脚本所需的时间。它们通常包括非常强大的函数库,可以使用预定义的关键字编写测试用例的脚本。例如,应用程序上的常见操作(如登录和注销)由单行代码执行,如下所示:

代码语言:javascript
复制
Actions.Login();

代码语言:javascript
复制
Actions.Logout();

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

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

测试工具选择:

为了回答你的第二个问题,没有直接的答案。有很多标准可以影响你的决定。但归根结底,这都是关于你的要求和你的AUT的要求。

如果它是Windows桌面应用程序,您必须在Visual Studio.

  • If中使用编码的UI测试它是应用程序,您可以使用SeleniumUFTVisual StudioT-Plan Robot.
  • If它是移动应用程序,您可以使用AppiumJamo Solutions Meux TestDevice Anywhere.
  • If您想要在大量设备和平台上测试您的移动应用程序,您可以使用基于云的工具,如Sauce LabsPerfecto Mobile或have您的预算不足,你最好使用开源工具而不是商业工具,以此类推。

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

票数 2
EN

Stack Overflow用户

发布于 2014-08-12 20:44:42

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

像selenium这样的工具才是真正执行自动化的工具,它有一个API,可以用于它涵盖的几乎任何东西(在本例中是网站),但它对你想要测试的网站是如何工作的一无所知,这意味着它处理诸如页面上的元素和点击等低级结构。

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

假设您想要一个测试,检查您在获取应用程序访问权限时输入了正确的用户名和密码。仅使用selenium,它将如下所示:

登录driver.findElement(By.id(“driver.findElement(By.id("username").sendKeys("MyUsername");driver.findElement(By.id("password").sendKeys("password123");”).click();

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

票数 1
EN

Stack Overflow用户

发布于 2014-08-13 17:49:11

根据我的理解:

工具

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

框架

jenkins我们“设计”了一个框架,以满足组织mission.

  • Things在设计框架时要考虑的因素。including:

  • Maintainability

  • Reusability

  • Data Driven

  • Reporting

  • Schedule通过像Jenkins

  • Example:这样的CI工具运行。我们使用WebDriver +

  • + TestNG + ANT设计了一个测试自动化框架,以满足确定我们当前的代码库稳定性的目标,并且测试将由jenkins每天触发和运行,每次测试完成后,也将在每天的基础上捕获SSRS报告。涉众可以在他/她需要的时候审查每日代码稳定性报告。

希望这能帮助你:D

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25263147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档