【正文】
C1:月份在 M1中嗎? Y C2:月份在 M2中嗎? Y C3:月份在 M3中嗎? Y 規(guī)則條數(shù) 4 4 4 A1: A2: …… 規(guī)則總數(shù): 8個 不關心條目對完整決策的識別有微妙影響。1 軟件測試 2 功能性測試 邊界值測試 等價類測試 基于決策表的測試 功能性測試的回顧 3 4 決策表 原因 基本組成 決策表的生成 決策表的化簡 測試用例的設計 討論 4 產(chǎn)生的原因 四 決策表 決策表方法是功能性測試方法中最嚴格的。 29 測試用例的設計 NextDate問題 條件 C1:月份在 M1中嗎? Y Y Y Y Y Y N N Y Y N N C2:月份在 M2中嗎? Y Y N N Y Y Y Y Y N Y N C3:月份在 M3中嗎? Y N Y N Y N Y N Y Y Y Y 規(guī)則條數(shù) 1 1 1 1 1 1 1 1 1 1 1 1 A1: A2: …… 1 2 3 4 5 6 7 四 決策表 規(guī)則總數(shù): 8個 30 測試用例的設計 NextDate問題 條件 C1:月份在 M1中嗎? Y Y Y Y N N N N C2:月份在 M2中嗎? Y Y N N Y Y N N C3:月份在 M3中嗎? Y N Y N Y N Y N 規(guī)則條數(shù) 1 1 1 1 1 1 1 1 A1:不可能 A2: …… ?識別和(開發(fā))完備決策表的能力,使我們在解決冗余性和不一致性方面處于有利地位。 四 決策表 ?決策表是確定的。 若存在 不關心項 ,則規(guī)則中每出現(xiàn)一個不關心項,規(guī)則數(shù)乘一次 2。 26 測試用例的設計 改進的三角形問題的決策表 四 決策表 對于有限條目決策表: 若有 n個條件,須有 ( 2n)條規(guī)則。 33 四 決策表 測試用例的設計 NextDate問題 輸入條件的等價類 M1={月份 |每月 30天 } M2={月份 |每月 31天 } M3={月份 |此月為 2月 } D1={日期 |1=日期 =28} D2={日期 |日期 =29} D3={日期 |日期 =30} D4={日期 |日期 =31} Y1={年 |年是閏年 } Y2={年 |年不是閏年 } 條件 C1:月份在 M1中? Y Y … C2:月份在 M2中? Y Y … C3:月份在 M3中? Y Y … C4:日期在 D1中? Y Y Y Y Y … C5:日期在 D2中? Y Y Y Y Y … C6:日期在 D3中? Y Y Y Y … C7:日期在 D4中? Y Y Y Y … C8:年在 Y1中? … A1:不可能 A2:NextDate ? 關注不可能的組合 A1:月份中的天數(shù)太多 A2:不能出現(xiàn)在非閏年中 A3:計算 NextDate 規(guī)則總數(shù): 256個 34 測試用例的設計 NextDate問題 輸入條件的等價類 M1={月份 |每月 30天 } M2={月份 |每月 31天 } M3={月份 |此月為 2月 } D1={日期 |1=日期 =28} D2={日期 |日期 =29} D3={日期 |日期 =30} D4={日期 |日期 =31} Y1={年 |年是閏年 } Y2={年 |年是平年 } ? 關注閏年 ? 關注擴展條目決策表 日期增 1 日期復位 月份增 1 月份復位 年增 1 四 決策表 ? 擴展動作樁 Y1={年 |年是 1900年 } Y2={年 |… } Y3={年 |… } A1: 不可能 A2: 計算 NextDate Y1 = {年 : 年 = 1900} Y2 = {: 1812 ≤年 ≤ 2023 AND (年≠ 1900) AND (年 = 0 mod 4)} Y3 = {年 : (1812 ≤年 ≤ 2023 AND年 ≠ 0 mod 4)}