A szoftverkomponens várható bemeneti és kimeneti értékeit a komponens specifikációjából kell kinyerni. Az értékeket ezután azonosítható határokkal rendelkező halmazokba kell csoportosítani. Minden halmaz vagy partíció olyan értékeket tartalmaz, amelyeket a komponens várhatóan azonos módon dolgoz fel. A tesztadat-tartományok partícionálását az ekvivalenciapartícionáló teszteset-tervezési technika ismerteti. A tesztesetek tervezésekor fontos figyelembe venni az érvényes és az érvénytelen partíciókat is.
A demonstráció egy Java nyelven írt függvény segítségével végezhető el.
class Safe { static int add(int a, int b) { int c = a + b ; if (a >= 0 && b >= 0 && c < 0) { System.err.println("Overflow!"); } if (a < 0 && b < 0 && c >= 0) { System.err.println("Underflow!"); } return c; }}
A kód alapján a bemeneti vektorok a partícionálásra kerülnek. A blokkok, amelyeket le kell fednünk, a túlcsordulási utasítás és az alulcsordulási utasítás, és ezek közül egyik sem 2. Ez 3 egyenértékű osztályt eredményez, magából a kódvizsgálatból.
megjegyezzük, hogy van egy fix méretű egész szám tehát:-
MIN_VALUE ≤ x + y ≤ MAX_VALUE
Megjegyezzük, hogy az a és b bemeneti paraméter mindkettő egész szám, tehát teljes rend létezik rajtuk.Ha kiszámítjuk az egyenlőségeket:-
x + y = MAX_VALUE MIN_VALUE = x + y
azokat az értékeket kapjuk vissza, amelyek a határon vannak, beleértve, vagyis ezek a (a,b) párok érvényes kombinációk,és nem történne velük alul- vagy túlcsordulás.
Másrészt:-
x + y = MAX_VALUE + 1
a (a,b) párokat kapjuk, amelyek érvénytelen kombinációk,túlcsordulás történne velük. Ugyanígy:-
x + y = MIN_VALUE – 1
olyan (a,b) párokat ad, amelyek érvénytelen kombinációk,Underflow következne be számukra.
A határértékek (csak a túlcsordulás esetére rajzolva) a jobb oldali ábrán narancssárga vonalként jelennek meg.
Egy másik példa: ha a bemeneti értékek az év hónapjai lennének, egész számokként kifejezve, a “hónap” bemeneti paraméter a következő partíciókat kaphatná:
... -2 -1 0 1 .............. 12 13 14 15 ..... --------------|-------------------|-------------------invalid partition 1 valid partition invalid partition 2
A két partíció közötti határ az a hely, ahol az alkalmazás viselkedése megváltozik, és nem maga a valós szám. A határérték az a minimális (vagy maximális) érték, amely a határon van. A 0 a maximális szám az első partícióban, az 1 a minimális érték a második partícióban, mindkettő határérték. Olyan teszteseteket kell létrehozni, amelyek olyan bemeneteket vagy kimeneteket generálnak, amelyek az egyes határok mindkét oldalára esnek, ami határonként két esetet eredményez. A határ mindkét oldalán lévő teszteseteknek a tesztelendő komponens számára a lehető legkisebb növekményben kell lenniük, egész szám esetén ez 1, de ha a bemenet egy kétjegyű tizedes szám lenne, akkor ez 0,01 lenne. A fenti példában 0,1 és 12,13 határértékek vannak, és mindegyiket tesztelni kell.
A határérték-elemzés nem igényel érvénytelen partíciókat. Vegyünk egy példát, ahol egy fűtőberendezés akkor kapcsol be, ha a hőmérséklet 10 fok vagy hidegebb. Két partíció van (hőmérséklet≤10, hőmérséklet>10) és két határértéket kell tesztelni (hőmérséklet=10, hőmérséklet=11).
Ahol egy határérték az érvénytelen partícióba esik, ott a teszteset úgy van kialakítva, hogy a szoftverkomponens ellenőrzött módon kezelje az értéket. A határérték-elemzés a teljes tesztelési ciklus során használható, és minden tesztelési fázisban egyformán alkalmazható.