朱立一
【摘要】軟件測(cè)試作為軟件質(zhì)量保證的重要手段備受關(guān)注。邏輯覆蓋測(cè)試技術(shù)成為了白盒測(cè)試的主要方法,本文詳細(xì)闡述了各種邏輯覆蓋方法,通過案例分析說明了各目的優(yōu)缺點(diǎn)。
【關(guān)鍵詞】白盒測(cè)試 邏輯覆蓋 測(cè)試原則
1.引言
隨著軟件產(chǎn)業(yè)的蓬勃發(fā)展,軟件質(zhì)量成為了計(jì)算機(jī)軟件備受關(guān)注的焦點(diǎn)。軟件測(cè)試成為了保證軟件質(zhì)量的重要手段,為軟件的正確性、健壯性、可維護(hù)性等提供了技術(shù)支持。軟件測(cè)試是利用測(cè)試工具,選擇測(cè)試方法,按照測(cè)試計(jì)計(jì)劃,通過執(zhí)行測(cè)試用例,對(duì)軟件功能和性能進(jìn)行檢測(cè)。軟件測(cè)試從軟件的透明性上分為白盒測(cè)試和黑盒測(cè)試。白盒測(cè)試,以程序內(nèi)部結(jié)構(gòu)為基礎(chǔ),在程序流程圖的框架下,檢測(cè)程序源代碼的執(zhí)行情況和正確性。[1]
白盒測(cè)試的主要方法有程序結(jié)構(gòu)分析、程序邏輯覆蓋、基本路徑測(cè)試等。其中邏輯覆蓋在白盒測(cè)試起到了重要作用。
2.邏輯覆蓋技術(shù)
根據(jù)覆蓋測(cè)試的目標(biāo)不同,邏輯覆蓋分為語句覆蓋、判定覆蓋、判定一條件覆蓋、條件組臺(tái)覆蓋和路徑覆蓋。
(1)語句覆蓋:設(shè)計(jì)多個(gè)測(cè)試用例,執(zhí)行被測(cè)程序,使得每一條執(zhí)行語句至少執(zhí)行一次。又稱為點(diǎn)覆蓋,只針對(duì)每一條語句,忽略了程序的邏輯性,其邏輯覆蓋性最低。
(2)判定覆蓋:設(shè)計(jì)多個(gè)測(cè)試用例,執(zhí)行被測(cè)程序,使得程序中每個(gè)判斷的真假都至少執(zhí)行一次。又稱為分支覆蓋,只保證每條分支都執(zhí)行了。邏輯覆蓋性強(qiáng)與語句覆蓋。
(3)條件覆蓋:設(shè)計(jì)多個(gè)測(cè)試用例,執(zhí)行被測(cè)程序,使得程序中判斷的組成條件的真假都至少執(zhí)行一次。只針對(duì)每個(gè)條件的結(jié)果的真假均出現(xiàn),其不一定能夠滿足判斷覆蓋的準(zhǔn)則。
(4)判定一條件覆蓋:設(shè)計(jì)多個(gè)測(cè)試用例,執(zhí)行被測(cè)程序,使得程序中判斷的每個(gè)條件的真假都至少執(zhí)行一次,每個(gè)判斷的真假也至少執(zhí)行一次,要求每個(gè)判斷的所有條件真假出現(xiàn)的組合均執(zhí)行一次。
(5)條件組合覆蓋:設(shè)計(jì)多個(gè)測(cè)試用例,使得被測(cè)程序中每個(gè)判斷的所有條件取值至少執(zhí)行一次。相當(dāng)于對(duì)所有條件取值進(jìn)行笛卡爾積,只針對(duì)每個(gè)判斷,不存在交叉組合。
(6)路徑覆蓋:構(gòu)造從源節(jié)點(diǎn)到匯節(jié)點(diǎn)的路徑集合,設(shè)計(jì)多個(gè)測(cè)試用例,使得每一條路徑至少執(zhí)行一次。[2]
3.案例分析
本文構(gòu)造程序數(shù)據(jù)流程圖,如圖I所示。有兩個(gè)判斷語句,判斷1:條件1&&條件2,判斷2:條件3?。l件4,通過設(shè)計(jì)測(cè)試案例來說明各種邏輯覆蓋的優(yōu)缺點(diǎn)。測(cè)試用例如圖2所示:
從上述測(cè)試用例中,可以看出語句覆蓋只從源代碼角度考慮每條語句的執(zhí)行,而判定覆蓋關(guān)注每個(gè)判斷結(jié)果的真假,而不去關(guān)心語句的執(zhí)行;條件覆蓋關(guān)注每個(gè)條件的真假情況是否都出現(xiàn),而忽視了判斷結(jié)果的真假以及語句是否執(zhí)行;判斷一條件覆蓋關(guān)心每個(gè)判定和條件的真假情況,但是忽視條件的所有組合;條件組臺(tái)覆蓋將所有的條件組合情況全部融合,但是隨著條件的增加,需要的測(cè)試用例數(shù)量會(huì)出現(xiàn)幾何增加。[3]
4.結(jié)語
白盒測(cè)試關(guān)心程序的內(nèi)部結(jié)構(gòu),強(qiáng)調(diào)程序的邏輯結(jié)構(gòu),邏輯覆蓋成為了白盒測(cè)試的重點(diǎn)。本文利用多個(gè)測(cè)試用例來說明各種邏輯覆蓋的特點(diǎn),為程序員進(jìn)行測(cè)試提供一定的指導(dǎo)價(jià)值。
參考文獻(xiàn):
[1]趙翀,孫寧.軟件測(cè)試技術(shù)一基于案例的測(cè)試[M],機(jī)械工業(yè)出版社,2011
[2]古樂,史九林.軟件測(cè)試技術(shù)概論[M],清華大學(xué)出版社,2004
[3]趙斌.軟件測(cè)試技術(shù)經(jīng)典教程[M],科學(xué)出版社,2007