Decision-to-decision path


A decision-to-decision path, or DD-path, is a path of execution between two decisions. More recent versions of the concept also include the decisions themselves in their own DD-paths.

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 :
Jorgensen's more recent textbooks restate it in terms of a program's flow graph. 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 :
  1. It consists of a single node with in-degree = 0
  2. It consists of a single node with out-degree = 0
  3. It consists of a single node with in-degree ≥ 2 or out-degree ≥ 2
  4. It consists of a single node with in-degree = 1 and out-degree = 1
  5. It is a maximal chain of length ≥ 1.
According to Jorgensen, in Great Britain and ISTQB literature, the same notion is called linear code sequence and jump.

Properties

From the latter definition we can conclude the following:
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.