Criterio di copertura dei cammini DU

Nel criterio precedente si richiedeva di testare un cammino da ogni definizione ad ogni suo uso, ma come sappiamo i cammini tra due istruzioni di un programma possono essere molteplici. Potrebbe dunque sorgere l’idea di testarli tutti: da questa intuizione nasce il criterio di copertura dei cammini DU.

$$ \begin{align*} T \in C_{pathDU} \Longleftrightarrow& \forall i \in P, \ \forall x \in \operatorname{def}(i), \ \forall j \in \operatorname{du}(i, \, x), \\ &\forall \text{ cammino da $i$ a $j$ senza ulteriori definizioni di $x$} \\ & \exists t \in T \ \text{che lo esegue}. \end{align*} $$

Questo criterio può essere utile da ipotizzare, ma a causa dell’esplosione combinatoria del numero dei cammini è considerato impraticabile (“sopra la barra rossa”).