Valorile de intrare și de ieșire preconizate pentru componenta software trebuie extrase din specificația componentei. Valorile sunt apoi grupate în seturi cu limite identificabile. Fiecare set, sau partiție, conține valori care se așteaptă să fie procesate de către componentă în același mod. Partiționarea intervalelor de date de testare este explicată în tehnica de proiectare a cazurilor de testare de partiționare a echivalenței. Este important să se ia în considerare atât partițiile valide, cât și cele invalide atunci când se proiectează cazuri de test.
Demonstrația se poate face folosind o funcție scrisă în Java.
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; }}
Pe baza codului, vectorii de intrare din sunt partiționați. Blocurile pe care trebuie să le acoperim sunt instrucțiunea overflow și instrucțiunea underflow și niciuna dintre acestea 2. Acest lucru dă naștere la 3 clase echivalente, din analiza codului propriu-zis.
remarcăm că există o dimensiune fixă a numerelor întregi de aici:-
– MIN_VALOARE ≤ x + y ≤ MAX_VALOARE
Observăm că parametrul de intrare a și b sunt amândoi numere întregi, prin urmare există ordine totală asupra lor.Atunci când calculăm egalitățile:-
x + y = MAX_VALOARE MIN_VALOARE = x + y
obținem valorile care se află la limită, inclusiv, adică aceste perechi de (a,b) sunt combinații valide și nu se va produce nici o subîncărcare sau supraîncărcare pentru ele.
Pe de altă parte:-
x + y = MAX_VALOARE + 1
obține perechi de (a,b) care sunt combinații invalide, se va produce supraîncărcare pentru ele. În același mod:-
x + y = MIN_VALUE – 1
oferă perechi de (a,b) care sunt combinații invalide,Underflow ar avea loc pentru ele.
Valorile limită (trasate doar pentru cazul de depășire) sunt prezentate sub forma liniei portocalii în figura din partea dreaptă.
Pentru un alt exemplu, dacă valorile de intrare ar fi lunile anului, exprimate sub formă de numere întregi, parametrul de intrare „lună” ar putea avea următoarele partiții:
... -2 -1 0 1 .............. 12 13 14 15 ..... --------------|-------------------|-------------------invalid partition 1 valid partition invalid partition 2
Limita dintre două partiții este locul în care se schimbă comportamentul aplicației și nu este un număr real în sine. Valoarea de graniță este valoarea minimă (sau maximă) care se află la graniță. Numărul 0 este numărul maxim din prima partiție, numărul 1 este valoarea minimă din a doua partiție, ambele sunt valori de frontieră. Cazurile de testare trebuie create pentru a genera intrări sau ieșiri care se vor situa pe și de o parte și de alta a fiecărei limite, ceea ce duce la două cazuri pentru fiecare limită. Cazurile de testare de fiecare parte a unei limite ar trebui să aibă cel mai mic increment posibil pentru componenta testată; pentru un număr întreg, acesta este 1, dar dacă intrarea ar fi o zecimală cu două poziții, atunci ar fi 0,01. În exemplul de mai sus există valori limită la 0,1 și 12,13 și fiecare dintre ele ar trebui să fie testată.
Analiza valorilor limită nu necesită partiții invalide. Să luăm un exemplu în care un încălzitor este pornit dacă temperatura este de 10 grade sau mai rece. Există două partiții (temperatura≤10, temperatura>10) și două valori limită care trebuie testate (temperatura=10, temperatura=11).
Dacă o valoare limită se încadrează în partiția invalidă, cazul de testare este conceput pentru a se asigura că componenta software tratează valoarea într-un mod controlat. Analiza valorilor limită poate fi utilizată pe tot parcursul ciclului de testare și este la fel de aplicabilă în toate fazele de testare.
.