您好,登錄后才能下訂單哦!
大家好,我是十一。
今天我們聊聊測試的種類-黑白灰測試。那測試到底怎么分類呢?
直接上圖吧,我為大家精心準(zhǔn)備了個大圖,要認(rèn)真看哦~來之不易~
注:功能測試部分是按照重要程度以及先后順序做的排序。
乍一看,你的心情是不是這樣式兒的?
圖片來源:百度
莫方哈,其實這張圖只是按照不同緯度給測試分類而已,并不是說明有這么多種測試,重疊部分還是比較多的,但是這張圖呢需要大家理解并牢記的,因為面試、工作都是常用的呢~接下來我們會用豐富的例子帶大家一一理解這張圖。
如題:此篇呢我們講解黑盒、白盒、灰盒測試(所謂黑白灰)的含義以及區(qū)別
其他的呢我們都放在后續(xù)篇章,用例子一一為大家串講。
好了進入正題。
黑、白、灰三盒測試的含義及區(qū)別
根據(jù)上圖可以看出按照是否查看內(nèi)部代碼/結(jié)構(gòu),我們將軟件測試分為黑盒測試、白盒測試、灰盒測試。
黑盒測試(Black-box Testing)
????黑盒測試又被稱為功能測試、數(shù)據(jù)驅(qū)動測試或基于需求規(guī)格說明書的測試,是通過使用整個軟件或某種軟件功能來嚴(yán)格地測試。測試中把被測的軟件當(dāng)成一個黑盒子,不關(guān)心盒子的內(nèi)部結(jié)構(gòu)是什么,只關(guān)心軟件的輸入數(shù)據(jù)與輸出數(shù)據(jù)。主要針對軟件界面和軟件功能進行測試。
????在黑盒測試中,軟件測試工程師只需要知道軟件要做什么-而無法看到盒子里的軟件是如何運行的。只要進行一些輸入,就能得到某種輸出結(jié)果。來個例子:我們對QQ的登陸功能進行測試,那賬戶名輸入11,密碼輸入11(此用戶不存在),如下圖所示
然后點擊“登陸”按鈕,那么QQ彈出如下窗口:
這就是一個典型的黑盒測試,屬于黑盒測試中的業(yè)務(wù)邏輯測試,這個測試的輸入輸出如下:
|
通過輸入輸出消息來和需求說明書做對照,看是否一致,如果一致則通過,如果不一致則失敗。(當(dāng)然登陸的測試不是這么簡單,我們這里只是以其中一個點舉例,不要著急哦,我會慢慢帶你學(xué)習(xí)的~)
白盒測試(White-box Testing)
????白盒測試又稱結(jié)構(gòu)測試、透明盒測試、邏輯驅(qū)動測試或基于代碼的測試。白盒指的打開盒子,去研究里面的源代碼和程序結(jié)果。
無論是單元測試還是代碼檢查都不屬于初級測試工程師的工作范圍。這部分工作一般由軟件開發(fā)工程師來完成,由開發(fā)小組自行編寫單元測試、代碼檢查以及兩者的審查的工作?,F(xiàn)在也有些工具可以做簡單的審查,比如sonar、go等等??傊?,哪種情況都可以,只要適合自身情況即可。
在這里我們不做具體描述以及用例展示。
圖片來源:文庫
灰盒測試(Gray-Box Testing)
????灰盒測試,是介于白盒測試與黑盒測試之間的一種測試,灰盒測試多用于集成測試階段,不僅關(guān)注輸出、輸入的正確性,同時也關(guān)注程序內(nèi)部的情況。灰盒測試不像白盒那樣詳細(xì)、完整,但又比黑盒測試更關(guān)注程序的內(nèi)部邏輯,常常是通過一些表征性的現(xiàn)象、事件、標(biāo)志來判斷內(nèi)部的運行狀態(tài)。
那灰盒和白盒到底有啥不同?
測試的時段不同:白盒測試在單元測試階段進行,灰盒測試在集成測試前期進行
測試的關(guān)注對象不同:白盒測試更關(guān)注內(nèi)部實現(xiàn)是否按照規(guī)格說明書進行,灰盒測試除了需要關(guān)注白盒測試關(guān)注的內(nèi)容還更多從業(yè)務(wù)層面去考慮問題,考慮更多的組合測試業(yè)務(wù)場景。
范圍不同:白盒測試更關(guān)注單個代碼段,函數(shù)的正確性,灰盒測試的對象已經(jīng)基本能完成一個完整的業(yè)務(wù)功能。
代碼是否獨立:灰盒測試的代碼比較獨立,不像白盒測試基本上和程序代碼需要做到一一對應(yīng)。
這部分同樣也是做簡單了解即可。對于入門的人來說灰盒和白盒都還為時過早。只需要知道:
黑盒測試不需要關(guān)注代碼和程序內(nèi)部結(jié)構(gòu),白盒和灰盒需要。
白盒關(guān)注單個代碼對,函數(shù)的正確性,需要和程序代碼做一一對應(yīng);而灰盒測試重點關(guān)注的還是整個的業(yè)務(wù)功能。
舉例
最后舉個簡單例子對黑盒測試、白盒測試、灰盒測試做對比說明。
寶寶玩兒機器人,玩兒的正高興,突然機器人不動了,怎么按也不動,于是: 寶貝:媽媽~我機器人不動了。 我:打開開關(guān)了嗎?自己反復(fù)打開開關(guān),依然沒反應(yīng),于是得出結(jié)論,機器人壞了,需要買個新的機器人了。 這一幕剛好被爸爸聽到, 爸爸:我來看看,于是拿著工具箱,拆開電池部分, 1.嗯,換個新電池,還是不能工作 2.拆開機器人的螺絲部分,檢查線路,線路連接都好著呢,沒有松動呀 最終爸爸得出:嗯,是壞了,我們買個新的吧. 此時爺爺回來了,說我來看看吧,爺爺拿著他的電筆,開始一根根線路的檢測,終于哦,找到了,這個線接觸不好了,換個線吧,換個線后機器人終于開動了。 |
大家很明了了吧,如上故事里:
作為媽媽的我就是一個黑盒測試:打開電源,查看是否能工作;只根據(jù)輸入輸出進行表象測試
爸爸呢是灰盒測試:打開機器人,查看內(nèi)部結(jié)構(gòu),但是只對線路連接部分進行了檢測
厲害的爺爺呢就是白盒測試了:打開機器人,查看每個線路連接、每個線路是否能正常工作。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。