這是《落葉》文集里第?148?片落葉,希望你能喜歡谬晕,不為別的碘裕,只為這份堅持。
【背景】
經(jīng)常被問及測試都有哪些類型攒钳,有的是因為在面試中被問到帮孔,有的是因為自己在學(xué)習(xí)中被各種名詞所困擾,也有的是因為在與同行交流時所用的叫法不同而迷惑不撑。
其實文兢,我覺得,問題本身所想了解的東西其實不重要焕檬,比如對于每個提測版本所進行的快速驗證測試姆坚,到底是應(yīng)該叫冒煙測試,還是叫 BVT 測試实愚,重要嗎兼呵?我們應(yīng)該關(guān)注的,或者說應(yīng)該要明白的是在不同的階段腊敲,或者是針對不同的目的击喂,我們應(yīng)該需要進行哪種類型的測試,知道該類型的測試應(yīng)該怎么做碰辅,難道不是這樣嗎懂昂?
不過,還是需要有個分類的乎赴,這樣才好溝通和學(xué)習(xí)忍法,我先按照自己的理解和認知做了一個分類和概要潮尝,后續(xù)再一一展開探究榕吼。
【你問】
不同的維度劃分下到底有多少種測試分類?
【我答】
1勉失、按軟件開發(fā)流程的不同階段劃分:
1.1 需求階段:
需求測試:對產(chǎn)品的需求進行測試羹蚣,包括邏輯錯誤、需求合理性乱凿、需求缺失顽素、需求建議等。
1.2 編碼階段:
單元測試:對軟件的最小組成單元進行的測試徒蟆,比如某個函數(shù)或者某個方法胁出;
集成測試:我們通常也叫聯(lián)合測試,指的就是在單元測試完成的基礎(chǔ)上段审,將所有模塊按業(yè)務(wù)需求組裝起來全蝶,進行集成測試;
1.3 測試階段:
系統(tǒng)測試:是將已經(jīng)完成集成測試的軟件和硬件、網(wǎng)絡(luò)等其他元素結(jié)合在一起抑淫,進行系統(tǒng)的各種組裝測試和確認測試绷落,系統(tǒng)測試是針對整個產(chǎn)品進行的測試,目的是驗證是否滿足產(chǎn)品需求的定義始苇。
1.4 發(fā)布階段:
驗收測試:Acceptance Testing砌烁,是指在產(chǎn)品完成系統(tǒng)測試之后、產(chǎn)品發(fā)布上線之前所進行的測試活動催式。在合同類的項目中函喉,也會被稱作交付測試。
2荣月、按測試視角劃分:
2.1 外部視角:
黑盒測試:指的是在測試過程中函似,只關(guān)注程序的輸入和輸出,一般用于系統(tǒng)測試階段喉童;
2.2 內(nèi)部視角:
白盒測試:指的是在測試過程中撇寞,不僅關(guān)注程序的輸入和輸出,還關(guān)注程序內(nèi)部的處理邏輯堂氯,一般用于單元測試階段蔑担;
2.3 內(nèi)外兼顧:
灰盒測試:顧名思義,其實就是在測試過程中咽白,黑白兼顧的測試方法啤握,一般用于集成測試階段;
3晶框、按測試對象的屬性劃分:
3.1 GUI 測試:指的是對軟件的 GUI 進行測試排抬,我認為在現(xiàn)如今的 APP 測試里,GUI 測試包含了 UI 測試和適配測試授段;
3.2 功能測試:Function Testing蹲蒲,這是我們最常見的,為了驗證產(chǎn)品是否符合產(chǎn)品需求規(guī)格說明書而進行的最基本的測試侵贵;
3.3 易用性測試:Usability Testing届搁,對于現(xiàn)在的 APP 來說,指的就是檢查系統(tǒng)的交互和界面對用戶來說是否友好且易用的測試活動窍育;
3.4 接口測試:指的是測試系統(tǒng)組件間接口的測試活動卡睦,檢查模塊之間參數(shù)傳遞是否符合設(shè)計文檔要求;
3.5 性能測試:指的是通過工具模擬多種正常漱抓、峰值以及異常負載條件來對系統(tǒng)的各項性能指標進行測試表锻。其中包括了負載測試、壓力測試乞娄、穩(wěn)定性測試等瞬逊;
3.6 安全測試:指的是驗證系統(tǒng)的安全等級和識別潛在的安全性缺陷的過程檐迟,目的是找出系統(tǒng)里的安全隱患和漏洞;
3.7 兼容性測試:指的是驗證軟件在不同的硬件码耐、操作系統(tǒng)追迟、瀏覽器、數(shù)據(jù)庫 下是否都能正常的運行骚腥,對于 C/S 結(jié)構(gòu)的產(chǎn)品來說敦间,還包括服務(wù)端和客戶端的兼容性;
3.8 國際化測試:驗證系統(tǒng)是否支持國際化特性的測試束铭,包括多字節(jié)字符集的支持廓块、區(qū)域設(shè)置、時區(qū)設(shè)置契沫、界面定制性以及字符串編碼等带猴;
3.9 本地化測試:驗證翻譯后的系統(tǒng),語言懈万、格式拴清、內(nèi)容和 UI 是否都正確的測試活動;
4会通、按測試對象是否處于運行狀態(tài)劃分:
4.1 靜態(tài)測試:指在不需要被測試系統(tǒng)運行時口予,采用的一種測試方法,比如代碼靜態(tài)掃描涕侈、代碼評審沪停、文檔評審等等;
4.2 動態(tài)測試:指在需要被測試系統(tǒng)運行時裳涛,所采用的單元測試方法或者是系統(tǒng)測試方法木张;
5、按執(zhí)行測試的角色劃分:
5.1 手工測試:指由軟件測試工程師手工執(zhí)行完成的軟件測試活動端三;
5.2 自動化測試:指由測試工具或測試腳本來執(zhí)行完成的軟件測試活動舷礼;
6、按測試的行為劃分:
6.1 計劃性測試:顧名思義技肩,在測試執(zhí)行之前且轨,需要進行詳盡的測試計劃浮声、測試分析虚婿、測試用例設(shè)計,并按照計劃通過執(zhí)行測試用例來完成的測試活動泳挥;
6.2 隨機測試:又叫 Ad-hoc testing然痊,顧名思義,就是沒有計劃的屉符,不按測試用例的剧浸,即興發(fā)揮的自由測試锹引;
7、按測試原因劃分:
7.1 新功能測試:針對產(chǎn)品新功能的驗證所進行的測試唆香;
7.2 回歸測試:因為產(chǎn)品增加了新功能或修復(fù)了 Bug嫌变,而進行的確保原有功能不會受到影響的檢查測試;
8躬它、按測試范圍劃分:
8.1 冒煙測試:我認為也可以等同于 BVT 測試(Build Validation Testing)腾啥,指的就是對測試包所進行的快速可用性驗證測試,一般只會覆蓋到系統(tǒng)核心功能或者是所有功能的核心測試點冯吓;
8.2 全面測試:指的就是對系統(tǒng)所有功能的所有測試點進行的測試活動倘待;
《測試路上你問我答》里的?Q&A 18,如果是你要的组贺,甚好凸舵!如果不是,你問失尖,我答啊奄!
作者簡介:14 年測試 + 11 年項目管理 + 11 年團隊管理 = 一個測試老兵