黑盒測(cè)試和白盒測(cè)試
黑盒測(cè)試:已知產(chǎn)品的功能設(shè)計(jì)規(guī)格,可以進(jìn)行測(cè)試證明每個(gè)實(shí)現(xiàn)了的功能是否符合要求。
白盒測(cè)試:已知產(chǎn)品的內(nèi)部工作過程,可以進(jìn)行測(cè)試證明每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否經(jīng)過檢查。
1. 第一認(rèn)識(shí):
黑盒測(cè)試
測(cè)試特點(diǎn):測(cè)試功能;
測(cè)試依據(jù):需求規(guī)格說(shuō)明書
方法舉例:等價(jià)類劃分、邊界值測(cè)試
優(yōu)點(diǎn):能站在用戶的立場(chǎng)上進(jìn)行測(cè)試
缺點(diǎn):不能測(cè)試程序內(nèi)部特定部位,如程序有誤,則無(wú)法發(fā)現(xiàn)。
白盒測(cè)試
測(cè)試特點(diǎn):測(cè)試程序接口與結(jié)構(gòu)
測(cè)試依據(jù):軟件程序
方法舉例:邏輯覆蓋
優(yōu)點(diǎn):對(duì)程序內(nèi)部特定部位進(jìn)行覆蓋測(cè)試。
缺點(diǎn):無(wú)法檢驗(yàn)程序外部特性。
2.第二認(rèn)識(shí):
黑盒測(cè)試把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,針對(duì)“軟件界面”和”軟件功能“進(jìn)行測(cè)試,只檢查功能是否符合需求規(guī)格說(shuō)明書能正常使用。因此黑盒測(cè)試又叫功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。
白盒測(cè)試是對(duì)軟件的過程性細(xì)節(jié)做細(xì)致的檢查。這種方法是把測(cè)試對(duì)象看作一個(gè)打開的盒子,他允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱為”結(jié)構(gòu)測(cè)試“或”邏輯驅(qū)動(dòng)測(cè)試“。白盒測(cè)試是按照程序內(nèi)部的結(jié)構(gòu)來(lái)測(cè)試程序,通過測(cè)試檢驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按照設(shè)計(jì)規(guī)格說(shuō)明書的要求正常進(jìn)行,檢驗(yàn)程序中的每條通道是否都按照規(guī)定正常工作。
3.第三認(rèn)識(shí):
黑盒測(cè)試主要是為了發(fā)現(xiàn)以下錯(cuò)誤:
。1)是否有不正確或者遺漏了的功能;
。2)在接口上,輸入能否正確的接受?能否輸出正確的結(jié)果?
(3)是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)庫(kù)文件)訪問錯(cuò)誤?
。4)性能上是否能夠滿足要求?
。5)是否有初始化或終止性錯(cuò)誤?
黑盒的測(cè)試用例技術(shù)設(shè)計(jì)有三種:邊界值分析、等價(jià)類劃分、錯(cuò)誤推測(cè)法。
白盒測(cè)試主要是想對(duì)程序模塊進(jìn)行以下檢查:
(1)對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一遍;
(2)對(duì)所有的邏輯判定,取”真“與”假“的兩種情況都能至少測(cè)一遍;
。3)在循環(huán)的邊界和運(yùn)行的界限內(nèi)執(zhí)行循環(huán)體;
。4)測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等;
。5)靜態(tài)白盒測(cè)試 :即代碼審查,正式審查和檢驗(yàn)設(shè)計(jì)和程序代碼;
。6)動(dòng)態(tài)白盒測(cè)試 利用查看代碼功能和實(shí)現(xiàn)方式得到的信息來(lái)設(shè)計(jì)和執(zhí)行測(cè)試,也叫結(jié)構(gòu)測(cè)試;
白盒的測(cè)試用例技術(shù)包括:邏輯覆蓋和基本路徑測(cè)試。
邏輯覆蓋:是以程序內(nèi)在邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試用例設(shè)計(jì)技術(shù),這一方法要求測(cè)試人員對(duì)程序的邏輯結(jié)構(gòu)有清楚的了解。
基本路徑測(cè)試:在程序控制流程圖的基礎(chǔ)