圖5:在TFS生成中使用快照恢復測試環境到統一狀態
圖6:部署完成后,對測試環境創建快照,以便測試人員可以快速恢復某一版本的測試基線
通過以上兩個操作,我們解決了將集成測試自動化中的主要問題,使得我們的持續集成可以突破單元測試的限制,擴展到集成測試。
圖7:通過實驗室管理器查看正在自動化運行的測試用例
消除不可重現的Bug
虛擬化平臺可以幫助我們解決的另外一個問題就是消除不可重現Bug。由于測試環境和開發環境是隔離的獨立環境,開發人員往往很難直接獲得定位Bug所需的數據和信息,而測試人員又很難保持自己的測試環境處于正確的狀態以便開發人員可以使用。利用以上所提到的虛擬機快照技術,我們就可以將出現問題的測試環境原封不動的發送給開發人員進行問題定位,最大化的解決了不可重現Bug的問題。
圖8:測試人員使用快照將處于問題狀態的環境發送給開發人員
下一步
實現了測試環境的完整流程自動化后,下一步就是將最新版本推送給生產環境,將持續集成推廣成持續部署。這樣做的好處是我們可以最快的獲得用戶反饋,以便改進我們開發迭代中的需求。
下圖就是利用持續部署推送到生產環境的SSW公司官方網站。注意最下面一行小字,是由TFS的持續部署腳本自動生成的。這種持續部署的方式,再配合內部的虛擬化測試平臺,就可以保證變更以最快的速度進入生產環境。
圖9:SSW公司的網站使用持續部署進行快速部署,每次部署的間隔不超過24小時
總 結
開發和測試的制衡之道就是通過工具使他們都可以專注于自己的核心價值,同時能以最少的額外投入給對方提供必要的信息;這樣開發和測試可以在交互過程中消除摩擦,產生默契,加快迭代的速度;最終實現高質量的研發團隊并遞交高質量的產品。
原文轉自:http://www.anti-gravitydesign.com