三級信息管理技術(shù)分章節(jié)考試要點:軟件工程(軟件測試之白盒測試的測試用例設(shè)計)
白盒測試的測試用例設(shè)計
白盒測試是根據(jù)程序的內(nèi)部邏輯來設(shè)計測試用例,常用的技術(shù)是邏輯覆蓋,即考察用測試數(shù)據(jù)運行被測程序時對程序邏輯的覆蓋程度。主要的覆蓋標(biāo)準(zhǔn)有6種:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋。
為了提高測試的效率,應(yīng)選擇最少的測試用例來滿足指定的覆蓋標(biāo)準(zhǔn)。
1.語句覆蓋
Examda提示: 語句覆蓋是指選擇足夠的測試用例,使得運行這些測試用例時,被測程序的每個語句至少執(zhí)行一次。
2.判定覆蓋
判定覆蓋又稱為分支覆蓋。它是指選擇足夠的測試用例,使得運行這些測試用例時,每個判定的所有可能結(jié)果至少出現(xiàn)一次(即判定的每個分支至少經(jīng)過一次)。
3.條件覆蓋
在軟件設(shè)計過程中,一個判定往往由多個條件組成,判定覆蓋僅考慮了判定的結(jié)果而沒有考慮每個條件的可能結(jié)果。
條件覆蓋是指選擇足夠的測試用例,使得運行這些測試用例時,判定中的每個條件的所有可能結(jié)果至少出現(xiàn)一次。
4.判定/條件覆蓋
判定/條件覆蓋是指選擇足夠的測試用例。使得運行這些測試用例時,判定中每個條件的所有可能結(jié)果至少出現(xiàn)一次,并且每個判定本身的所有可能結(jié)果至少出現(xiàn)一次。
顯然,滿足判定/條件覆蓋標(biāo)準(zhǔn)的測試用例一定也滿足判定覆蓋、條件覆蓋和語句覆蓋標(biāo)準(zhǔn)。在某些程序的測試中,如果選擇得好,判定覆蓋、條件覆蓋和判定/條件覆蓋可以使用相同的最少的測試用例。
5.條件組合覆蓋
在條件覆蓋中考慮了判定中每個條件的所有可能結(jié)果,但并未考慮條件的組合情況。條件組合覆蓋是指選擇足夠的測試用例,使得運行這些測試用例時,每個判定中條件結(jié)果的所有可能組合至少出現(xiàn)一次。
Examda提示: 由于條件組合覆蓋使每個判定中條件結(jié)果的所有可能組合都至少出現(xiàn)一次,因此判定本身的所有可能結(jié)果也一定至少出現(xiàn)一次,同時也使每個條件的所有可能結(jié)果至少出現(xiàn)一次。因此,條件組合覆蓋是上述5種覆蓋標(biāo)準(zhǔn)中最強的一種。然而,條件組合覆蓋還不能保證程序中所有可能的路徑都被覆蓋。
6.路徑覆蓋
路徑覆蓋是指選擇足夠的測試用例,使得運行這些測試用例時,程序的每條可能執(zhí)行到的路徑都至少經(jīng)過一次(如果程序中有環(huán)路,則要求每條環(huán)路至少經(jīng)過一次)。
路徑覆蓋實際上是考慮了程序中各種判定結(jié)果的所有可能組合,但它并未考慮判定中的條件結(jié)果的組合,因此它是一種比較強的覆蓋標(biāo)準(zhǔn),但并不能代替條件覆蓋和條件組合覆蓋。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |