Partiționarea echivalenței în testarea software este o tehnică de testare black-box care vă ajută să construiți cazuri de testare eficiente fără a face compromisuri în ceea ce privește acoperirea testului.
În acest articol, vom analiza ce este partiționarea claselor de echivalență, de ce este utilă și vom explora unele dintre procesele și abordările pe care le puteți utiliza pentru a debloca beneficiile acestei tehnici.
Ce este partiționarea claselor de echivalență
în testarea software?
Toate programele informatice au anumite condiții de intrare. În contextul testării software, aceste condiții de intrare descriu valorile sau datele pe care un tester trebuie să le utilizeze pentru a verifica calitatea și funcționalitatea software-ului său. Aceste intrări pot fi ceva simplu, cum ar fi un clic de mouse, până la text și numere.
O partiție echivalentă în testarea software-ului explorează diferitele intrări necesare pentru utilizarea software-ului și le grupează în clase de echivalență, adică seturi de intrări care vor avea un efect echivalent asupra comportamentului software-ului.
Dacă știți cum se va comporta fiecare grup de intrări, atunci nu este nevoie să testați fiecare reprezentant al grupului. Ca atare, împărțirea claselor de echivalență este o modalitate excelentă de a-i ajuta pe testeri să reducă frecvența testelor redundante. Într-o lume hipercompetitivă a dezvoltării de software, cu termene limită din ce în ce mai strânse, economisirea timpului și a efortului în ciclul de viață al testării software (STLC) este crucială.
În cele din urmă, merită menționat faptul că testarea echivalenței este o tehnică de testare black-box. Pe scurt, aceasta înseamnă că testerii nu trebuie să cunoască codul intern al programului sau mecanismele interne ale acestuia. Testele se bazează pe intrări, ieșiri și comportamente externe. Ca atare, aceste teste se concentrează foarte mult pe comportamentul utilizatorului în timpul utilizării programului.
1. Partiționarea echivalenței testelor software pe scurt
Împărțirea prin echivalență împarte datele de intrare pentru testarea software-ului în două tabere: intrări valide și intrări invalide. Valorile din cadrul fiecărei partiții trebuie să determine software-ul să aibă același comportament. De exemplu:
- Dacă condiția unei valori din partiția A este adevărată, atunci și celelalte valori din partiția A trebuie să fie la fel.
- În mod similar, dacă condițiile unei valori din partiția A sunt false, celelalte valori din partiția A trebuie să fie, de asemenea, false.
Într-un context de testare, fiecare partiție trebuie să fie acoperită cel puțin o dată. Din punct de vedere logic, acest lucru înseamnă că, dacă o intrare din partiția A eșuează, atunci toate celelalte intrări vor eșua și ele. Acest proces ar trebui să economisească timp, deoarece, în loc să testeze fiecare intrare care se află în partiția A, testerii pot testa doar una singură și pot extrapola rezultatul pe baza elementelor comune.
2. De ce este importantă testarea claselor de echivalență în testarea software
Înainte de a intra în beneficiile directe ale testării prin clase de echivalență în testarea software, trebuie să definim de ce este importantă această abordare.
Toți testerii înțeleg că testarea software-ului necesită compromisuri. Timpul și bugetele sunt limitate, ceea ce înseamnă că cei care fac teste trebuie să profite la maximum de resursele lor. Compartimentarea echivalenței testelor software ajută echipele să găsească un echilibru între eficiență și fiabilitate în testele lor prin reducerea numărului de intrări.
Avantajele partiționării prin echivalență
în testarea software
O partiție echivalentă în testarea software este preferată de echipele de testare din mai multe motive. Iată câteva dintre cele mai convingătoare.
1. Eficiență
Marele avantaj al testării partițiilor de echivalență constă în eficiența sa. Atunci când testerii folosesc partiționarea prin echivalență, ei pot reduce numărul de cazuri de testare de care au nevoie fără a compromite acoperirea testului. Prin selectarea unui caz de intrare din fiecare clasă de echivalență, testerii pot fi siguri că înțeleg modul în care software-ul lor funcționează cu o varietate de intrări.
2. Simplitate
Un alt mare avantaj al partiționării prin echivalență a testelor software este simplitatea. Descompunerea unui set divers de intrări în date valide și invalide înseamnă că planificarea testelor este mult mai simplă. Testarea fiecărei intrări în parte necesită multă documentație și coordonare. Reducerea la un singur exemplu reprezentativ simplifică procesul de testare.
Acoperire îmbunătățită
Utilizarea claselor de echivalență în testare vă permite, de asemenea, să utilizați mai eficient timpul de testare. Reducerea intrărilor de testare în clase înseamnă că puteți testa mai amănunțit fiecare clasă. Această abordare cuprinzătoare ar fi sincer imposibilă dacă ați testa fiecare intrare în parte. Compartimentarea echivalenței permite echipelor să testeze amănunțit și să testeze date valide și invalide, cazuri limită, valori limită și multe altele.
3. Reutilizabilitate
Timpul inițial pe care îl investiți în stabilirea fiecărei clase de echivalență în testarea software se amortizează în viitor dacă reutilizați aceste clase pentru testele de intrare viitoare. Deși nu toate partițiile vor fi relevante pentru testele viitoare, cele care sunt relevante vă vor economisi mult timp, fie în proiecte viitoare, fie chiar în situații de testare de regresie.
Dezavantajele partiționării prin echivalență
în testarea software
Deși partiționarea prin echivalență oferă unele avantaje majore, nu este soluția ideală pentru orice scenariu. Să explorăm unele dintre limitările sale.
1. Ordine de intrare
În anumite situații, ordinea de intrare este o parte esențială a testării funcționalității unei aplicații. Nu este ceva ce se poate reduce cu adevărat prin utilizarea partiționării prin echivalență. Testatorii trebuie să fie atenți la aceste situații și să folosească tehnici alternative pentru a asigura o bună acoperire.
2. Dependențe complexe de intrare
Software-ul complex cu dependențe de intrare complexe este un alt domeniu în care sunt expuse limitările partiționării prin echivalență. De exemplu, un software care produce calcule bazate pe diferite date de intrare. În acest scenariu, testerii ar trebui să utilizeze o varietate de tehnici pentru a reduce explozia combinatorie și pentru a crește probabilitatea de a izola defectele.
Abordări alternative pentru a completa
limitele testării echivalenței
În timp ce testarea partițiilor de echivalență este adecvată pentru multe scenarii de testare, software-ul foarte complex cu dependențe complexe între valorile de intrare poate necesita abordări complementare suplimentare.
Când vine vorba de scrierea de cazuri de testare pentru software complex, utilizarea unei combinații a acestor abordări este o idee solidă.
1. Testarea pe perechi
Testarea pe perechi este o tehnică de testare a software-ului care testează toate combinațiile posibile ale fiecărei perechi de parametri de intrare. Această abordare garantează că fiecare pereche de parametri este testată împreună cel puțin o dată.
2. Testarea tabelului de decizie
Un tabel de decizie îi ajută pe cei care efectuează testele să traseze metodic diferite combinații de intrare. Este o modalitate bună de a asigura o acoperire sistematică atunci când există dependențe complexe.
3. Testarea tranziției de stare
Acest tip de testare măsoară modul în care software-ul trece de la o stare la alta ca răspuns la diferite combinații de intrări.
4. Testarea bazată pe modele
Această abordare presupune crearea unui model bazat pe logica internă a software-ului și utilizarea unui instrument de automatizare pentru a crea cazuri de testare bazate pe acest model. Această tehnică este capabilă să gestioneze complexitatea și să asigure o acoperire adecvată.
Exemple de testare a partiționării claselor de echivalență
Cel mai bun mod de a înțelege partiționarea prin echivalență este să analizați cum și unde ați putea utiliza o clasă de echivalență în testarea software. Iată câteva exemple pentru a vă ajuta să vizualizați mai bine acest concept.
1. Exemplul de testare a împărțirii claselor de echivalență #1
Un formular de comandă online este un bun exemplu de clasă de echivalență în testarea software.
Să spunem că construiți o aplicație pentru un comerciant online de echipamente staționare. Există un formular de comandă tipic pentru baloți de hârtie A4. Iată cum puteți utiliza clasele de echivalență pentru a testa această formă.
Clase de echivalență:
Cantitățile de hârtie A4 se încadrează într-un anumit interval, de exemplu, de la 1 la 100. Așadar, cele trei clase sunt:
- De la 1 la 100
- Numere sub 1
- Numere peste 100.
Cazuri de testare:
Ar trebui să se execute trei cazuri de testare, cu următoarele rezultate așteptate
- Orice număr între 1 și 100 = comandă procesată
- Cifre sub 1 = mesaj de eroare
- Numere peste 100 = mesaj de eroare
2. Exemplul nr. 2 de testare a compartimentației prin echivalență
O clasă de echivalență în testarea software poate avea de-a face cu mai mult decât cu numere. În acest exemplu, vom explora modul în care puteți utiliza același principiu pentru a verifica un portal de încărcare de fișiere. Să spunem că trebuie să testați un site care solicită utilizatorilor să încarce documente de identitate, dar nu poate accepta decât anumite formate.
Clase de echivalență:
- Documentele acceptate sunt PDF și JPEG.
- Documentele neacceptate sunt toate celelalte formate de documente
- Nici un document
Cazuri de testare:
- Testați prin încărcarea PDF sau JPEG = încărcare reușită
- Testați prin încărcarea unui format neacceptat = mesaj de eroare
- Test fără încărcare de fișiere = mesaj de eroare
Cum se implementează o partiție de echivalență
abordarea testării software
Dacă doriți să utilizați clasele de echivalență în testare, trebuie să adoptați o abordare strategică. Iată un ghid util, pas cu pas, pentru implementarea partiționării prin echivalență în testarea software.
Pasul 1: Identificarea variabilelor de intrare
Fiecare software răspunde la o varietate de variabile de intrare. În cazul unui software complex, aceste variabile pot fi foarte mari. Așadar, analizați cerințele și specificațiile software-ului și identificați toate variabilele care au un impact asupra comportamentului software-ului.
Unele dintre cele mai evidente intrări vor include formulare de intrare a utilizatorilor. Cu toate acestea, trebuie să luați în considerare o gamă mai largă de intrări pentru lista dumneavoastră. De asemenea, puteți lua în considerare variabilele de mediu, apelurile API, calculele interne și așa mai departe.
În continuare, ar trebui să înțelegeți diferitele tipuri de date variabile. Puteți clasifica aceste variabile ca fiind întregi, booleene, șiruri de caractere etc., pentru a defini partițiile corespunzătoare.
În cele din urmă, trebuie să explorați constrângerile de intrare. Este vorba de aspecte precum caracterele permise, formatele definite și valorile minime/maximale.
Pasul 2. Determinarea partițiilor valide și invalide
Examinați fiecare variabilă de intrare și începeți să le împărțiți în funcție de rezultatele valide și invalide. Acestea vor fi clasele de echivalență în cadrul testării.
1. Partiții valabile
Partițiile valide pot fi împărțite în două clase.
Clase de echivalență pozitivă:
Valorile pe care vă așteptați ca software-ul dumneavoastră să le gestioneze cu succes. De exemplu, pentru un software care înregistrează note procentuale, orice valoare între 0 și 100 este valabilă.
Clase de echivalență negativă:
Această categorie se referă la valorile care se află în afara limitelor de intrare așteptate, dar pe care software-ul dumneavoastră ar trebui să le gestioneze cu un mesaj de eroare. De exemplu, valoarea introdusă este 110 pentru o notă procentuală, ceea ce face ca software-ul să trimită un mesaj de eroare care spune: „Toate valorile trebuie să fie cuprinse între 0 și 100”.
2. Partiții nevalabile
Aceste clase de echivalență vor include intrări care vor declanșa erori sau comportamente neașteptate. În exemplul nostru de mai sus, acest lucru ar putea include încercări de a introduce A+ sau B sau intrări similare în nota procentuală. Deși aceste intrări ar putea fi corecte din punct de vedere tehnic, ele se situează în afara așteptărilor numerice.
#3. Scrierea de cazuri de testare eficiente
În continuare, trebuie să proiectați cazuri de testare care să acopere fiecare partiție de echivalență cel puțin o dată. După cum s-a menționat mai devreme în articol, acest lucru asigură o acoperire adecvată a testelor.
În primul rând, trebuie să selectați valori reprezentative în cadrul fiecărei partiții de echivalență, care pot acoperi atât datele valide, cât și cele invalide.
Sfaturi pentru a scrie cazuri de testare solide
- Gândiți-vă la valorile limită: Asigurați-vă că testați limitele partițiilor dumneavoastră. Minim, maxim, incluziv, exclusiv etc., deoarece aceste domenii sunt candidați puternici pentru erori. De exemplu, dacă așteptările de intrare sunt cuprinse între 0 și 100, testați valorile negative, precum și numere precum 101.
- Luați în considerare scenarii de testare pozitive și negative atât pentru cazurile de testare valide, cât și pentru cele invalide.
- Testarea combinată este o idee bună. Folosiți câteva abordări diferite, așa cum sunt prezentate în abordările noastre alternative, pentru a completa limitările din secțiunea de mai sus privind testarea echivalenței.
- Documentați motivele pentru care valorile de intrare au fost împărțite în partiții specifice și prezentați în mod clar comportamentul așteptat al fiecărui test.
- Atunci când este posibil, utilizați instrumente vizuale pentru a aduce un sentiment de claritate și obiectivitate cazurilor de testare, folosind diagrame sau tabele pentru a trasa partițiile.
#4. Programează și execută cazurile de testare
Prioritizați-vă sarcinile pe baza unor factori precum:
- Ce zone sunt cele mai susceptibile de a avea defecte
- Ce scenarii sunt cel mai probabil să provoace scenarii grave, cum ar fi blocări sau înghețări.
Apoi, executați testele și înregistrați ieșirile și orice erori care apar. În cazul programelor complexe, cu multe intrări, puteți utiliza instrumente RPA pentru a imita acțiunile utilizatorului.
#5. Analizați rezultatele
Reunește datele de testare colectate și analizează rezultatele. Unele metode pe care trebuie să le folosiți sunt:
- Examinați fiecare caz de testare și comparați rezultatele efective cu cele așteptate.
- Găsiți orice discrepanțe și investigați și raportați orice erori și defecte.
#6 Sfaturi suplimentare
Deși aceste sfaturi nu se vor aplica în orice scenariu, ele se vor dovedi utile pentru testarea software-ului complex.
- Tabelele de decizie sunt o modalitate excelentă de a vizualiza partițiile de echivalență și diferitele combinații de intrare pe care ați putea dori să le utilizați.
- Puteți unifica clasele de echivalență dacă acestea prezintă un comportament aproape identic, optimizând și mai mult procesul de testare.
- Utilizați testarea valorii limită pentru a îmbunătăți detectarea defectelor
- Acolo unde este posibil, automatizați cazurile de testare a partițiilor de echivalență.
Împărțirea prin echivalență și analiza valorii limită
Partiționarea prin echivalență se bazează pe ipoteza că fiecare test dintr-o partiție va produce același rezultat. Deși acest lucru este adevărat în multe situații, nu va funcționa întotdeauna. De exemplu, orice intrări care au fost adăugate din greșeală la o partiție pot rămâne neverificate, ceea ce duce la o acoperire redusă și la o potențială instabilitate a software-ului în viitor.
Soluția la această problemă este testarea valorii limită. Aceasta permite echipelor de testare a software-ului să se concentreze asupra domeniilor care au cele mai mari șanse de a conține riscuri și să testeze software-ul pe această bază. Pe scurt, se propune ca riscurile să apară cel mai probabil la marginile sau limitele partițiilor de intrare. Prin urmare, testerii pot scrie cazuri de testare la limitele superioare și inferioare ale intrărilor, în plus față de celelalte cazuri de testare ale clasei de echivalență.
Partiționarea echivalenței și automatizarea cu ZAPTEST
Instrumentele de automatizare a testelor software, cum ar fi ZAPTEST, pot ajuta echipele să automatizeze partiționarea echivalenței atât în timpul creării, cât și în timpul execuției testelor.
Haideți să explorăm modul în care ZAPTEST vă poate ajuta să deblocați beneficiile acestei abordări utile de testare black-box.
1. Selectarea sculelor
Este importantă selectarea sculei potrivite pentru fiecare sarcină. Cele mai multe instrumente de automatizare a testelor sunt specializate fie în testarea web, mobilă sau desktop. ZAPTEST este capabil să efectueze teste pe diferite platforme și aplicații, ceea ce îl face o alegere solidă.
2. Scrierea și executarea cazurilor de testare
ZAPTEST 1Script vă permite să scanați interfața cu utilizatorul pentru a construi automatizări de testare. În plus, puteți, de asemenea, să scanați machete ale aplicațiilor dacă vă aflați într-o fază incipientă de dezvoltare. Utilizând funcția Scan GUI, ZAPTEST va scana toate obiectele de testare și le va adăuga la lista de obiecte.
De aici, puteți adăuga obiecte la diagramă și puteți construi etapele de testare.
ZAPTEST vă permite să automatizați scrierea cazurilor cu ajutorul unei interfețe simple de drag-and-drop. Nu aveți nevoie de cunoștințe de programare pentru a construi cazuri de testare cu ZAPTEST. Astfel, de aici puteți selecta operația relevantă dintr-o metodă derulantă și puteți construi un caz de testare bazat pe valorile de intrare necesare pentru interfața dumneavoastră. Apoi, puteți construi cazuri de testare pentru fiecare echivalență și puteți executa cazurile de testare. Puteți chiar să reutilizați cazurile de testare și să le editați în editorul Step, economisind mult timp.
3. Raportarea și gestionarea cazurilor de testare
ZAPTEST vă permite să rulați cazuri de testare în paralel, economisind timp considerabil. Acest lucru vă poate ajuta să executați un număr mare de partiții de echivalență diferite în același timp sau să efectuați anumite grupuri de teste.
Rezultatele sunt ușor de adunat datorită rapoartelor detaliate de eșecuri și reușite, capturilor de ecran, jurnalelor de execuție și indicatorilor de performanță pentru fiecare caz de testare.
4. Întreținerea cazurilor de testare
De asemenea, puteți urmări și menține cu ușurință cazurile de testare datorită capacităților de control al versiunilor de calitate. În plus, utilizatorii ZAPTEST pot clona și reutiliza testele pentru a atinge un nou nivel de eficiență.
ZAPTEST oferă mult mai multe funcționalități în afară de automatizarea cazurilor de testare. Cu o suită de instrumente RPA, ZAPTEST oferă o funcționalitate 2 în 1, făcând legătura între DevOps și BizOps într-un viitor marcat de hiperautomatizare, în care tot ceea ce poate fi automatizat va fi automatizat.
Gânduri finale
Partiționarea prin echivalență este o soluție elegantă pentru situațiile în care testerii trebuie să găsească un echilibru între eficiență și precizie. Având în vedere că unele programe software permit o gamă aproape infinită de intrări, împărțirea claselor de echivalență ajută echipele să împartă datele de testare în bucăți ușor de gestionat, care pot fi testate în detaliu.