首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习从手工测试转向自动化/编程的语言

学习从手工测试转向自动化/编程的语言
EN

Stack Overflow用户
提问于 2010-07-26 18:31:45
回答 7查看 28.1K关注 0票数 15

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

值得注意的几点是:

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

提前谢谢。

编辑:我认为到目前为止我已经决定选择:

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

我只需要找出一种好的编程语言,它能给我一个程序员的优势,并且适合多种测试工具(包括Selenium)。可能是Python,Ruby还是Java?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-07-26 18:46:35

哇,这是一个很普遍的问题。我想说的是,在业界迈向测试驱动开发 (或者在代码之前编写测试)模型时,您处于一个很好的位置。

首先,您需要了解单元测试连续积分和Web。

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

  1. 在.NET中,NUnit可能是使用最广泛的单元测试框架。它是java世界中JUnit的一个端口(副本)。大多数单元测试框架在概念上与这些框架非常相似。所以学一个,你就不会花很长的时间去接其他的了。
  2. 我认为阅读上面的链接,并对这些概念有一个想法,将使您的道路上。使用Python或Ruby进行实验可能是值得的,因为它们的入门门槛很低,很难与一些简单的测试混在一起。
  3. 对于基于web的测试,最著名的可能是瓦廷。这些允许您编写浏览器脚本以自动执行操作。然而,我发现很少有好的使用这些工具,它们是非常微妙的(你说的是几天/几周的努力)来获得设置和有用。同样,无论您使用什么框架,这些背后的概念都是相似的。 我想我在1,2,3中回答了4,5,6 :-)

HTH

票数 11
EN

Stack Overflow用户

发布于 2010-07-26 23:55:53

至于“产业优势”,这取决于你说的是什么意思。

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

在规模较小的公司,Java/C#可能是有益的。在这里,您可以熟悉junit/nunit/TestNG/MSTest。对于are应用程序,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 )。

票数 3
EN

Stack Overflow用户

发布于 2010-07-27 00:38:53

这个问题的答案取决于几件事。首先,你在做什么样的测试?测试基于网络的应用程序?测试大型程序的库/组件?GUI测试?测试命令行应用?

在创建脚本/自动化测试工具时,我发现以下功能非常有用:

TCL - TCL可以像批处理文件一样轻松地与命令行进行接口,但是它有一种强大的语言,可以将批处理从水中吹出(包括GUI功能)。如果您正在编写基于Windows的控制台应用程序(要么测试它们,要么用来测试其他的东西),我建议您花时间精简TCL。

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

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

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

根据您正在测试的内容,您还可能在您正在测试的代码中内置了一些测试工具。Java代码有时是用JUnit测试编写的,这里代码可以使用Test::Unit框架等等。这里是多种语言的单元测试框架列表。如果您正在测试的代码是在考虑单元测试的情况下构建的,您将希望学习代码所用的语言,以便您能够利用这些单元测试。

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

https://stackoverflow.com/questions/3337825

复制
相关文章

相似问题

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