![]() | ||
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.
Contents
Definition
In Huang's 1975 paper, a decision-to-decision path is defined as path in a program's flowchart such that all the following hold (quoting from the paper):
Jorgensen's more recent textbooks restate it in terms of a program's flow graph (called a "program graph" in that textbook). First define some preliminary notions: chain and a maximal chain. A chain is defined as a path in which:
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 parenthesis):
- 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
- It is a maximal chain of length ≥ 1.
According to Jorgensen (2013), in Great Britain and ISTQB literature, the same notion is called linear code sequence and jump (LCSAJ).
Properties
From the latter definition (of Jorgensen) we can conclude the following:
DD-path testing
According to Jorgensen's 2013 textbook, DD-path testing is the best known code-based testing method, incorporated in numerous commercial tools.
DD-path testing is also called C2 testing or branch coverage.