淡海英
(陜西國(guó)防工業(yè)職業(yè)技術(shù)學(xué)院,陜西 西安 710300)
白盒測(cè)試是軟件測(cè)試的一種。白盒測(cè)試把測(cè)試對(duì)象看做一個(gè)透明的盒子,測(cè)試人員必須了解程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程,相比于功能測(cè)試的黑盒測(cè)試而言,白盒測(cè)試是結(jié)構(gòu)測(cè)試,被測(cè)對(duì)象是源代碼,以程序的內(nèi)部邏輯為基礎(chǔ)設(shè)計(jì)測(cè)試用例。但是對(duì)于程序本身的邏輯錯(cuò)誤白盒測(cè)試卻無(wú)能為力,尤其是需求規(guī)格說(shuō)明書(shū)里要求但未實(shí)現(xiàn)的部分白盒測(cè)試更是無(wú)法進(jìn)行測(cè)試。
白盒測(cè)試的方法有三種,一是程序結(jié)構(gòu)分析,根據(jù)源代碼可以首先繪制程序的流程圖,然后根據(jù)流程圖分析程序的結(jié)構(gòu)。二是邏輯覆蓋方測(cè)試,根據(jù)程序的內(nèi)部結(jié)構(gòu),對(duì)所有的路徑進(jìn)行測(cè)試,是一種窮舉路徑的測(cè)試方法。三是基本路徑測(cè)試,根據(jù)程序的邏輯判斷,分析程序中的路徑,再進(jìn)行用例的設(shè)計(jì)。白盒測(cè)試是軟件測(cè)試中比較重要的一種測(cè)試方法,可以分為四個(gè)步驟實(shí)施,第一步,撰寫(xiě)測(cè)試計(jì)劃。根據(jù)需求說(shuō)明書(shū),制定軟件測(cè)試的進(jìn)度,確定人員、范圍、技術(shù)、風(fēng)險(xiǎn)等,形成測(cè)試計(jì)劃或測(cè)試方案。第二步,撰寫(xiě)測(cè)試用例。根據(jù)源代碼及其分析,按照一定規(guī)范化的方法進(jìn)行軟件結(jié)構(gòu)劃分,并進(jìn)行測(cè)試用例的設(shè)計(jì),形成測(cè)試用例表。第三步,執(zhí)行測(cè)試用例。按照之前寫(xiě)好的測(cè)試用例,進(jìn)行系統(tǒng)測(cè)試的執(zhí)行,并且記錄測(cè)試結(jié)果,形成缺陷表和缺陷報(bào)告。第四步,撰寫(xiě)測(cè)試總結(jié)。將前期的測(cè)試工作做總結(jié),分析用例的數(shù)量、發(fā)現(xiàn)的高、中、低缺陷數(shù),評(píng)價(jià)本系統(tǒng),形成完整的總結(jié)報(bào)告。
白盒測(cè)試總體上分為兩大類(lèi),分別是靜態(tài)方法和動(dòng)態(tài)方法。靜態(tài)分析是指按一定的步驟直接檢查源代碼的方法,包括代碼的分析、代碼審查、代碼走查,最主要的特點(diǎn)是不實(shí)際運(yùn)行程序。動(dòng)態(tài)分析是指按一定的步驟生成測(cè)試用例并運(yùn)行程序來(lái)發(fā)現(xiàn)錯(cuò)誤,包括邏輯覆蓋測(cè)試。邏輯覆蓋測(cè)試是程序內(nèi)在邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試。包括語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋六種測(cè)試。語(yǔ)句覆蓋是指設(shè)計(jì)足夠多的測(cè)試用例,使得所有的語(yǔ)句都被至少執(zhí)行一次。判定覆蓋是設(shè)計(jì)足夠多的測(cè)試用例使程序中的每個(gè)判定為真和為假的值都執(zhí)行一次,判定覆蓋的覆蓋標(biāo)準(zhǔn)比語(yǔ)句覆蓋稍微強(qiáng)一些。判定覆蓋不僅滿足了判定覆蓋,還滿足了語(yǔ)句覆蓋,所以它比語(yǔ)句覆蓋率高。但它的缺點(diǎn)仍然是無(wú)法發(fā)現(xiàn)程序段中存在的邏輯性判定錯(cuò)誤,判定/條件覆蓋是指設(shè)計(jì)足夠多的測(cè)試用例,使得判定中的每個(gè)條件為“真值”和“假值”至少執(zhí)行一次,也使得每個(gè)判定為“真值”和“假值”時(shí)至少執(zhí)行一次。條件組合覆蓋是指設(shè)計(jì)足夠多的測(cè)試用例,使得每個(gè)判定中條件的各種可能組合都至少執(zhí)行一次。路徑覆蓋是指設(shè)計(jì)足夠多的測(cè)試用例,使程序的每條可能路徑都至少執(zhí)行一次,如果程序圖中有循環(huán),則要求每個(gè)循環(huán)至少執(zhí)行一次。路徑覆蓋是覆蓋度最高的,可以覆蓋程序中所有可能的路徑。
白盒測(cè)試是軟件測(cè)試中常用的測(cè)試方法,需要測(cè)試人員熟悉程序的內(nèi)部和代碼,通過(guò)掌握六種不同的測(cè)試方法對(duì)測(cè)試對(duì)象進(jìn)行測(cè)試,從而發(fā)現(xiàn)程序中的缺陷,六種覆蓋方法各有利弊,實(shí)際測(cè)試時(shí)可以采用多種方法對(duì)程序進(jìn)行測(cè)試。