對于軟件測試工程師而言,所有的測試工作幾乎都離不開測試環(huán)境。在我們的測試任務(wù)當中,環(huán)境搭建是一項重要的工作。它是我們測試工作能夠執(zhí)行的重要基礎(chǔ),不管是入門的初級測試還是測試專家,測試環(huán)境的學(xué)習(xí)都是必須的。
下面給大家普及關(guān)于測試環(huán)境的基礎(chǔ)概念,希望對大家有所幫助。
首先,很多人有個誤區(qū),認為測試環(huán)境只是服務(wù)端的事情。
其實,一個完整的測試環(huán)境是由如下幾個部分構(gòu)成:
測試環(huán)境=軟件+硬件+網(wǎng)絡(luò)+數(shù)據(jù)準備+測試工具
測試環(huán)境(Testing environment)是指測試運行其上的軟件和硬件環(huán)境的描述,以及任何其它與被測軟件交互的軟件,包括驅(qū)動和樁。測試環(huán)境是指為了完成軟件測試工作所必需的計算機硬件、軟件、網(wǎng)絡(luò)設(shè)備、歷史數(shù)據(jù)的總稱。
所以,硬件資源、操作系統(tǒng)、服務(wù)中間件、基礎(chǔ)應(yīng)用、依賴服務(wù)、被測程序、測試工具等都是測試環(huán)境的一部分。
為什么要單獨部署測試環(huán)境?
與開發(fā)環(huán)境隔離。
便于設(shè)置不同場景和數(shù)據(jù)。
應(yīng)對專項測試,如果性能、安全等。
一般對于大型互聯(lián)網(wǎng)公司而言,一個完整的產(chǎn)品開發(fā)到上線,需要經(jīng)歷的測試環(huán)境分為以下幾種
開發(fā)環(huán)境:
顧名思義,開發(fā)環(huán)境是開發(fā)人員使用的,專門用于應(yīng)用開發(fā)調(diào)試的環(huán)境,開發(fā)到一定階段,前后端會在該環(huán)境進行聯(lián)調(diào),自測等工作。為了開發(fā)調(diào)試方便,一般打開全部錯誤日志。開發(fā)環(huán)境是最基礎(chǔ)的可運行環(huán)境。
測試環(huán)境:
一般是克隆一份生產(chǎn)環(huán)境的配置,是開發(fā)環(huán)境到生產(chǎn)環(huán)境的重要一環(huán),一般是測試工程師進行部署和維護,主要用于測試是否存在bug,bug修復(fù)后,測試工程師部署提測程序,回歸bug。
準生產(chǎn)環(huán)境(灰度測試)
測試環(huán)境到生產(chǎn)環(huán)境最后一次測試,一般除即將部署的應(yīng)用,其他軟硬件條件完全一致。主要排除測試環(huán)境的限制,驗證測試環(huán)境不能模擬的場景。
生產(chǎn)環(huán)境:
生產(chǎn)環(huán)境是指正用戶真實使用的環(huán)境,一般會關(guān)掉錯誤報告,打開錯誤日志,是整個產(chǎn)品運行最重要的環(huán)境,對安全性和穩(wěn)定性要求最高。
軟件從開發(fā)到上線的環(huán)境流程:
開發(fā)環(huán)境->測試環(huán)境->準生產(chǎn)環(huán)境->生產(chǎn)環(huán)境
從哪些方面可以評估測試環(huán)境的好壞?
1.獨立
測試環(huán)境獨立干凈,一般要有專門的測試環(huán)境管理員管理,控制依賴環(huán)境一致。在測試過程中,避免測試環(huán)境被開發(fā)或者其他人占用。比如,正在執(zhí)行用例,被測服務(wù)被開發(fā)擅自更換,將會極大的影響了測試的進度和效率。
2.穩(wěn)定
各個程序穩(wěn)定運行,良好的網(wǎng)絡(luò)環(huán)境。
3.高仿真
盡可能模擬用戶的真實使用環(huán)境,包括操作系統(tǒng)類型、版本,硬件和網(wǎng)絡(luò)配置等,避免因為環(huán)境不一致導(dǎo)致測試結(jié)果缺乏說服力。
4.可復(fù)用
重復(fù)運用一套環(huán)境進行多版本對迭代的驗證,可以隨時進行數(shù)據(jù)備份,恢復(fù)環(huán)境。
搭建測試環(huán)境,我們應(yīng)該具備哪些技能?
熟悉linux操作系統(tǒng),掌握常見的linux命令(查看網(wǎng)絡(luò)問題,上傳下載應(yīng)用,服務(wù)啟動關(guān)閉,日志查看,程序數(shù)據(jù)備份,數(shù)據(jù)庫腳本執(zhí)行,端口的占用情況,防火墻的開啟關(guān)閉等等)。
安裝配置常見軟件和中間件(jdk、tomcat、mysql、redis等)
容器化部署的知識,docker鏡像操作等。