文/秋之川
第二十八章 獨立測試環境的投入是否值得?
場景一:
準備了半天的測試數據,點擊提交按鈕時,頁面直接拋出 Error 404,之前還好好的,怎么就不能訪問了呢?我截了個圖發到研發群里。
“頁面怎么不能訪問了?五分鐘前還是好的?!蔽覇柕?。
一個服務端開發回復我說:“我剛才改了點東西,重新部署了,正在重啟服務器?!?/p>
“。。?!?/p>
這個場景你是不是看著眼熟?你們是不是也跟開發共用著一套環境?
場景二:
這次上線的所有功能在測試環境都通過驗證了,但到了生產環境,就各種功能不能正常使用,排查半天之后,不是配置文件錯了,就是數據庫表少了個新增字段。也有因為測試環境的某些配置項跟生產環境不一樣,導致有些問題到了生產環境才被發現。
在遇到了幾次類似上述場景之后,我就跟老大提出,我們得申請獨立的測試環境,并附上了我的理由:
- 開發環境:
- 供開發工程師做單元測試、集成測試;
- 只需要滿足最精簡的環境需求即可;
- 可以多個服務共用一臺服務器;
- 測試環境:
- 供測試工程師使用的,且唯一認可的測試環境;
- 服務器的硬件配置可以略低于生產環境;
- 程序配置文件需要和生產環境保持一致;
- 該環境由測試工程師維護;
- 按測試計劃部署測試版本;
- 預上線環境:
- 迷你版的生產環境;
- 服務器的硬件配置可以略低于生產環境;
- 配置文件和相關環境因子都必須跟生產環境保持一致;
- 供測試工程師和運維工程師做預發布驗證;
- 作為運營和市場人員做內測使用;
- 用于減少場景二里80%的意外情況;
- 生產環境:
- 供真實用戶使用的現網環境;
- 測試人員在部署之后做核心業務的驗證測試;
- 測試人員用于重現測試環境無法重現的用戶問題;
隨著生產規模的擴大和對質量的要求越來越高,為了避免或減少場景一和場景二里的問題發生,投入相應的成本搭建獨立的測試環境,不管是從短期效果,還是從長期的結果去看,都是值得的。
在實際的測試體系規劃中,其實還有兩種環境也是建議獨立出來的:
- 自動化測試環境:
- 用于每天自動運行自動化腳本;
- 為了保持環境的純凈,腳本運行前后可以執行環境初始化腳本和數據清理腳本;
- 性能測試環境:
- 硬件的配置建議跟生產環境保持比例關系;
- 系統環境變量等參數保持跟生產環境一致;
- 數據庫的數據可以基于生產環境的數據做復制和擴展;
- 保持純凈的數據備份,用于每個輪次之后的數據初始化;
最后,從成本角度出發說一個小建議,就是這幾類環境中,有些是可以考慮采用虛擬服務器去搭建的,比如本地的開發、測試和自動化測試環境,其實預發布環境和生產環境也都可以采取虛擬服務器搭建,不過當下大多數都是用的阿里云服務,這個就不在我們考慮的范圍了。
《告訴你如何從執行測試到管理測試》帶你邁出第(28)步!,點擊這里可查看完整地圖
作者簡介:14 年測試 + 11 年項目管理 + 11 年團隊管理 = 一個測試老兵