A decision-to-decision path, or DD-path, is a path of execution (usually through a flow graph representing a program, such as a flow chart) between two decisions. More recent versions of the concept also include the decisions themselves in their own DD-paths.
A flow graph of a program. Each color denotes a different DD-path. Nodes 1,2,5 and 6 are each in their own DD-path containing a single node. Nodes 3 and 4 together form one DD-path (they are a maximal chain).
Definition
In Huang's 1975 paper,[1] a decision-to-decision path is defined as path in a program's flowchart such that all the following hold (quoting from the paper):
its first constituent edge emanates either from an entry node or a decision box;
its last constituent edge terminates either at a decision box or at an exit node; and
there are no decision boxes on the path except those at both ends
Jorgensen's more recent textbooks restate it in terms of a program's flow graph (called a "program graph" in that textbook).[2] First define some preliminary notions: chain and a maximal chain. A chain is defined as a path in which:
initial and terminal nodes are distinct, and
all interior nodes have in-degree = 1 and out-degree = 1.
A maximal chain is a chain that is not part of a bigger chain.
A DD-path is a set of nodes in a program graph such that one of the following holds (quoting and keeping Jorgensen's numbering, with comments added in parentheses):[2]
It consists of a single node with in-degree = 0 (initial node)
It consists of a single node with out-degree = 0 (terminal node)
It consists of a single node with in-degree ≥ 2 or out-degree ≥ 2 (decision/merge points)
It consists of a single node with in-degree = 1 and out-degree = 1
^Huang, J.C. (September 1975). "An Approach to Program Testing". Computing Surveys. 7 (3): 118–119. doi:10.1145/356651.356652.
The definition given there is citing: "Fortran automated verification system Level 1 — user's guide, Program Validation Project, General Research Corp., October 1974."
^ abcdPaul C. Jorgensen (2013). Software Testing: A Craftsman's Approach, Fourth Edition. CRC Press. pp. 136–137. ISBN978-1-4665-6068-0.
^Judith A. Clapp; Saul F. Stanten; W.W. Peng; D.R. Wallace; Deborah A. Cerino; Roger J. Dziegiel Jr. (1995). Software Quality Control, Error, Analysis. William Andrew. pp. 347–348. ISBN978-1-4377-4484-2.