扣丁學(xué)堂軟件測(cè)試視頻教程之白盒測(cè)試方法與黑盒測(cè)試方法的區(qū)別
2018-01-26 14:24:50
1875瀏覽
軟件測(cè)試方法一般分為兩種:白盒測(cè)試與黑盒測(cè)試。其中,白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或基于程序本身的測(cè)試,著重于程序的內(nèi)部結(jié)構(gòu)及算法,通常不關(guān)心功能與性能指標(biāo)。黑盒測(cè)試又被稱為功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試或基于規(guī)格說(shuō)明的測(cè)試,實(shí)際上是站在最終用戶的立場(chǎng)上,檢驗(yàn)輸入輸出信息及系統(tǒng)性能指標(biāo)是否符合規(guī)格說(shuō)明書中有關(guān)功能需求及性能需求的規(guī)定。
白盒測(cè)試方法和黑盒測(cè)試方法
黑盒測(cè)試方法,不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性,而是從用戶觀點(diǎn)出發(fā),針對(duì)程序接口和用戶界面進(jìn)行測(cè)試,根據(jù)產(chǎn)品應(yīng)該實(shí)現(xiàn)的實(shí)際功能和已經(jīng)定義好的產(chǎn)品規(guī)格,來(lái)驗(yàn)證產(chǎn)品所應(yīng)該具有的功能是否實(shí)現(xiàn),是否滿足用戶的要求。
所以,黑盒測(cè)試方法技術(shù)相對(duì)要求低,方法簡(jiǎn)單有效,可以整體測(cè)試系統(tǒng)的行為,可以從頭到尾(end-to-end)進(jìn)行數(shù)據(jù)完整性測(cè)試。黑盒測(cè)試方法適合系統(tǒng)的功能測(cè)試、易用性測(cè)試,也適合和用戶共同進(jìn)行驗(yàn)收測(cè)試、軟件確認(rèn)測(cè)試。黑盒測(cè)試方法不適合單元測(cè)試、集成測(cè)試,而且測(cè)試結(jié)果的覆蓋度不容易度量,其測(cè)試的潛在風(fēng)險(xiǎn)比較高。
由于白盒測(cè)試方法,已知產(chǎn)品的內(nèi)部工作過(guò)程,針對(duì)性很強(qiáng),可以對(duì)程序每一行語(yǔ)句、每一個(gè)條件或分支進(jìn)行測(cè)試,測(cè)試效率比較高,而且可以清楚已測(cè)試的覆蓋程度。如果時(shí)間足夠多,可以保證所有的語(yǔ)句和條件得到測(cè)試,測(cè)試的覆蓋程度達(dá)到很高。白盒測(cè)試方法所以適合單元測(cè)試、集成測(cè)試,而不適合系統(tǒng)測(cè)試。白盒測(cè)試方法準(zhǔn)備的時(shí)間很長(zhǎng),如果要覆蓋全部程序語(yǔ)句、分支的測(cè)試,一般花費(fèi)比編程更長(zhǎng)的時(shí)間。
白盒測(cè)試方法所要求的技術(shù)也較高,相應(yīng)的測(cè)試成本要大。對(duì)于一個(gè)應(yīng)用的系統(tǒng),程序的路徑數(shù)可能是一個(gè)天文數(shù)字,即使借助一些測(cè)試工具,白盒測(cè)試法也不可能進(jìn)行窮舉測(cè)試,企圖遍歷所有的路徑往往是做不到的。即使,窮舉路徑測(cè)試,也不能查出程序違反了設(shè)計(jì)規(guī)范的地方,不能發(fā)現(xiàn)程序中已實(shí)現(xiàn)但不是用戶所需要的功能,可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯(cuò)誤或用戶操作行為的缺陷。所以白盒測(cè)試方法也存在一定的局限性。
白盒與黑盒測(cè)試什么區(qū)別
1、黑盒測(cè)試
黑盒測(cè)試也稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,它是在已知產(chǎn)品所應(yīng)具有的功能,通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用,在測(cè)試時(shí),把程序看作一個(gè)不能打開的黑盆子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測(cè)試者在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說(shuō)明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)鋸而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫(kù)或文件)的完整性。黑盒測(cè)試方法主要有等價(jià)類劃分、邊值分析、因—果圖、錯(cuò)誤推測(cè)等,主要用于軟件確認(rèn)測(cè)試?!昂诤小狈ㄖ塾诔绦蛲獠拷Y(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試?!昂诤小狈ㄊ歉F舉輸入測(cè)試,只有把所有可能的輸入都作為測(cè)試情況使用,才能以這種方法查出程序中所有的錯(cuò)誤。實(shí)際上測(cè)試情況有無(wú)窮多個(gè),人們不僅要測(cè)試所有合法的輸入,而且還要對(duì)那些不合法但是可能的輸入進(jìn)行測(cè)試。
2、白盒測(cè)試
白盒測(cè)試也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,它是知道產(chǎn)品內(nèi)部工作過(guò)程,可通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,檢驗(yàn)程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測(cè)試的主要方法有邏輯驅(qū)動(dòng)、基路測(cè)試等,主要用于軟件驗(yàn)證。
“白盒”法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對(duì)所有邏輯路徑進(jìn)行測(cè)試?!鞍缀小狈ㄊ歉F舉路徑測(cè)試。在使用這一方案時(shí),測(cè)試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測(cè)試數(shù)據(jù)。貫穿程序的獨(dú)立路徑數(shù)是天文數(shù)字。但即使每條路徑都測(cè)試了仍然可能有錯(cuò)誤。第一,窮舉路徑測(cè)試決不能查出程序違反了設(shè)計(jì)規(guī)范,即程序本身是個(gè)錯(cuò)誤的程序。第二,窮舉路徑測(cè)試不可能查出程序中因遺漏路徑而出錯(cuò)。第三,窮舉路徑測(cè)試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯(cuò)誤。
軟件人員使用白盒測(cè)試方法,主要想對(duì)程序模塊進(jìn)行如下的檢查:
–對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一次;
–對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都至少測(cè)試一次;
–在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;
–測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等。
具體包含的邏輯覆蓋有:–語(yǔ)句覆蓋–判定覆蓋–條件覆蓋–判定-條件覆蓋–條件組合覆蓋–路徑覆蓋。
1.白盒測(cè)試技術(shù)(WhiteBoxTesting):深入到代碼一級(jí)的測(cè)試,使用這種技術(shù)發(fā)現(xiàn)問(wèn)題最早,效果也是最好的。該技術(shù)主要的特征是測(cè)試對(duì)象進(jìn)入了代碼內(nèi)部,根據(jù)開發(fā)人員對(duì)代碼和對(duì)程序的熟悉程度,對(duì)有需要的部分進(jìn)行在軟件編碼階段,開發(fā)人員根據(jù)自己對(duì)代碼的理解和接觸所進(jìn)行的軟件測(cè)試叫做白盒測(cè)試。這一階段測(cè)試以軟件開發(fā)人員為主,在JAVA平臺(tái)使用Xunit系列工具進(jìn)行測(cè)試,Xunit測(cè)試工具是類一級(jí)的測(cè)試工具對(duì)每一個(gè)類和該類的方法進(jìn)行測(cè)試。
2.黑盒測(cè)試技術(shù)(BlackBoxTesting):黑盒測(cè)試的內(nèi)容主要有以下幾個(gè)方面,但是主要還是功能部分。主要是覆蓋全部的功能,可以結(jié)合兼容,性能測(cè)試等方面進(jìn)行,根據(jù)軟件需求,設(shè)計(jì)文檔,模擬客戶場(chǎng)景隨系統(tǒng)進(jìn)行實(shí)際的測(cè)試,這種測(cè)試技術(shù)是使用最多的測(cè)試技術(shù)涵蓋了測(cè)試的方方面面,可以考慮以下方面:
正確性(Correctness):計(jì)算結(jié)果,命名等方面。
可用性(Usability):是否可以滿足軟件的需求說(shuō)明。
邊界條件(BoundaryCondition):輸入部分的邊界值,就是使用一般書中說(shuō)的等價(jià)類劃分,試試最大最小和非法數(shù)據(jù)等等。
性能(Performance):正常使用的時(shí)間內(nèi)系統(tǒng)完成一個(gè)任務(wù)需要的時(shí)間,多人同時(shí)使用的時(shí)候響應(yīng)時(shí)間在可以接受范圍內(nèi)。J2EE技術(shù)實(shí)現(xiàn)的系統(tǒng)在性能方面更是需要照顧的,一般原則是3秒以下接受,3-5秒可以接受,5秒以上就影響易用性了。如果在測(cè)試過(guò)程中發(fā)現(xiàn)性能問(wèn)題,修復(fù)起來(lái)是非常艱難的,因?yàn)檫@常常意味著程序的算法不好,結(jié)構(gòu)不好,或者設(shè)計(jì)有問(wèn)題。因此在產(chǎn)品開發(fā)的開始階段,就要考慮到軟件的性能問(wèn)題
壓力測(cè)試(Stress):多用戶情況可以考慮使用壓力測(cè)試工具,建議將壓力和性能測(cè)試結(jié)合起來(lái)進(jìn)行。如果有負(fù)載平衡的話還要在服務(wù)器端打開監(jiān)測(cè)工具,查看服務(wù)器CPU使用率,內(nèi)存占用情況,如果有必要可以模擬大量數(shù)據(jù)輸入,對(duì)硬盤的影響等等信息。如果有必要的話必須進(jìn)行性能優(yōu)化(軟硬件都可以)。這里的壓力測(cè)試針對(duì)的是某幾項(xiàng)功能。
錯(cuò)誤恢復(fù)(ErrorRecovery):錯(cuò)誤處理,頁(yè)面數(shù)據(jù)驗(yàn)證,包括突然間斷電,輸入臟數(shù)據(jù)等。
安全性測(cè)試(Security):這個(gè)領(lǐng)域正在研究中,防火墻、補(bǔ)丁包、殺毒軟件等的就不必說(shuō)了,不過(guò)可以考慮。破壞性測(cè)試時(shí)任意看了一些資料后得知,這里面設(shè)計(jì)到的知識(shí)內(nèi)容可以寫本書了,不是一兩句可以說(shuō)清的,特別是一些商務(wù)網(wǎng)站,或者跟錢有關(guān),或者和公司秘密有關(guān)的web更是需要這方面的測(cè)試,在外國(guó)有一種專門干這一行的人叫安全顧問(wèn),可以審核代碼,提出安全建議,出現(xiàn)緊急事件時(shí)的處理辦法等,在國(guó)內(nèi)沒(méi)有聽說(shuō)哪里有專門搞安全技術(shù)測(cè)試的內(nèi)容。
最后想要了解更多關(guān)于軟件測(cè)試培訓(xùn)發(fā)展前景趨勢(shì),請(qǐng)關(guān)注扣丁學(xué)堂官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平臺(tái)為您提供權(quán)威的軟件測(cè)試視頻教程系統(tǒng),通過(guò)千鋒扣丁學(xué)堂金牌講師在線錄制的軟件測(cè)試在線視頻教程,讓你快速掌握軟件測(cè)試從入門到精通開發(fā)實(shí)戰(zhàn)技能。
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】
查看更多關(guān)于“軟件測(cè)試技術(shù)資訊”的相關(guān)文章>>
標(biāo)簽:
軟件測(cè)試培訓(xùn)
軟件測(cè)試工程師
軟件測(cè)試在線視頻
軟件測(cè)試視頻教程
軟件測(cè)試教程
白盒測(cè)試
黑盒測(cè)試