更新時(shí)間:2022-12-15 來源:黑馬程序員 瀏覽量:
軟件測試培訓(xùn)中會涉及到判定覆蓋(Decision Coverage)這個(gè)概念,判定覆蓋又稱為分支覆蓋,其原則是設(shè)計(jì)足夠多的測試用例,在測試過程中保證每個(gè)判定至少有一次為真值,有一次為假值。判定覆蓋的作用是使真假分支均被執(zhí)行,雖然判定覆蓋比語句覆蓋測試能力強(qiáng),但仍然具有和語句覆蓋一樣的單一性。以圖3-1及其程序?yàn)槔O(shè)計(jì)判定覆蓋測試用例。如表3-1所示。
表3-1 判定覆蓋測試用例
由表3-1可以看出,這4個(gè)測試用例覆蓋了acd、abd、ace、abe4條路徑,使得每個(gè)判定語句的取值都滿足了各有一次“真”與“假”。相比于語句覆蓋,判定覆蓋的覆蓋范圍更廣泛。判定覆蓋雖然保證了每個(gè)判定至少有一次為真值,有一次為假值,但是卻沒有考慮到程序內(nèi)部的取值情況,例如,測試用例test4,沒有將x>2作為條件進(jìn)行判斷,僅僅判斷了z>0的條件。
判定覆蓋語句一般是由多個(gè)邏輯條件組成的,如果僅僅判斷測試程序執(zhí)行的最終結(jié)果而忽略每個(gè)條件的取值,必然會遺漏部分測試路徑,因此,判定覆蓋也屬于弱覆蓋。