决策到决策路径

決策到決策路徑（）也稱為DD路徑，是指用控制流圖表示程式時，一條不包含任何決策節點的路徑，換句話說，決策到決策路徑是介於二個決策點中的路徑。近來此概念中，也將決策節點一併算在決策到決策路徑中。

定義
在Huang 1975年的論文中 
The definition given there is citing: "Fortran automated verification system Level 1 — user's guide, Program Validation Project, General Research Corp., October 1974."，是用流程圖中的道路（path）來說明決策到決策路徑，需符合以下的條件（摘錄自論文）：
 其第一個點是啟始點或是決策節點。 
 其最後一個點是決策節點或是結束節點。
 除了頭尾兩點外，其他的點都不是決策節點。

Jorgensen較近期的教科書用控制流圖（教科書中稱為program graph）來說明決策到決策路徑。首先先定義鏈（chain）和maximal鏈（maximal chain）。鏈是滿足以下定義的路徑：
 起始節點和結束節點不同，
 所有內部節點的入度（in-degree，連入的節點數量）為1，出度（out-degree，連出的節點數量）為1。

maximal鏈是無法再擴充的鏈，maximal鏈不會是其他更大鏈的一部份。

决策到决策路径是一組滿足以下任一項規則的節點（引用並且維持Jorgensen的編號，註解加在括弧內）：
 包括一個入度為0的節點（程式的起始節點）
 包括一個出度為0的節點（程式的結束節點）
 包括一個入度≥2或出度≥2的節點（決策點或合併點）
 包括一個入度和出度都為1的節點
 長度大於等於1的maximal鏈。

性質 
依照Jorgensen的定義，决策到决策路径有以下的性質：
 控制流圖中的每一個節點都屬於一個决策到决策路径。
 若經過了决策到决策路径的第一個節點，也會經過其他的節點。
 决策到决策路径用來找測試的獨立路徑。

 决策到决策路径測試 
依照Jorgensen 2013年的教科書所述，决策到决策路径測試（DD-path testing）是已知以代碼為基礎的測試方式中，最好的測試方法，在許多商業工具中都有使用。

决策到决策路径測試也稱為C2測試或分支覆蓋（branch coverage）。
相關條目 
 基本塊
 代碼覆蓋

 循環複雜度
 本質複雜度
 線性程式碼順序及跳轉

參考資料

Category:软件测试