和一般的軟體項目一樣,自動化測試架構的開發是由自動化測試需求決定的,這個需求包括:
一、自動化測試更便于實施
二、處理自動化測試腳本本身的存在的問題,如異常處理和場景恢複
三、彌補測試腳本本身的不足或是特殊測試需求
四、測試易于維護
自動化測試過程包括三個要素:輸入、輸出、預期結果與實際結果的比較。
輸入包括測試資料和測試步驟兩部分。測試資料可以直接與測試步驟一起直接寫在腳本裡,也可以獨立于代碼,通過配置檔案或參數的方式傳遞到測試中。測試步驟是測試腳本的主體,它依賴于軟體的行為。軟體輸入的随意性使軟體行為難以确定,這大大提高了編寫測試腳本的難度。軟體本身存在的缺陷或系統響應時間等問題都可能導緻測試腳本執行失敗。我們測試中無法考慮到腳本執行過程中所有的異常情況,而這會導緻測試腳本執行的不穩定性,是以我們需要針對測試腳本本身做異常處理。
輸出,并将其與預期結果比較是自動話測試的另一個重點;相對于輸入對軟體的依賴,這個過程則是偏向于計算和比較,需要較高的編碼能力。在測試項目中,測試結果的擷取經常不像手工測試那麼容易,而且驗證規則比較複雜,有時一個校驗點需要數十行甚至幾百行代碼才能完成。在自動化測試中,很多功能函數是通用的,且對于同一個項目,經常需要重複做這相同的事情。這樣,設計一些公共函數對整個腳本的開發工作和維護工作是大有裨益的,不僅可以大大減少編碼量,而且可以提高腳本的正确性和可維護性。
是以我們可以通過測試架構為我們做以下事情:
第一、處理腳本中一些異常和錯誤處理工作;
第二、實作一些通用的功能,簡化腳本開發的過程;
然而對于 自動化測試,我們不能一個腳本一個腳本的去執行測試,而希望能夠自如的部署測試,比如我們選擇要執行的用例後,自動化測試架構能夠執行相應的用例并給出測試結果。
基于此,我們希望測試架構可以幫我們實作:
第三、根據需求驅動測試執行;
第四、測試場景恢複;
第五、測試結果輸出。
當然,我們的需求可能還不止這些,需要測試架構為我們做更多的事情。