15

我一直在公司的软件/IT 部门担任手动测试员和文档(测试计划等)人员。我没有很大的编程背景,但我想学习编程语言和工具。因此,我正在寻找自动化测试工具和编程语言来学习,这也给我带来了工业优势。

需要注意的几点是:

  1. 我需要知道哪些工具在行业中最常见,以及与这些工具相关的语言。
  2. 我没有太多时间来学习大量的东西。因此,我正在寻找使用有利于学习的语言的工具,以防我想做更多的编程。
  3. 我更喜欢基于 Web 的应用程序测试,但这不是限制。
  4. 据我了解,您可以提供 2-3 种语言,不可能只有一个赢家。
  5. 我做了一些使用 VBScript 的 QTP,但 VBScript 没有被广泛使用。我想学习一门具有更广泛基础的语言。
  6. 即使这个问题似乎很难回答,请仍然提供您的意见和想法。

提前致谢。


编辑: 我想到目前为止我已经决定我会去:

  1. QTP
  2. 测试驱动开发方法论

我只需要找出一种好的编程语言,它能给我带来程序员的优势,并且适用于多种测试工具(包括 Selenium)。也许是 Python、Ruby 或 Java?

4

7 回答 7

11

哇,这是一个相当广泛的问题。我想说随着行业朝着测试驱动开发(或在代码之前编写测试)模型发展,您处于有利位置。

首先,您需要了解单元测试持续集成和 Web 自动化。

我将专注于我所知道的领域(.NET、Java、Javascript、构建自动化、Selenium)

  1. 在 .NET中, NUnit可能是使用最广泛的单元测试框架。它是Java 世界中JUnit的移植(副本) 。大多数单元测试框架在概念上与这些框架非常相似。所以学习一个,你很快就会学会其他的。

  2. 我认为阅读上述链接并对这些概念有所了解将使您顺利上路。可能值得尝试使用 Python 或 Ruby,因为它们的入门门槛很低,可以进行一些简单的测试。

  3. 对于基于 Web 的测试,最著名的可能是SeleniumWatin。这些允许您编写浏览器脚本以自动执行操作。然而,我很少遇到这些很好的用法,而且它们非常繁琐(你说的是几天/几周的努力)来设置和有用。同样,无论您使用什么框架,这些背后的概念都是相似的。

    认为我在 1,2,3 中回答了 4,5,6 :-)

高温高压

于 2010-07-26T18:46:35.210 回答
3

至于“工业优势”,这取决于您的意思。

对于大公司,QTP 被广泛使用。用 QTP 学习的东西并不是真正的语言,而是工具本身。对我来说,克服工具细节比学习 VBscript 更麻烦。如果您考虑性能测试,那么 PerformanceCenter 可能是您的选择。在这里,您将 C 作为语言,但同样,使用工具比使用语言更困难。在一些公司中,有来自 IBM 的堆栈,因此 Rational 软件开始发挥作用(FunctionalTester、Robot、PerformanceTester)。还有一些复杂的工具需要通过(IBM Redbobks 可以提供帮助)。

在较小的公司中,Java/C# 可能是有益的。在这里你可以熟悉 junit/nunit/TestNG/MSTest。对于 webapps,像 Selenium/Watij/Watin/Fit/Fitness/Concordian 这样的东西值得一看。如果你有时间看看 AutoIT、PowerShell、Python、Fiddler、Jmeter、Abbot、Watir/Cucumber、Sikuli。

还有很多其他工具,例如 WebAii、TestComplete、Twist.. 一些其他商业工具。通常你可以让他们试用一两个星期。

一切都取决于您将接触什么样的项目,以及它将成为什么样的公司。

无论如何,在我看来,在某种程度上学习 Java/C# 就足够了。你不需要成为 C#/Java 忍者,了解每个库,并且非常努力地学习给定的语言。您会看到开发软件不仅仅是了解一种编程语言,而测试自动化不仅仅是了解一种工具/语言(M. Fewster 和 D. Graham),所以不要对它着迷。如果您可以在 QTP 中编写脚本(不是记录而是程序,使用描述性编程,将逻辑分解为库,通过适当的方法完全控制 TestResults 等),而不是其他工具。您可能需要一周或两周的时间来学习给定语言的基础知识,但这都是为了测试自动化(至少是开始)。你需要更多的经验,了解工具,了解概念,了解不同方法的优缺点,头脑中有更大的图景,而不仅仅是“我如何用那种语言写这个”(你有这个:D)。

于 2010-07-26T23:55:53.087 回答
3

这个问题的答案实际上取决于几件事。首先,你在做什么样的测试?测试基于 Web 的应用程序?测试大型程序的库/组件?图形用户界面测试?测试命令行应用程序?

在创建脚本化/自动化测试工具时,我发现以下内容很有用:

TCL - TCL 可以像批处理文件一样轻松地与命令行交互,但具有强大的语言,可以将批处理从水中吹走(包括 GUI 功能)。如果您正在编写基于 Windows 的控制台应用程序的脚本(测试它们或使用它们来测试其他东西),我建议您花时间学习 TCL。

AutoIt - 这种脚本语言让您可以快速轻松地自动化与 Windows 应用程序的 UI 交互。它也相当容易学习。如果您想花时间和精力开发一个屏幕抓取实用程序,您可以将它与 AutoIt 结合起来创建一些非常复杂的测试系统。

C - 在测试编译库时,我使用好的 'ol C 取得了令人惊讶的成功。我将为测试应用程序编写基本框架并创建一个脚本实用程序,该实用程序将根据测试动态生成其余代码需要运行(我给它一个示例 C 片段库,它可以用于更复杂的任务)。

Ruby - 当您进行自动化测试时,健壮的脚本语言可以走得很远。无论您需要解析测试日志、生成报告还是自动生成测试脚本,您熟悉的脚本语言都可以为您节省大量时间和头痛。我选择的语言是 Ruby,但我公司的其他人更喜欢其他语言,例如 Perl 或 Python。语言选择不是太重要,选一个好好学吧。

根据您正在测试的内容,您可能还会在您正在测试的代码中内置某种测试工具。Java 代码有时是用 JUnit 测试编写的,Ruby 代码可以使用 Test::Unit 框架等。 这里列出了适用于各种语言的单元测试框架。如果您正在测试的代码是在考虑单元测试的情况下构建的,那么您将需要学习编写代码的语言,以便您可以利用这些单元测试。

于 2010-07-27T00:38:53.903 回答
3

对于基于 Web 的测试,您可能需要查看Fitnesse。此外,基于 python 构建的自动化测试框架是机器人框架

于 2010-07-27T00:46:44.280 回答
2
  1. Selenium 在 QA 级别的自动化测试中非常流行。
  2. 无论您做什么,都会有一些与您的解决方案相关的学习曲线
  3. Selenium 的目的是为 webapps 提供一个测试框架——你使用 Selenium 来操作浏览器中的 DOM 元素,而不是你的应用程序的运行版本。
  4. Selenium 是一种客户端/服务器模型(您在可以访问您的 QA 应用程序实例的地方运行服务器;您使用客户端库编写测试代码)以多种语言(java、ruby 等)提供客户端

  5. 如果您有可以编写代码的专用 QA 资源,那么这种类型的测试是一个好主意。它提供了一些高级回归测试。然而,它并非没有缺点:(1) 测试可能需要一些时间才能运行,(2) 您可能需要对 Web 应用程序的 dom 元素进行一些更改才能轻松使用该框架,(3) 更改 Web 应用程序需要更改您的测试代码,这并非易事。

您的其他选择是为应用程序代码编写单元测试。通常,开发人员将此作为测试驱动过程的一部分。所以有针对开发人员的 TDD,然后是针对 QA 的自动化 QA 测试。

于 2010-07-26T18:46:05.010 回答
1

我也会添加一个小评论

有一个新的测试自动化平台 XML2Selenium

该平台建立在 classis Selenium 框架之上,并提供了许多有用的功能

但它很容易使用

您无需学习任何 java 或 ruby​​ - 您可以使用 XML 编写

像这样的:

<!-- here we have some imports Frame - is like a class, you can extend it with extends -->
<import resource="Demo.a-server/03Registration/framesRegist.xml" name="frames"/>
<import resource="Demo.a-server/01Action/FramesAction.xml" name="framesAct"/>
<import resource="Demo.a-server/03Registration/FramesLogin.xml" name="framesLog"/>

<property resource="Demo.a-server/LogValue.properties" name="logValue"/>
<test name="creatAction" description="create and check action">

<frame extends="frames:logAdmin"/>
<frame extends="framesAct:createAct"/>

// here we upload the image
<upload id="img_id0" resource="image.jpg"/>

// click save button with id=save
<button id="save" />

// make a screen shot 
<screenshot/>

// sleep for 3 seconds 
<pause time="3000" />

// make a screenshot again
<screenshot/>

// navigate to the given URL:
<navigate to="${logValue.baseUrl}/admin"/> 

<frame extends="framesLog:logOutAdmin"/>
<pause time="1000"/>
</test> 

在这里您可以看到错误报告:http: //xml2selenium.com/demored/xml2selenium/

在这里你可以看到成功状态的报告:http: //xml2selenium.com/demogreen/xml2selenium/

PS:它支持在所有浏览器中进行测试,不仅在 Firefox 中作为 Selenium IDE

于 2013-09-07T13:38:47.217 回答
0
  • 是的,您可以学习 selenium IDE,它只是作为 Firefox 浏览器上的附加组件,您可以使用它来记录您的测试并在需要时播放它们。IDE 的限制是它只能在 firefox 上使用。

  • 如果您希望在多个浏览器上进行测试,则需要 Selenium Grid 或 WebDriver,这需要 Java 知识。同样,您不需要成为 Java 专业人士也可以做到这一点,简单的学习会有所帮助。

  • 您可以在 youtube.com 上搜索 Selenium 教程。

硒的优点:

  1. 它的开源!!
  2. 它易于学习和实施..
  3. 支持多种浏览器。
  4. 支持多种脚本/编程语言。
  5. 灵活的选择,简单的记录和播放(IDE),使用您喜欢的编程语言选择的完整框架设计。
  6. 支持并行执行。

希望这会帮助你。

于 2013-05-13T13:50:11.507 回答