Test pokrycia warunków logicznych

Z Wikipedii, wolnej encyklopedii

Test pokrycia warunków logicznych należy do grupy testów pokrycia, które są używane do testowania oprogramowania. Problemem dotychczas omawianych testów pokrycia (C1-Test, C2-Test) jest niewystarczające przetestowanie złożonych, wielopoziomowych warunków logicznych.

C3a - prosty test pokrycia warunków logicznych[edytuj | edytuj kod]

każdy elementarny warunek w decyzji musi być testowany raz z true i raz z false. Przykład:

boolean a,b;
if(a || b) {...} 
przypadek testowy 1 : a=false i b=false.
przypadek testowy 2 : a=true i b=true.

C3b - Test wielokrotnego pokrycia warunków logicznych[edytuj | edytuj kod]

Ten test uwzględnia wszystkie warunki składowe warunku złożonego. Jeżeli warunek złożony zawiera n warunków elementarnych, to są budowane 2n kombinacji. To oznacza dla powyższego przypadku, że są konieczne 4 przypadki testowe.

C3c - Minimalny test wielokrotnego pokrycia warunków logicznych[edytuj | edytuj kod]

Ten test wytwarza więcej przypadków testowych niż C3a i mniej niż C3b, każdy warunek logiczny(elementarny albo złożony) musi osiągnąć wartości true i false. Przy tym jest uwzględniona struktura logiczna oraz Test C1 (test pokrycia rozgałęzień) jest całkowicie zawarty w tym teście. Dodatkową zaletą jest, że test C3c jest obliczalny.

Wady[edytuj | edytuj kod]

  • Niewystarczająca analiza warunku logicznego przez język programowania z tzw. short cuircuts evaluation jak C/C++, Java, C#


Przykład:

if (a && b) {...} else { pobierz wartość b  }
jeżeli a jest false to adres zmiennej b jest obojętny.
ale jeżeli a=false i b=null, to mamy błąd w rozgałęzieniu "else"