白盒測(cè)試,是另外一種軟件測(cè)試的主要方法,又稱為結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或者給予程序本身的測(cè)試,它著重于程序的內(nèi)部結(jié)構(gòu)及算法,通常不關(guān)心功能與性能指標(biāo)。軟件的白盒測(cè)試是對(duì)軟件的過程性細(xì)節(jié)做細(xì)致的檢查。這種方法是把測(cè)試對(duì)象看做一個(gè)打開的盒子,它允許白盒測(cè)試人員利用程序內(nèi)部的邏輯結(jié)夠及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)是否與預(yù)期的狀態(tài)一致。白盒測(cè)試是一種基于對(duì)源代碼中得控制結(jié)構(gòu)、處理過程等進(jìn)行分析,檢查程序內(nèi)部處理是否正確、包括異常處理、語句結(jié)構(gòu)、分析、循環(huán)結(jié)構(gòu)等。很多控制軟件,還要考慮有無沉余的代碼,因?yàn)槌绦蜻\(yùn)行時(shí),可能進(jìn)入這些代碼而無法再進(jìn)行正常的執(zhí)行(如進(jìn)入了死循環(huán)狀態(tài),程序永遠(yuǎn)無法終止)。這種測(cè)試要求測(cè)試人員對(duì)程序的理解能力和編碼能力很高,需要了解程序的架構(gòu),具體需求,以及一些編寫程序的技巧,能夠檢查一些程序規(guī)范,指針、變量、數(shù)組越界等問題,使得問題在前期就暴露出來。
白盒測(cè)試的主要方法包括:
語句判斷:使得程序中每個(gè)語句至少都能被執(zhí)行一次。
判斷覆蓋:使得程序中每個(gè)判斷至少為真或假各一次。
條件覆蓋:使得判斷中得每個(gè)條件獲得各種可能的結(jié)果。
判斷/條件覆蓋:同時(shí)滿足判斷覆蓋和條件覆蓋。
條件組合覆蓋:使得每個(gè)判斷中條件的各種可能組合都至少出現(xiàn)一次。