先談及、概括一下白盒測(cè)試。
白盒測(cè)試,所關(guān)注的是:測(cè)試用例執(zhí)行的程度或覆蓋程序邏輯結(jié)構(gòu)(源代碼)的程度。因此,也可以認(rèn)為是邏輯覆蓋測(cè)試。具體方法有五個(gè),按其邏輯覆蓋的從弱到強(qiáng)依次列出:
⊙語句覆蓋(面): 將程序中的每條語句至少執(zhí)行一次,但實(shí)現(xiàn)不太可能,該準(zhǔn)則有很大的不足,以至于它通常沒有什么用處⊙判定/分支覆蓋(線): 必須編寫足夠的測(cè)試用例,使得每一個(gè)判斷都至少有一個(gè)為真和為假的輸出結(jié)果。即:每條分支路徑都必須至少遍歷一次。換句話說:所有判斷的每個(gè)可能結(jié)果都至少執(zhí)行一次,以及將程序或子程序的每個(gè)入口點(diǎn)都至少執(zhí)行一次。需要指出的是:該準(zhǔn)則滿足語言覆蓋準(zhǔn)則。
⊙條件覆蓋(點(diǎn)): 編寫足夠的測(cè)試用例以確保將一個(gè)判斷中的每個(gè)條件的所有可能的結(jié)果至少執(zhí)行一次。
⊙判定/條件覆蓋(點(diǎn)線結(jié)合): 設(shè)計(jì)出足夠的測(cè)試用例,將一個(gè)判斷中的每個(gè)條件的所有可能結(jié)果至少執(zhí)行一次,將每個(gè)判斷的所有可能結(jié)果至少執(zhí)行一次,將每個(gè)入口點(diǎn)都至少調(diào)用一次。需明確一點(diǎn),該準(zhǔn)則有一個(gè)極大的缺點(diǎn):盡管看上去所有條件的所有結(jié)果似乎都執(zhí)行到了,但由于某些特定的條件會(huì)屏蔽掉其他的條件,通常并不能全部都執(zhí)行到。例如:該準(zhǔn)則并不一定會(huì)發(fā)現(xiàn)邏輯表達(dá)式中的錯(cuò)誤(與、或)。
⊙多重條件覆蓋(點(diǎn)線組合):編寫足夠多的測(cè)試用例,將每個(gè)判定中的所有可能的條件結(jié)果的組合,以及所有的入口點(diǎn)都至少執(zhí)行一次。需要說明的是,滿足多重條件覆蓋準(zhǔn)則的測(cè)試用例集,同樣滿足判定覆蓋準(zhǔn)則、條件覆蓋準(zhǔn)則以及判定/條件覆蓋準(zhǔn)則。需明確的是:在存在循環(huán)的情況下,多重條件覆蓋準(zhǔn)則所需要的測(cè)試用例的數(shù)量通常會(huì)遠(yuǎn)遠(yuǎn)小于其路徑的數(shù)量。
文尾,作者小結(jié)了一下。
⊙包含每個(gè)判斷只存在一種條件的程序,最簡(jiǎn)單的測(cè)試準(zhǔn)則就是:設(shè)計(jì)出足夠數(shù)量的測(cè)試用例,將每個(gè)判斷的所有結(jié)果都至少執(zhí)行一次;將所有的程序入口都至少調(diào)用一次,以確保全部的語句都至少執(zhí)行一次。
⊙包含多重條件判斷的程序,最簡(jiǎn)單的測(cè)試準(zhǔn)則是:設(shè)計(jì)出足夠數(shù)量的測(cè)試用例,將每個(gè)判斷的所有可能的條件結(jié)果的組合,以及所有的入口點(diǎn)都至少執(zhí)行一次。
白盒測(cè)試,所關(guān)注的是:測(cè)試用例執(zhí)行的程度或覆蓋程序邏輯結(jié)構(gòu)(源代碼)的程度。因此,也可以認(rèn)為是邏輯覆蓋測(cè)試。具體方法有五個(gè),按其邏輯覆蓋的從弱到強(qiáng)依次列出:
⊙語句覆蓋(面): 將程序中的每條語句至少執(zhí)行一次,但實(shí)現(xiàn)不太可能,該準(zhǔn)則有很大的不足,以至于它通常沒有什么用處⊙判定/分支覆蓋(線): 必須編寫足夠的測(cè)試用例,使得每一個(gè)判斷都至少有一個(gè)為真和為假的輸出結(jié)果。即:每條分支路徑都必須至少遍歷一次。換句話說:所有判斷的每個(gè)可能結(jié)果都至少執(zhí)行一次,以及將程序或子程序的每個(gè)入口點(diǎn)都至少執(zhí)行一次。需要指出的是:該準(zhǔn)則滿足語言覆蓋準(zhǔn)則。
⊙條件覆蓋(點(diǎn)): 編寫足夠的測(cè)試用例以確保將一個(gè)判斷中的每個(gè)條件的所有可能的結(jié)果至少執(zhí)行一次。
⊙判定/條件覆蓋(點(diǎn)線結(jié)合): 設(shè)計(jì)出足夠的測(cè)試用例,將一個(gè)判斷中的每個(gè)條件的所有可能結(jié)果至少執(zhí)行一次,將每個(gè)判斷的所有可能結(jié)果至少執(zhí)行一次,將每個(gè)入口點(diǎn)都至少調(diào)用一次。需明確一點(diǎn),該準(zhǔn)則有一個(gè)極大的缺點(diǎn):盡管看上去所有條件的所有結(jié)果似乎都執(zhí)行到了,但由于某些特定的條件會(huì)屏蔽掉其他的條件,通常并不能全部都執(zhí)行到。例如:該準(zhǔn)則并不一定會(huì)發(fā)現(xiàn)邏輯表達(dá)式中的錯(cuò)誤(與、或)。
⊙多重條件覆蓋(點(diǎn)線組合):編寫足夠多的測(cè)試用例,將每個(gè)判定中的所有可能的條件結(jié)果的組合,以及所有的入口點(diǎn)都至少執(zhí)行一次。需要說明的是,滿足多重條件覆蓋準(zhǔn)則的測(cè)試用例集,同樣滿足判定覆蓋準(zhǔn)則、條件覆蓋準(zhǔn)則以及判定/條件覆蓋準(zhǔn)則。需明確的是:在存在循環(huán)的情況下,多重條件覆蓋準(zhǔn)則所需要的測(cè)試用例的數(shù)量通常會(huì)遠(yuǎn)遠(yuǎn)小于其路徑的數(shù)量。
文尾,作者小結(jié)了一下。
⊙包含每個(gè)判斷只存在一種條件的程序,最簡(jiǎn)單的測(cè)試準(zhǔn)則就是:設(shè)計(jì)出足夠數(shù)量的測(cè)試用例,將每個(gè)判斷的所有結(jié)果都至少執(zhí)行一次;將所有的程序入口都至少調(diào)用一次,以確保全部的語句都至少執(zhí)行一次。
⊙包含多重條件判斷的程序,最簡(jiǎn)單的測(cè)試準(zhǔn)則是:設(shè)計(jì)出足夠數(shù)量的測(cè)試用例,將每個(gè)判斷的所有可能的條件結(jié)果的組合,以及所有的入口點(diǎn)都至少執(zhí)行一次。