自動化測試之困(為什么要做TestMP)- 測試環境管理
首先要說明一點,由測試人員獨占和負責配置的環境才是真正的測試環境,沒有真正的測試環境,自動化測試也就無從談起。只有讓測試人員決定是否變更環境配置,是否部署新版本的軟件包,才有可能使測試活動順利進行,較少被意外活動干擾。從現實經驗看,成功建立自動化測試體系的測試團隊往往和開發人員處于平等的地位,并有能力完全負責測試環境的維護和軟件包的部署,其它人員對測試環境的任何改動都是嚴格禁止的;而實施失敗的測試團隊則比較弱勢,無法做到擁有真正的測試環境,這種情況下手工測試都會經常遇到干擾而暫停,自動化測試體系也就無從談起了。
測試環境的管理與軟件的集成過程相互關聯,典型地包括以下活動:
-
同步測試環境與生產環境。當涉及到同一產品的多個研發團隊時,保證測試活動開始前所有的軟件包版本與生產環境一致。
</li> -
構建一個或多個需要測試軟件包。
</li> -
部署測試包到集成測試環境。
</li> -
驗證測試包的有效性,包括是否有包缺失,是否有多余包,版本是否正確等。
</li> -
驗證依賴的第三方環境是否正常運行。
</li> -
啟動自動化測試用例集,可能需要多次迭代直到消除誤報。
</li> -
監控測試運行期間的環境狀態,包括CPU使用率、內存占用率等。
</li> </ul>這些活動是可以通過腳本流程化的,很可能一個團隊正在編寫或已經有了大量的與測試環境配置相關的腳本。如果將這些分散的腳本集中管理,既可以一鍵執行,又能夠根據時間調度,對測試環境的管理就會更加靈活。另外這種集中管理和調度也使我們能夠提供一致的環境狀態報告,方便與相關人員分享。
Jekins和Hudson這一類CI工具是一種選擇,但更偏向于驅動一個過程,而不是面向環境的,對分布在不同主機上的各類腳本進行管理也很不方便,因此需要使用者做更多適配工作。
TestMP自動化測試管理平臺的測試環境管理模塊定義了環境(Environment),主機(Host),任務(Task),執行緒(Execution),追蹤(Trace)等元素,由用戶建立其中聯系。例如一個Environment可能包含多個Task,Task包含多個Execution,Execution映射到Host上的一個命令或腳本,執行過程中和之后可以獲得Trace,最終生成測試環境的狀態報告。由此可見TestMP的測試管理是圍繞測試環境建立和驅動測試流程的,這也是它與CI工具的區別。
</span></span>