Jedním ze základních principů testování je, že není možné otestovat úplně vše. Pokud je například vstupní hodnotou věk zákazníka, u něhož má aplikace akceptovat hodnoty od 0 do 120 let, nelze otestovat každou jednotlivou vstupní hodnotu, ale je zapotřebí počet testovaných hodnot zredukovat. Efektivním způsobem, jak počet testovacích případů snížit, je rozdělení hodnot do tříd ekvivalencí [ISTQB, 2012b, s. 27-29]. Rozdělení do tříd ekvivalencí spočívá v tom, že množina vstupních hodnot je rozdělena do skupin, od kterých se očekává, že se budou chovat stejným způsobem. Výběrem jedné reprezentativní hodnoty z této skupiny je potom zajištěno pokrytí i všech ostatních hodnot z dané skupiny. V případě zákazníka by vstupní hodnoty mohly být rozděleny například do následujících tří skupin:
· zákazníci ve věku od 0 do 17 let (včetně), kteří budou mít slevu JUNIOR ve výši 30 % z plné ceny,
· zákazníci ve věku od 18 do 59 let (včetně), kteří budou platit plnou cenu,
· zákazníci ve věku od 60 let, kteří budou mít slevu SENIOR ve výši 20 % z plné ceny.
Reprezentativními hodnotami z těchto skupin potom mohou být například hodnoty 15, 45 a 90.
Kromě těchto základních tří rozdělení, která testují pouze validní data, je vhodné přidat i třídy pro nevalidní data, která aplikace nemá akceptovat. V případě zákazníka mohou být přidány například následující třídy:
· zákazníci ve věku méně než 0 let, které aplikace odmítne,
· zákazníci ve věku 120 a více let, které aplikace odmítne.
Reprezentativními hodnotami z těchto skupin potom mohou být například hodnoty -5 a 150. Další skupinou nevalidních dat potom mohou být typicky pokusy o zadání věku v nesprávném datovém formátu, ponechání prázdného pole, apod.
Přehledně tento příklad zachycuje následucjící tabulka.
Rozdělení tříd ekvivalencí, zdroj: [autor]
Třída ekvivalence |
věk < 0 |
0 ≤ věk > 18 |
18 ≤ věk > 60 |
60 ≤ věk > 120 |
120 ≤ věk |
Očekávaný výsledek |
nepřijato |
sleva JUNIOR |
plná cena |
sleva SENIOR |
nepřijato |
Testovaná hodnota |
-5 |
15 |
45 |
90 |
150 |
Kromě vstupních hodnot se pomocí rozdělení do tříd ekvivalencí mohou roztřídit také výstupy, interní hodnoty, časově omezené hodnoty nebo rozhraní parametrů.
Ekvivalenční rozdělení je možné aplikovat na všech úrovních testování a je použitelné jak na lidské vstupy, tak i na vstupy skrze rozhraní systému nebo rozhraní parametrů při integračním testování. Pro test analytika je důležité zejména správně porozumět všem procesům, aby pak mohl sestavit co nejlepší třídy ekvivalence a z každé z nich vybrat jednoho zástupce.