深入解讀Ruby自動化測試作用
一個好的自動化測試方式對于測試員來說是相當(dāng)重要的。下面我們向大家介紹的是關(guān)于Ruby自動化測試的一些方法介紹,希望對大家有所幫助。#t#
自從我開始著手研究 Watir,就慢慢對自動化測試有了新的認(rèn)識,這些認(rèn)識也促使著我的研究越來越深入。12 年之前,Brian Marick 曾告訴過我開源的開發(fā)人員應(yīng)該將自己的認(rèn)識和觀點分享給他人,這樣也能讓社區(qū)更清楚他們工作的目的。那我也來分享一下我的認(rèn)識吧。
自動化測試系統(tǒng)存在三個關(guān)鍵因素:語言、驅(qū)動程序和測試工具。您編寫測試用例及擴(kuò)展測試系統(tǒng)時都需用用到語言,所以編程語言曾一度令我著迷,如 Perl、Python 和 Ruby。而且我還發(fā)現(xiàn)測試人員往往更能將各種編程語言運用得得心應(yīng)手。盡管我有充分的理由偏愛Ruby自動化測試,但是其他一些較好的自動化測試系統(tǒng)卻使用的是其他的編程語言。事實上在過去的幾年里,我用過 Perl、Python 和 VB 建立測試框架,因為這些通常是客戶端已使用的語言。另外,相比商用測試工具套件常使用的私有語言,我更側(cè)重使用全功能的編程語言,可能因為我對私有語言已失去了耐心。
選擇語言的范圍很廣,但是尋找一個合適的驅(qū)動程序就相對困難很多。驅(qū)動程序是用于您應(yīng)用程序驅(qū)動的,就像 Watir 是一款瀏覽器的驅(qū)動程序,適用于網(wǎng)絡(luò)應(yīng)用程序的驅(qū)動。驅(qū)動程序可以對語言的選擇起到?jīng)Q定性作用。幾年前,我針對命令行應(yīng)用程序使用的驅(qū)動是 Expert,其相對應(yīng)的語言是 TCL,所以對應(yīng)的工具套用的也是 TCL 語言。我開發(fā) Watir,是因為我想用 Ruby 的瀏覽器驅(qū)動程序。使用 Ruby 的 Watir 是我們針對網(wǎng)絡(luò)應(yīng)用程序測試的解決方案。
測試系統(tǒng)的第三個關(guān)鍵因素即測試工具,它主要負(fù)責(zé)執(zhí)行測試用例,以及收集、報告結(jié)果。在我們開發(fā)初期,我們都是用 Test::Unit,這是一個基于Ruby自動化測試的測試工具,可用于單元測試,同時也可用于功能測試。近期,也有些 Watir 用戶開始使用 Rspec 或 Cucumber,但是也有些人不喜歡使用現(xiàn)有的測試工具,而更喜歡自己構(gòu)建。
我是在開發(fā)商用測試工具套件(如 SilkTest 和 WinRunner)時有的這些認(rèn)識。盡管這些套件包經(jīng)常被認(rèn)定為工具,但我發(fā)現(xiàn)他們實際上是壓縮了一系列的集成工具。它們的使用預(yù)期往往不能滿足測試人員的實際需求。就像數(shù)據(jù)驅(qū)動測試期間,我們需要打散原有的套件,然后按一種更加合理的配置重新組裝。所以我需要測試人員對測試系統(tǒng)內(nèi)每個單獨的工具都能清楚地了解。
許多新的 Watir 使用者在區(qū)分 Watir(驅(qū)動程序)結(jié)點和 Ruby(語言)起點時會有困難,這是因為他們對這兩者的功能未能清楚地理解。我得知一些教 Java 的老師不喜歡學(xué)生去使用 IDE(如 Eclipse 或 Netbeans),而更希望他們能學(xué)習(xí)使用一些需要的工具,如編輯工具和壓縮工具,以了解它們的功能。同樣的,我也希望測試人員能更清楚地了解測試系統(tǒng)內(nèi)不同工具和部件的功能。
一些新的 Watir 使用者經(jīng)常會來問一些問題,而這些問題的答案很明顯是我們已經(jīng)獲知的。Watir 是否可以讀 CSV 文件?Watir 是否可以進(jìn)行日期運算?Watir 是否可以從數(shù)據(jù)庫讀取數(shù)據(jù)?對于這些問題的答案都是否定的,Watir 不能做到這些,但是 Ruby自動化測試卻能做到。任何瀏覽器驅(qū)動程序都不能完成這些操作(就像您的壓縮軟件不支持搜索和替換),但是任何全功能的編程語言卻能做到。
因為測試人員習(xí)慣使用的是商用工具套件,這些套件所包含的系統(tǒng)是封閉的,所以他們在使用 Watir 初期可能會提出這樣的問題。但實際上您無需擔(dān)心 Watir 是否缺少某些功能,您只需具備的使用這些功能的能力,一旦供應(yīng)商將這些功能加入套件包內(nèi),即能馬上熟練運用。Watir 是一個開發(fā)式系統(tǒng)的一部分,經(jīng)常會有非 Watir 社區(qū)的人員對現(xiàn)有的庫進(jìn)行完善,他們可以說是屬于一個更大的 Ruby 社區(qū)的人員。















 
 
 




 
 
 
 