大家好,我是十一。
今天我們講講測試的種類-黑白灰測試探赫。那測試到底怎么分類呢举畸?
直接上圖吧,我為大家精心準備了個大圖强重,要認真看哦~來之不易~
功能測試部分是按照重要程度以及先后順序做的排序。
乍一看,你的心情是不是這樣式兒的镊叁?
莫方哈,其實這張圖只是按照不同緯度給測試分類而已走触,并不是說明有這么多種測試晦譬,重疊部分還是比較多的,但是這張圖呢需要大家理解并牢記的互广,因為面試敛腌、工作都是常用的呢~接下來我們會用豐富的例子帶大家一一理解這張圖卧土。
如題:此篇呢我們講解黑盒、白盒像樊、灰盒測試(所謂黑白灰)的含義以及區(qū)別
其他的呢我們都放在后續(xù)篇章尤莺,用例子一一為大家串講。
好了進入正題生棍。
黑颤霎、白、灰三盒測試的含義及區(qū)別
根據(jù)上圖可以看出按照是否查看內(nèi)部代碼/結(jié)構(gòu)涂滴,我們將軟件測試分為黑盒測試友酱、白盒測試、灰盒測試柔纵。
黑盒測試(Black-box Testing)
黑盒測試又被稱為功能測試缔杉、數(shù)據(jù)驅(qū)動測試或基于需求規(guī)格說明書的測試,是通過使用整個軟件或某種軟件功能來嚴格地測試首量。測試中把被測的軟件當成一個黑盒子壮吩,不關(guān)心盒子的內(nèi)部結(jié)構(gòu)是什么,只關(guān)心軟件的輸入數(shù)據(jù)與輸出數(shù)據(jù)加缘。主要針對軟件界面和軟件功能進行測試鸭叙。
在黑盒測試中,軟件測試工程師只需要知道軟件要做什么-而無法看到盒子里的軟件是如何運行的拣宏。只要進行一些輸入沈贝,就能得到某種輸出結(jié)果。
來個例子:我們對QQ的登陸功能進行測試勋乾,那賬戶名輸入11宋下,密碼輸入11(此用戶不存在),如下圖所示
然后點擊“登陸”按鈕辑莫,那么QQ彈出如下窗口:
這就是一個典型的黑盒測試学歧,屬于黑盒測試中的業(yè)務(wù)邏輯測試,這個測試的輸入輸出如下:
輸入11/11(用戶名/密碼)各吨,
輸出:“你輸入的賬戶名或密碼不正確”等枝笨。
通過輸入輸出消息來和需求說明書做對照,看是否一致揭蜒,如果一致則通過横浑,如果不一致則失敗。(當然登陸的測試不是這么簡單屉更,我們這里只是以其中一個點舉例徙融,不要著急哦,我會慢慢帶你學(xué)習(xí)的~)
白盒測試(White-box Testing)
白盒測試又稱結(jié)構(gòu)測試瑰谜、透明盒測試欺冀、邏輯驅(qū)動測試或基于代碼的測試树绩。白盒指的打開盒子,去研究里面的源代碼和程序結(jié)果脚猾。
無 論是單元測試還是代碼檢查都不屬于初級測試工程師的工作范圍葱峡。這部分工作一般由軟件開發(fā)工程師來完成,由開發(fā)小組自行編寫單元測試龙助、代碼檢查以及兩者的審 查的工作∨檗龋現(xiàn)在也有些工具可以做簡單的審查,比如sonar提鸟、go等等军援。總之称勋,哪種情況都可以胸哥,只要適合自身情況即可。
在這里我們不做具體描述以及用例展示赡鲜。
灰盒測試(Gray-Box Testing)
灰盒測試空厌,是介于白盒測試與黑盒測試之間的一種測試,灰盒測試多用于集成測試階段银酬,不僅關(guān)注輸出嘲更、輸入的正確性,同時也關(guān)注程序內(nèi)部的情況揩瞪「畴灰盒測試不像白 盒那樣詳細、完整李破,但又比黑盒測試更關(guān)注程序的內(nèi)部邏輯宠哄,常常是通過一些表征性的現(xiàn)象、事件嗤攻、標志來判斷內(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)绅项,但是只對線路連接部分進行了檢測
厲害的爺爺呢就是白盒測試了:打開機器人,查看每個線路連接比肄、每個線路是否能正常工作快耿。
好了,今天的內(nèi)容到此結(jié)束薪前,你了解了嗎润努?歡迎私信或者留言與我討論~Bye~