FinalBuilder是一款自動化創(chuàng)建和發(fā)布管理工具,軟件開發(fā)者可以通過這款軟件定義和維護一個可靠的以及可重復(fù)創(chuàng)建的程序。FinalBuilder包括集成的帶有版本的控制系統(tǒng),文件和目錄選項,重復(fù)器,源代碼編譯,測試工具,數(shù)據(jù)庫系統(tǒng),安裝工具,以及用于在因特網(wǎng)上進行配置的行為和CD或者DVD刻錄功能。
軟件介紹:
該軟件擁有280個內(nèi)置的行為,允許你從源代碼編譯應(yīng)用軟件,編譯設(shè)置和安裝程序,作用于版本控制系統(tǒng),編譯幫助文件,創(chuàng)建和編輯INI文件以及Windows操作系統(tǒng)注冊表鍵,刻錄CD和DVD或者創(chuàng)建ISO映像,壓縮和未壓縮文件,允許自動測試,從或者向服務(wù)器移動FTP文件,發(fā)送電子郵件信息和在新聞服務(wù)器上郵遞,以及創(chuàng)建計劃進度表。
實用說明:
當(dāng)自動化測試的腳本編輯器完成之后,根據(jù)使用者反饋,這樣確實大大提高了工作效率。并且代碼的管理確實變得有效和可控。現(xiàn)在此項目已經(jīng)開始向另一個管理系統(tǒng)嘗試應(yīng)用?梢灶A(yù)計,會有一些新的功能加入。
不過,我們回過頭來思考一個問題——自動化的問題。這是我們最終的目的。雖然說自動化測試框架能夠解決軟件本身的執(zhí)行問題,但是一次完整的測試,必然是要覆蓋全過程的。很顯然,我們的框架不能解決這個問題。
我做過很多項目的每日版本構(gòu)造,所以對FinalBuilder比較熟悉。我也同時意識到FinalBuilder可以彌補我們框架在這方面的缺陷。很自然的,我將這個軟件引入到我們系統(tǒng)中來。
這個軟件在業(yè)界是非常有名的,很多人都很熟悉其用法。不過原來都是開發(fā)人員在做,測試人員不是很熟悉。所以我在最近對參與自動化測試的幾位測試人員,做了簡單的培訓(xùn)?紤]到這篇文章的部分讀者也是測試人員,所以我在這里也簡單的介紹一下FinalBuilder。如果你使用過FinalBuilder,可以跳過下面這段文字。
FinalBuilder解決的是任務(wù)流的問題。就像我們以前的DOS系統(tǒng)的大部分程序一樣,沒有界面交互部分,一次輸入,直接返回最終處理結(jié)果。這點和我們的自動化目標(biāo)不謀而合。
在FinalBuilder中,最本質(zhì)的就是一次任務(wù)的執(zhí)行。任務(wù)的執(zhí)行包括兩部分:執(zhí)行環(huán)境+執(zhí)行數(shù)據(jù)。執(zhí)行環(huán)境往往包括Windows系統(tǒng)自帶的一些程序,包括Copy,XCopy等等Shell命令。也有系統(tǒng)中已經(jīng)安裝的程序,如Delphi、VC、SVN等等。而執(zhí)行數(shù)據(jù),則是指我們的輸入了!由于我們要達到在執(zhí)行中不存在界面交互,那么就必然要求我們將所有需要交互的信息一次性地輸入。于此同時,我們的環(huán)境程序,也必須同時支持此種模式(一般這種模式,稱之為命令行模式)。
對于使用FinalBuilder的人來講,就有必要了解相關(guān)程序的命令行調(diào)用方式。這樣有助于我們使用和編寫任務(wù)。如果是我們自己研發(fā)一個程序,那么因為要使用到FinalBuilder中來,也有必要支持命令行模式。
在FinalBuilder中,最主要的還是順序流程,當(dāng)然它也支持條件(if)、分支(case)、循環(huán)(loop)。最新的版本還有多線程協(xié)同。不過在使用初期,主要還是以順序流程為主了。
最關(guān)鍵最有用的就是Run DOS Command和Execute Programe兩個Action(任務(wù))了。有了這兩個,你幾乎可以完成任何事情。當(dāng)然了FinalBuilder還提供了很多現(xiàn)成的控件,使得你可以通過配置(而不是命令行)來編寫任務(wù)。這大大降低了使用難度。不過,不可避免的會有一些需求需要我們自己編寫命令行,因此著兩個Action必須掌握。
FinalBuilder的自動執(zhí)行,是使用Windows的計劃任務(wù)來完成的。在其菜單中有生成計劃任務(wù)的功能。順便說一句,F(xiàn)inalBuilder也一樣支持命令行模式,因此多個FinalBuilder之間可以互相調(diào)用。這對我們的自動化非常有利。
好了,經(jīng)過簡單介紹之后,我們可以發(fā)現(xiàn),使用FinalBuilder確實可以幫助我們解決問題。
那么,我們需要解決哪些問題呢?下面是我列出的一份清單,這份清單是按照順序列出的:
卸載已經(jīng)安裝的目標(biāo)軟件。
刪除所有目標(biāo)軟件想過目錄,保障干凈環(huán)境
獲取并復(fù)制目標(biāo)軟件安裝程序
獲取自動化測試腳本和框架程序
安裝目標(biāo)軟件
安裝自動化測試框架
執(zhí)行目標(biāo)軟件
執(zhí)行目標(biāo)軟件的自動化測試腳本,如:冒煙測試
生成自動化執(zhí)行日志,分析結(jié)果
發(fā)送郵件通知自動化負(fù)責(zé)人
上面的這些事情,所有需要完成的功能,其實都已經(jīng)做好了。因為我們通過手工確實可以走到最后。但是要做到覆蓋全過程的自動化的想法,還需要各個工具軟件互相協(xié)調(diào)。
首先是軟件的安裝和卸載,這需要程序保障命令行模式的安靜運行。(安裝和卸載都是需要人工交互的),剛好我們公司的安裝程序支持這個模式,省去了很多麻煩。不過,很多安裝軟件也都是支持的,只要多查查資料就可以了。
復(fù)制文件就簡單多了,F(xiàn)inalBuilder和Windows都已經(jīng)提供了很多命令。
關(guān)于自動化測試的執(zhí)行,就對我們的自動化腳本編輯器提出了需求。針對這個需求,我好幾天加班加點才加進去。主要是程序的協(xié)同性問題。必須等到目標(biāo)軟件的主窗體完全啟動完畢。另外,需要對中途的意外退出,作出嚴(yán)格的防范,保障自動化測試能夠有始有終。這里面增加了一個超時的概念,可以保障最后程序的退出。
分析日志更是重要,事實上,沒有日志的自動化測試沒有人愿意去做。目前還是先根據(jù)一些簡單的需求,做了一些統(tǒng)計,相信以后還會增加的功能是版本日志對比。這樣可以看到系統(tǒng)的穩(wěn)定性變化趨勢。