Ho incontrato (anche in letteratura) due opinioni contraddittorie legate alla copertura del percorso vs condizione (non ramo o bordo!). Alcuni dicono che la copertura Path è più strong della copertura delle condizioni, alcuni dicono il contrario.
Avere un codice come questo:
If(X<0 OR X>100)
DoStuff();
Copertura del percorso - 1 caso di test è necessario per coprire il percorso. Con X = -1, la seconda espressione non verrà testata e il possibile errore verrà perso.
Copertura delle condizioni - i casi di test X = -1 e X = 100 sono necessari per testare entrambe le condizioni.
Mi manca qualcosa o la copertura delle condizioni è davvero più strong della copertura del percorso?
Copertura delle condizioni (ISTQB):
Our next level of coverage is called condition coverage. The basic concept is that, when a decision is made by a complex expression that eventually evaluates to TRUE or FALSE, we want to make sure that each atomic condition is tested both ways.
Informazioni pratiche su CMMI
Condition coverage measures the true and false outcome of each Boolean subexpression.
References:
Test del software: principi e pratiche di Srinivasan Desikan, Gopalaswamy Ramesh: pagina 61
Condition coverage is a much stronger criteria than path coverage, which in turns is a much stronger criteria than statement coverage.