W rzadkich przypadkach może okazać się konieczne przetestowanie wszystkich kombinacji wartości, które mogą pojawić się w decyzji. Taki gruntowny poziom testowania nazywany jest pokryciem wielokrotnym warunków. Liczba wymaganych testów zależy od liczby warunków atomowych w wyrażeniu decyzyjnym i wynosi 2n, gdzie n jest liczbą niepowiązanych warunków atomowych. W przykładzie podanym w poprzednim punkcie, w celu uzyskania pokrycia warunków wielokrotnych wymagane jest wykonanie następujących testów:
A | B | C | (A LUB B) ORAZ C | |
---|---|---|---|---|
Test 1 | PRAWDA | PRAWDA | PRAWDA | PRAWDA |
Test 2 | PRAWDA | PRAWDA | FAŁSZ | FAŁSZ |
Test 3 | PRAWDA | FAŁSZ | PRAWDA | PRAWDA |
Test 4 | PRAWDA | FAŁSZ | FAŁSZ | FAŁSZ |
Test 5 | FAŁSZ | PRAWDA | PRAWDA | PRAWDA |
Test 6 | FAŁSZ | PRAWDA | FAŁSZ | FAŁSZ |
Test 7 | FAŁSZ | FAŁSZ | PRAWDA | FAŁSZ |
Test 8 | FAŁSZ | FAŁSZ | FAŁSZ | FAŁSZ |
Jeśli w używanym języku programowania występuje mechanizm zwarcia, faktyczna liczba przypadków testowych zwykle ulega zmniejszeniu, w zależności od kolejności i zgrupowania operacji logicznych wykonywanych na warunkach atomowych.
Obszar zastosowania
Ta technika była tradycyjnie stosowana do testowania oprogramowania wbudowanego, które powinno działać w niezawodny, bezawaryjny sposób przez długi okres czasu (np. zakładano, że centrale telefoniczne mają funkcjonować przez 30 lat). W przypadku większości newralgicznych aplikacji ten rodzaj testowania prawdopodobnie zostanie zastąpiony testowaniem ZPWD.
Ograniczenia/trudności
Ponieważ liczba przypadków testowych wynika bezpośrednio z tablicy prawdy zawierającej wszystkie warunki atomowe, łatwo określić ten poziom pokrycia. Liczba wymaganych przypadków może być jednak bardzo duża, dlatego w większości sytuacji wystarczające jest zastosowanie pokrycia ZPWD.