深入解讀Ruby自動化測試作用
一個好的自動化測試方式對于測試員來說是相當重要的。下面我們向大家介紹的是關于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 社區的人員。