一个好的自动化测试方式对于测试员来说是相当重要的。下面我们向大家介绍的是关于Ruby自动化测试的一些方法介绍,希望对大家有所帮助。#t#
自从我开始着手研究 Watir,就慢慢对自动化测试有了新的认识,这些认识也促使着我的研究越来越深入。12 年之前,Brian Marick 曾告诉过我开源的开发人员应该将自己的认识和观点分享给他人,这样也能让社区更清楚他们工作的目的。那我也来分享一下我的认识吧。
自动化测试系统存在三个关键因素:语言、驱动程序和测试工具。您编写测试用例及扩展测试系统时都需用用到语言,所以编程语言曾一度令我着迷,如 Perl、Python 和 Ruby。而且我还发现测试人员往往更能将各种编程语言运用得得心应手。尽管我有充分的理由偏爱Ruby自动化测试,但是其他一些较好的自动化测试系统却使用的是其他的编程语言。事实上在过去的几年里,我用过 Perl、Python 和 VB 建立测试框架,因为这些通常是客户端已使用的语言。另外,相比商用测试工具套件常使用的私有语言,我更侧重使用全功能的编程语言,可能因为我对私有语言已失去了耐心。
选择语言的范围很广,但是寻找一个合适的驱动程序就相对困难很多。驱动程序是用于您应用程序驱动的,就像 Watir 是一款浏览器的驱动程序,适用于网络应用程序的驱动。驱动程序可以对语言的选择起到决定性作用。几年前,我针对命令行应用程序使用的驱动是 Expert,其相对应的语言是 TCL,所以对应的工具套用的也是 TCL 语言。我开发 Watir,是因为我想用 Ruby 的浏览器驱动程序。使用 Ruby 的 Watir 是我们针对网络应用程序测试的解决方案。
测试系统的第三个关键因素即测试工具,它主要负责执行测试用例,以及收集、报告结果。在我们开发初期,我们都是用 Test::Unit,这是一个基于Ruby自动化测试的测试工具,可用于单元测试,同时也可用于功能测试。近期,也有些 Watir 用户开始使用 Rspec 或 Cucumber,但是也有些人不喜欢使用现有的测试工具,而更喜欢自己构建。
我是在开发商用测试工具套件(如 SilkTest 和 WinRunner)时有的这些认识。尽管这些套件包经常被认定为工具,但我发现他们实际上是压缩了一系列的集成工具。它们的使用预期往往不能满足测试人员的实际需求。就像数据驱动测试期间,我们需要打散原有的套件,然后按一种更加合理的配置重新组装。所以我需要测试人员对测试系统内每个单独的工具都能清楚地了解。
许多新的 Watir 使用者在区分 Watir(驱动程序)结点和 Ruby(语言)起点时会有困难,这是因为他们对这两者的功能未能清楚地理解。我得知一些教 Java 的老师不喜欢学生去使用 IDE(如 Eclipse 或 Netbeans),而更希望他们能学习使用一些需要的工具,如编辑工具和压缩工具,以了解它们的功能。同样的,我也希望测试人员能更清楚地了解测试系统内不同工具和部件的功能。
一些新的 Watir 使用者经常会来问一些问题,而这些问题的答案很明显是我们已经获知的。Watir 是否可以读 CSV 文件?Watir 是否可以进行日期运算?Watir 是否可以从数据库读取数据?对于这些问题的答案都是否定的,Watir 不能做到这些,但是 Ruby自动化测试却能做到。任何浏览器驱动程序都不能完成这些操作(就像您的压缩软件不支持搜索和替换),但是任何全功能的编程语言却能做到。
因为测试人员习惯使用的是商用工具套件,这些套件所包含的系统是封闭的,所以他们在使用 Watir 初期可能会提出这样的问题。但实际上您无需担心 Watir 是否缺少某些功能,您只需具备的使用这些功能的能力,一旦供应商将这些功能加入套件包内,即能马上熟练运用。Watir 是一个开发式系统的一部分,经常会有非 Watir 社区的人员对现有的库进行完善,他们可以说是属于一个更大的 Ruby 社区的人员。