圖2-1說明了測試與自動化測試在測試用例的四個質量特征上的區別。
圖2-1 測試用例質量Keviat圖
1.2 自動化測試生命周期的概述
1.2.1 自動化測試過程
提到測試,一般都認為是使用測試用例進行測試,而事實上,這只是完整測試過程中的一個步驟,測試活動其實是一個過程,如圖2-2所示,是一系列的步驟,通過這些步驟實現測試活動,導致測試的執行和測試產物的產生。測試過程有開發者、測試設計工程師和測試工程師的共同參與。包括了測試計劃、設計、開發、執行和評估這幾個步驟[1]。各個步驟分別又有不同的自動化工具提供支持。
圖2-2 自動化測試過程
(1)自動測試的計劃
理想情況下,測試始于測試目標和測試策略的建立,測試策略應滿足測試目標的要求。管理層的測試計劃包括評估完成所有測試活動的時間,測試活動安排及資源分配,控制測試過程以及跟蹤整個測試過程所需采取的活動,這些高層次活動應該在項目開始前就實施,并貫穿項目的整個開發過程。
測試計劃是測試過程中最重要的活動,包括風險評估、鑒別和確定測試需求的優先級,估計測試資源的需求量,開發測試項目計劃以及給測試小組成員分配測試職責等。
測試計劃的目的是收集從需求/設計文檔中得到的信息,并將這些信息表現在測試需求中,而測試需求將在測試場景中得到實現。測試場景是測試計劃的一部分,它直接提供給測試條件、測試用例、測試數據的開發。我們可以視測試計劃為從軟件需求中抽出來工作文檔,并和測試需求和測試結果相聯系。測試計劃還會隨著軟件需求的更新而更新,是動態的文檔。
這個階段主要是測試設計工程師根據開發者提供的功能需求,高級設計文檔及詳細設計文檔,使用如Rational RequisitePro這樣的工具得到測試需求,測試計劃,以及測試用例的Excel形式的列表。
(2)自動測試的設計
測試設計包括經過測試需求分析后,定義測試活動模型(確定測試所使用的測試技術),定義測試體系結構,完成測試程序的定義與映射(建立測試程序與測試需求之間的聯系),自動/手動測試映射(確定哪些測試使用自動測試),以及測試數據映射。
需要指出的是確定自動/手動測試映射,對于自動測試相當重要,因為并不是所有的測試都適合自動化。作者認為,一般以下幾類情況適合進行自動測試:
當前的測試項目比較大,且在今后項目中重復測試的概率比較高;
測試本身的執行簡單、機械,而測試所需硬件環境則相對來說比較穩定;
測試難以通過手動方式實現,例如部分負載/壓力測試;
測試基本不需要人工參與,且重復性較高,如系統的配置測試。
這個階段主要參與者有測試設計工程師,其任務是根據測試需求,測試計劃文檔,測試用例列表等,使用工具如Excel來構建電子數據表,包括測試條件電子數據表,測試數據電子數據表,有關各種映射關系定義的表格以及詳細測試電子數據表。
(3)自動測試的開發
測試開發包括創建具有可維護性、可重用性、簡單性、健壯性的測試程序。同時要注意確保自動測試開發的結構化和一致性。
這個階段由測試設計工程師在上一階段的基礎上,根據詳細測試表、映射關系定義表等電子數據表格,可以使用Robot、 WinRunner等工具,生成手工測試腳本,自動化測試腳本。尤其是自動測試腳本的開發,有線性腳本、結構化腳本、共享腳本、數據驅動腳本和關鍵字驅動腳本這幾種腳本技術。各種腳本技術將在后面章節詳細論述。
(4)自動測試的執行與評估
隨著測試計劃的建立和測試環境的搭建完畢,按照測試程序進度安排執行測試,可以通過手動或自動或半手動半自動方式執行,它們各自可以發現不同類型的錯誤。測試執行結束后,需要對測試結果進行比較、分析以及結果驗證,得出測試報告(包括總結性報告和詳細報告)。其中總結性報告是提供給被測方中高層管理者及客戶的,而詳細報告,寄過編輯整理,作為反饋文檔提供給開發小組成員。執行及評價過程如圖2-3所示。
原文轉自:http://www.uml.org.cn/Test/200804098.asp