更新時間:2022-06-09 來源:黑馬程序員 瀏覽量:
今天的軟件測試培訓課程,我們講解一下判定-條件覆蓋。判定-條件覆蓋(Condition/DecisionCoverage)要求設(shè)計足夠多的測試用例,使得判定語句中所有條件的可能取值至少出現(xiàn)一次,同時,所有判定語句的可能結(jié)果也至少出現(xiàn)一次。例如,對于判定語句IF(a>1 AND c<1),該判定語句有a>1、c<1兩個條件,則在設(shè)計測試用例時,要保證a>1、c<1兩個條件取“真”“假”值至少一次,同時,判定語句if(a>1 AND c<1)取“真”“假”值也至少出現(xiàn)一次。這就是判定-條件覆蓋,它彌補了判定覆蓋和條件覆蓋的不足之處。
根據(jù)判定-條件覆蓋原則,以圖3-1及其程序為例設(shè)計判定-條件覆蓋測試用例,如表3-4所示。
表3-4判定-條件覆蓋測試用例
在表3-4中,條件1是指判定語句“IF x>0 AND y<0”,條件2是指判定語句“IF x>2 ORz>0”,條件判定的值0表示“假”,1表示“真”。表3-4中的3個測試用例滿足了所有條件可能取值至少出現(xiàn)一次,以及所有判定語句可能結(jié)果也至少出現(xiàn)一次的要求。
相比于條件覆蓋、判定覆蓋,判定-條件覆蓋彌補了兩者的不足之處,但是由于判定-條件覆蓋沒有考慮判定語句與條件判斷的組合情況,其覆蓋范圍并沒有比條件覆蓋更全面,判定-條件覆蓋也沒有覆蓋acd路徑,因此判定-條件覆蓋仍舊存在遺漏測試的情況。