1. 自動化測試的前提條件
實施自動化測試之前需要對軟件開發過程進行分析,以觀察其是否適合使用自動化測試。通常需要同時滿足以下條件:
1) 軟件需求變動不頻繁。
測試腳本的穩定性決定了自動化測試的維護成本。如果軟件需求變動過于頻繁,測試人員需要根據變動的需求來更新測試用例以及相關的測試腳本,而腳本的維護本身就是一個代碼開發的過程,需要修改、調試,必要的時候還要修改自動化測試的框架,如果所花費的成本不低于利用其節省的測試成本,那么自動化測試便是失敗的。
項目中的某些模塊相對穩定,而某些模塊需求變動性很大。我們便可對相對穩定的模塊進行自動化測試,而變動較大的仍是用手工測試。
2) 項目周期足夠長。
由于自動化測試需求的確定、自動化測試框架的設計、測試腳本的編寫與調試均需要相當長的時間來完成。這樣的過程本身就是一個測試軟件的開發過程,需要較長的時間來完成。如果項目的周期比較短,沒有足夠的時間去支持這樣一個過程,那么自動化測試便成為笑談。
3) 自動化測試腳本可重復使用。
如果費盡心思開發了一套近乎完美的自動化測試腳本,但是腳本的重復使用率很低,致使其間所耗費的成本大于所創造的經濟價值,自動化測試便成為了測試人員的練手之作,而并非是真正可產生效益的測試手段了。
另外,在手工測試無法完成,需要投入大量時間與人力時也需要考慮引入自動化測試。比如性能測試、配置測試、大數據量輸入測試等。
2. 自動化測試的過程
自動化測試與軟件開發過程從本質上來講是一樣的,無非是利用自動化測試工具(相當于軟件開發工具),經過對測試需求的分析(軟件過程中的需求分析),設計出自動化測試用例(軟件過程中的需求規格),從而搭建自動化測試的框架(軟件過程中的概要設計),設計與編寫自動化腳本(詳細設計與編碼),測試腳本的正確性,從而完成該套測試腳本(即主要功能為測試的應用軟件)。
1) 自動化測試需求分析。
當測試項目滿足了自動化的前提條件,并確定在該項目中需要使用自動化測試時,我們便開始進行自動化測試需求分析。此過程需要確定自動化測試的范圍以及相應的測試用例、測試數據,并形成詳細的文檔,以便于自動化測試框架的建立。
2) 自動化測試框架的搭建。
所謂自動化測試框架便是像軟件架構一般,定義了在使用該套腳本時需要調用哪些文件、結構,調用的過程,以及文件結構如何劃分。
而根據自動化測試用例,我們很容易能夠定位出自動化測試框架的典型要素:
a. 公用的對象。
不同的測試用例會有一些相同的對象被重復使用,比如窗口、按鈕、頁面等。這些公用的對象可被抽取出來,在編寫腳本時隨時調用。當這些對象的屬性因為需求的變更而改變時,只需要修改該對象屬性即可,而無需修改所有相關的測試腳本。
b. 公用的環境。
各測試用例也會用到相同的測試環境,將該測試環境獨立封裝,在各個測試用例中靈活調用,也能增強腳本的可維護性。
c. 公用的方法。
當測試工具沒有需要的方法時,而該方法又會被經常使用,我們便需要自己編寫該方法,以方便腳本的調用。
d. 測試數據。
也許一個測試用例需要執行很多個測試數據,我們便可將測試數據放在一個獨立的文件中,由測試腳本執行到該用例時讀取數據文件,從而達到數據覆蓋的目的。
在該框架中需要將這些典型要素考慮進去,在測試用例中抽取出公用的元素放入已定義的文件,設定好調用的過程。
3) 自動化測試腳本的編寫
該編寫過程便是具體的測試用例的腳本轉化。初學的自動化測試人員均會使用錄制腳本到修改腳本的過程。但專業化的建議是以錄制為參考,以編寫腳本為主要行為,以避免錄制腳本帶來的冗余、公用元素的不可調用、腳本的調試復雜等問題。
4) 腳本的測試與試運行
事實上,當每一個測試用例所形成的腳本通過測試后,并不意味著執行多個甚至所有的測試用例就不會出錯。輸入數據以及測試環境的改變,都會導致測試結果受到影響甚至失敗。而如果只是一個個執行測試用例,也僅能被稱作是半自動化測試,這會極大的影響自動化測試的效率,甚至不能滿足夜間自動執行的特殊要求。
因此,腳本的測試與試運行極為重要,它需要祥查多個腳本不能依計劃執行的原因,并保證其得到修復。同時他也需要經過多輪的腳本試運行,以保證測試結果得一致性與精確性。
自動化測試引入的原因是就把軟件測試人員從枯燥乏味的機械性手工測試勞動中解放出來,以自動化測試工具取而代之,使測試人員的精力真正花在提高軟件產品質量本身
功能性自動化測試的主流工具:HP-Mercury QTP, Rational Robot, IBM Functional Tester, Selenium, SilkTest等
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/