首页 文章

学习从手动测试转向自动化/编程的语言[关闭]

提问于
浏览
15

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

需要注意的一点是:

  • 我需要知道哪些工具是业界最常用的工具以及与这些工具相关的语言 .

  • 我没有太多时间学习很多东西 . 因此,我正在寻找使用有助于学习的语言的工具,以防我想要做更多编程 .

  • 我更喜欢基于Web的应用程序测试,但这不是约束 .

  • 你可以提供2-3种语言,据我所知,不可能有一个获胜者 .

  • 我做了一些使用VBScript的QTP,但没有广泛使用VBScript . 我想学习一种具有更广泛基础的语言 .

  • 即使这个问题似乎很难回答,请仍然提供您的意见和想法 .

提前致谢 .


EDIT: 我认为到目前为止我已经决定我会选择:

  • QTP

  • 测试驱动开发方法

我只需要找出一种优秀的编程语言,它可以为程序员提供优势,适用于多种测试工具(包括Selenium) . 也许Python,Ruby或Java?

7 回答

  • 0

    哇,这是一个相当广泛的问题 . 我会说你的行业处于有利地位,因为行业正朝着(或在你的代码之前编写测试)模式迈进 .

    首先,您需要了解Unit TestingContinuous Integration和Web Automation .

    我将专注于我所知的领域(.NET,Java,Javascript,Build automation,Selenium)

    • 在.NET中NUnit可能是使用最广泛的单元测试框架 . 它是java世界中的一个端口(副本)JUnit . 大多数单元测试框架在概念方面与这些框架非常相似 . 所以学习一个,你不会花很长时间去接受其他人 .

    • 我认为阅读上述链接并了解这些概念可以帮助您顺利进行 . 它可能值得尝试使用Python或Ruby,因为它们具有较低的进入障碍,可以通过一些简单的测试来解决问题 .

    • 对于基于Web的测试,最知名的可能是SeleniumWatin . 这些允许您编写脚本浏览器以自动执行操作 . 但是,我很少使用这些并且它们非常繁琐(你说的是几天/几周的努力)来设置和有用 . 无论您使用哪种框架,这些背后的概念都是相似的 .

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

    HTH

  • 1

    至于“工业优势”,取决于你的意思 .

    对于大公司而言,QTP被广泛使用 . 用QTP学习的东西不是真正的语言,而是工具本身 . 对我来说,克服工具细节比学习VBscript更麻烦 . 如果您考虑性能测试,可能会选择Performance Center . 在这里,您将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#就足够了 . 你不应该对此感到痴迷 . 如果您可以在QTP中编写脚本( not record but program ,使用描述性编程,将逻辑分解为库,通过适当的方法完全控制TestResults等),比其他工具赢得了't be an issue. You may need like week or two to learn basics of given language, but that is all for test automation (for start at least). You need more to have some experience, to know tools, to know concepts, to know pros and cons of different approaches, to have bigger picture in head, than just '如何用该语言编写这个'(你有SO这个:D) .

  • 2

    这个问题的答案实际上取决于几个方面 . 第一,你在做什么样的测试?测试基于Web的应用程序?测试较大程序的库/组件? GUI测试?测试命令行应用程序?

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

    TCL - TCL可以像批处理文件一样轻松地与命令行连接,但是具有强大的语言,可以将批量打包出去(包括GUI功能) . 如果您正在为基于Windows的控制台应用程序编写脚本(要么测试它们,要么使用它们来测试其他内容),我建议您花点时间来使用TCL .

    AutoIt - 此脚本语言可让您快速轻松地自动与Windows应用程序进行UI交互 . 它也很容易学习 . 如果您想花时间和麻烦来开发一个屏幕抓取工具,您可以将它与AutoIt结合使用来创建一些非常复杂的测试系统 .

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

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

    根据您正在测试的内容,您可能还在测试的代码中内置了某种测试工具 . Java代码有时用JUnit测试编写,Ruby代码可以使用Test :: Unit框架等.Here是各种语言的单元测试框架列表 . 如果您测试的代码是在构建单元测试的基础上构建的,那么您将需要学习编写代码的语言,以便您可以利用这些单元测试 .

  • 11

    对于基于Web的测试,您可能需要查看fitnesse . 此外,基于python构建的自动化测试框架是robot framework .

  • 3
    • Selenium非常适合QA级别的自动化测试 .

    • 无论您做什么,都会有一些与您的解决方案相关的学习曲线

    • Selenium的目的是为webapps提供一个测试框架 - 你使用Selenium来操作浏览器中的DOM元素,而不是运行的应用程序版本 .

    • Selenium是一个客户端/服务器模型(您运行服务器的某个地方,可以访问您的QA应用程序实例;您使用客户端库编写测试代码),以多种语言(java,ruby等)提供客户端

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

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

  • 3

    我还会添加一个小评论

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

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

    但它很容易使用

    您不需要学习任何java或ruby - 您可以用XML编写

    像这样的SMth:

    <!-- 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进行测试

  • 3
    • 是的,您可以学习selenium IDE,它只是作为firefox浏览器的附加组件,使用它可以记录您的测试并在需要时播放它们 . IDE的局限是它只能在firefox上使用 .

    • 如果您希望在多个浏览器上进行测试,则需要Selenium Grid或WebDriver,这需要了解java . 再一次,你不需要成为一名Java专业人员,一个简单的学习将有所帮助 .

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

    硒的优点:

    • 它的公开赛!

    • 易于学习和恭维..

    • 支持多种浏览器 .

    • 支持多种脚本/编程语言 .

    • 灵活选择,简单记录和回放(IDE),使用您喜欢的编程语言,您可以选择完整框架设计 .

    • 支持parellel执行 .

    希望这会帮助你 .

相关问题