(1)決策表元素
在上圖給出的決策表中,如果 C1、C2 和 C3 都為真,則采取行動 A1 和 A2 。如果 C1 和 C2 都為真而 C3 為假,則采取行動 A1 和 A3 。
在 C1 為真 C2 為假條件下,規則中的 C3 條目叫做“不關心”條目。不關心條目由兩種主要解釋:條件無關或條件不適用。
如果有二叉條件( 真 / 假,是 / 否,0 / 1 ),則決策表的條件部分類似於真值表,n 個條件的組合有 2 ^ n 。( 兩個二叉條件的組合:2 ^ 2 => 00、01、10、11 )
所有條件都是二叉條件的決策表叫做有限條目決策表。如果條件可以有多個值,則對應的決策表叫做擴展條件。
決策表結構能夠保證我們考慮所有可能的條件值組合。如果使用決策表設計測試用例,那么決策表的這種完備性質能夠保證一種完備的測試。
為了使用決策表標識測試用例,我們把條件解釋為輸入,把行動解釋為輸出。
(2)三角形問題的決策表
將條件 C1 擴展為三角形特性的三個不等式。則改進后的三角形問題表如下:
(3)NextDate 問題的決策表
選擇 NextDate 函數,因為它可以說明輸入定義域中的依賴性問題。而決策表可以突出這種依賴關系。
如果變量確實是獨立的,則使用類的笛卡爾積是有意義的。如果變量之間在輸入定義域中存在邏輯依賴關系,則這些依賴關系在笛卡爾積中就會丟失。
決策表通過使用“不可能行動”概念表示條件的不可能組合,使我們能強調這種依賴關系。( 注意“不可能”與“非法輸入”之間的區別 )
1)第一次嘗試:有限條目決策表
首先,可以從等價類集合開始。
如果我們希望突出不可能的組合,則可以建立條件和行動的有限條目決策表。在這個決策表中會有 256 條( 2 ^ 8 ,Y1 和 Y2 寫作一條 )規則,其中很多是不可能的。
考慮到月份變量相互排斥,可以寫作:
對於以上的決策表( 有限條目決策表 ),如果有 n 個條件,則有 2 ^ n 條規則。( 類似於真值表 00、01、10、11 )
沒有不關心條目的規則則統計為 1 條規則;規則中每出現一個不關心條目,它實際包含的規則數乘 2 。( 一個不關心條目可能是 T / F ,因此一個規則中每出現一個不關心條目,就要乘以 2 )
對於 3 個條件,我們得到的規則條數就為 12 條,但實際上,有 3 個條件,則應該有 8 條規則( 2×2×2 )。為了找到問題所在,我們擴展了含有不關心條目的規則:
有點懵,所以說用有限條目決策法的定義來套 NextDate 問題是行不通的。
2)第二次嘗試:擴展條目決策法
在構建擴展條目決策表時,必須保證等價類構成輸入定義域的真划分。如果規則條目之間存在“重疊”,則會存在冗余情況,使得多個規則都能夠滿足。
3)第三次嘗試
(4)指導方針