無(wú)論采用什么測試方法,定義一個(gè)看得見(jiàn)的目標,然后集中在這個(gè)目標上。驗證你自動(dòng)化測試概念可以使自動(dòng)化更進(jìn)一步邁向成功之路。
步驟四:支持產(chǎn)品的可測試性
軟件產(chǎn)品一般會(huì )用到下面三種不同類(lèi)別的接口:命令行接口( command line interfaces ,縮寫(xiě) CLIs) 、應用程序接口( API )、圖形用戶(hù)接口( GUI )。有些產(chǎn)品會(huì )用到所有三類(lèi)接口,有些產(chǎn)品只用到一類(lèi)或者兩類(lèi)接口,這些是測試中所需要的接口。從本質(zhì)上看, API 接口和命令行接口比 GUI 接口容易實(shí)現自動(dòng)化,去找一找你的被測產(chǎn)品是否包括 API 接口或者命令行接口。有些時(shí)候,這兩類(lèi)接口隱藏在產(chǎn)品的內部,如果確實(shí)沒(méi)有,需要鼓勵開(kāi)發(fā)人員在產(chǎn)品中提供命令行接口或者 API 接口,從而支持產(chǎn)品的可測試性。
下面,更多多的講解 GUI 自動(dòng)化測試相關(guān)內容。這里有幾個(gè)原因導致 GUI 自動(dòng)化測試比預期的要困難。第一個(gè)原因是需要手工完成部分腳本。絕大多數自動(dòng)化測試工具都有 “ 錄制回放 ” 或者 “ 捕捉回放 ” 功能,這確實(shí)是個(gè)很好的方法?梢允止绦測試用例,測試工具在后臺記住你的所有操作,然后產(chǎn)生可以用來(lái)重復執行的測試用例腳本。這是一個(gè)很好的方法,但是很多時(shí)候卻不能奏效。很多軟件測試文章的作者得出結論 “ 錄制回放 ” 雖然可以生成部分測試腳本,但是有很多問(wèn)題導致 “ 錄制回放 ” 不能應用到整個(gè)測試執行過(guò)程中。 [Bach 1996, Pettichord 1996, Kaner 1997, Linz 1998, Hendrickson 1999, Kit 1999, Thomson 1999, Groder 1999]. 結果, GUI 測試還是主要由手工完成。
第二個(gè)原因,把 GUI 自動(dòng)化測試工和被測試的產(chǎn)品有機的結合在一起需要面臨技術(shù)上的挑戰。經(jīng)常要在采用眾多專(zhuān)家意見(jiàn)和最新的 GUI 接口技術(shù)才能使 GUI 測試工具正常工作。這個(gè)主要的困難也是 GUI 自動(dòng)化測試工具價(jià)格昂貴的主要原因之一。非標準的、定制的控件會(huì )增加測試的困難,解決方法總是有的,可以采用修改產(chǎn)品源代碼的方式,也可以從測試工具供應商處升級測試工具。另外,還需要分析測試工具中的 BUG ,并且給工具打補丁。也可能測試工具需要做相當的定制,以便能有效地測試產(chǎn)品界面上的定制控件。 GUI 測試中,困難總是意外出現,讓人驚奇。你也可能需要重新設計你的測試以規避那些存在問(wèn)題的界面控件。
第三個(gè)原因, GUI 設計方案的變動(dòng)會(huì )直接帶來(lái) GUI 自動(dòng)化測試復雜度的提高。在開(kāi)發(fā)的整個(gè)過(guò)程中,圖形界面經(jīng)常被修改或者完全重設計,這是出了名的事情。一般來(lái)講,第一個(gè)版本的圖形界面都是很糟糕。如果處在圖形界面方案不停變動(dòng)的時(shí)候,就開(kāi)展 GUI 自動(dòng)化測試是不會(huì )有任何進(jìn)展的,你只能花費大量的時(shí)間修改測試腳本,以適應圖形界面的變更。不管怎樣,即便界面的修改會(huì )導致測試修改腳本,你也不應該反對開(kāi)發(fā)人員改進(jìn)圖形界面。一旦原始的設計完成后,圖形界面接口下面的編程接口就固定下來(lái)了。
上面提到的這些原因都是基于采用 GUI 自動(dòng)化測試的方法完成產(chǎn)品的功能測試。圖形界面接口當然需要測試,可以考慮實(shí)現 GUI 測試自動(dòng)化。不過(guò),你也應該考慮采用其他方法測試產(chǎn)品的核心功能,并且這些測試不會(huì )因為圖形界面發(fā)生變化而被中斷,這類(lèi)測試應該采用命令行接口或者 API 接口。我曾經(jīng)看到有人選擇 GUI 自動(dòng)化測試,因為,他們不打算修改被測試產(chǎn)品,但是,最終他們認識到必須對產(chǎn)品做修改,以保證 GUI 測試自動(dòng)化可以正常工作。無(wú)論你選擇哪種方法,自動(dòng)化都需要對被測試的產(chǎn)品做修改。因此,采用可編程的接口是最可靠的。
為了讓 API 接口測試更為容易,應該把接口與某種解釋程序,例如 Tcl 、 Perl 或者 Python 綁定在一起。這使交互式測試成為可能,并且可以縮短自動(dòng)化測試的開(kāi)發(fā)周期。采用 API 接口的方式,還可以實(shí)現獨立的產(chǎn)品模塊的單元測試自動(dòng)化。
一個(gè)關(guān)于隱藏可編程接口的例子是關(guān)于 InstallShield—— 非常流行的制作安裝盤(pán)的工具。 InstallShield 有命令行選項,采用這種選項可以實(shí)現非 GUI 方式的安裝盤(pán),采用這種方式,從提前創(chuàng )建好的文件中讀取安裝選項。這種方式可能比采用 GUI 的安裝方式更簡(jiǎn)單更可靠。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/