Analiza valorii limită – prescurtată de obicei BVA – este o tehnică de testare obișnuită a cutiei negre. Această abordare testează defectele software prin verificarea valorilor de intrare la limitele intervalelor permise.
Acest articol va explora ce este testarea analizei limitelor, de ce este utilă și va explora diferite abordări, tehnici și diverse instrumente de testare a limitelor.
Ce este analiza valorii limită în testarea software?
Analiza valorii limită este un tip de testare funcțională. Acest tip de testare se ocupă cu verificarea faptului că fiecare funcție a software-ului îndeplinește cerințele și specificațiile. În cazul testării limitelor, această funcționalitate include modul în care software-ul tratează diferite intrări.
BVA este o tehnică de testare a software-ului care validează modul în care software-ul va răspunde la intrări la sau în jurul limitelor de intrare. În esență, fiecare intrare are intervale permise. De exemplu, este posibil să aveți o casetă de parolă pentru o autentificare care acceptă parole între 8 și 12 caractere. Testarea limitelor va testa parolele cu lungimi de caractere de 7, 8, 12 și 13.
Ideea este că limitele limitelor, adică 7, 8, 12 și 13, sunt mai susceptibile de a genera erori decât numerele din interiorul limitelor, cum ar fi 9, 10 și 11. În timp ce beneficiile ar putea părea marginale într-un exemplu de casetă de câmp care acceptă între 8 și 12 caractere, acestea devin mai evidente atunci când trebuie să scrieți cazuri de testare pentru casetele de câmp care acceptă între 1 și 20 de caractere sau numere între 1 și 1000 și așa mai departe.
Așadar, pentru a economisi timp și a reduce numărul de cazuri de testare în cadrul testării funcționale, analiza valorii limită se referă la valori:
- La valoarea minimă
- Direct sub valoarea minimă
- La valoarea maximă
- Direct deasupra valorii maxime
Beneficiile analizei valorii limită în testare
Testarea la limită are mai multe beneficii convingătoare pentru echipele de asigurare a calității.
#1. O mai bună calitate a software-ului
Scenariul de coșmar pentru testeri este reprezentat de bug-uri și defecte care trec neobservate. Cu atât de multe lucruri de verificat, unele defecte pot scăpa printre degete. Testarea limitelor dovedește funcționalitatea zonelor din software care sunt mai susceptibile de a conține erori, ceea ce duce la o mai bună construcție a software-ului și, în cele din urmă, la o aplicație mai fiabilă și mai stabilă.
#2. Acoperire crescută a testelor
BVA în testarea software este atât de utilă deoarece ajută la reducerea numărului de cazuri de testare necesare pentru o acoperire completă a testelor. Analiza valorilor limită asigură că valorile importante și că fiecare valoare poate fi testată mai amănunțit.
#3. Detectarea timpurie a defectelor
Testarea valorii limită face parte dintr-o abordare care prioritizează detectarea timpurie a defectelor. Descoperirea erorilor la începutul procesului înseamnă că echipele de dezvoltare pot economisi timp și bani, fără a menționa faptul că este mult mai ușor să remediezi erorile în primele etape de dezvoltare.
#4. Eficiență
Testarea valorii limită este foarte eficientă, deoarece reduce cerința de a utiliza o mulțime de cazuri de testare. Într-adevăr, reducerea intrărilor la toate intrările, cu excepția celor care ar putea cauza cele mai probabile probleme, poate economisi în mod semnificativ timp pentru echipele de testare, atât la scrierea, cât și la execuția cazurilor de testare.
Dezavantaje ale analizei valorii limită în testare
Desigur, nicio tehnică de testare a software-ului nu este perfectă sau lipsită de limitări. În timp ce analiza valorii limită are multe beneficii, există unele constrângeri în ceea ce privește utilizarea acestei tehnici de testare funcțională.
#1. Domeniu de aplicare restrâns
BVA funcționează la limitele sau marginile intrărilor de date valide. În general, ignoră intrările din mijloc, considerând că acestea vor fi în regulă dacă intrările valide de pe margini sunt valide. Cu toate acestea, nu este lipsit de precedent faptul că unele dintre aceste valori care nu sunt testate ar putea avea probleme.
#2. Prea simplist
Analiza limitelor are ca scop simplificarea lucrurilor. În timp ce acest lucru funcționează pentru reducerea cazurilor de testare, abordarea este mai puțin potrivită pentru domenii foarte complexe, cu limite, interacțiuni sau dependențe multiple. Într-adevăr, poate avea dificultăți în a gestiona scenarii complexe, ceea ce înseamnă că trebuie să explorați alte tehnici pentru o acoperire adecvată.
#3. Ipoteze
Orice proces care încearcă să sporească eficiența riscă să rateze anumite erori. BVA se concentrează asupra limitelor de la marginea unei zone de variație. În acest sens, trebuie să formuleze ipoteze cu privire la alte intrări care se situează de o parte și de alta a valorilor limită. Testatorii trebuie să găsească un echilibru între eficiență și acoperire, ceea ce reprezintă un ușor risc dacă se utilizează doar testarea la limită.
#4. Încredere în specificațiile și cerințele exacte
Eficiența BVA depinde de calitatea și acuratețea specificațiilor și a documentației privind cerințele. Orice erori necontrolate în aceste documente pot fi transferate în testarea valorii limită și pot duce la erori specifice care nu sunt verificate și descoperite până în etapele critice de dezvoltare.
#5. Bazarea pe clasele de echivalență
Efectuarea unui BVA amănunțit necesită o bună cunoaștere a claselor de echivalență. Stabilirea corectă a acestor clase necesită experiență și unele informații de bază despre aplicație.
Provocări ale analizei valorii limită
în testarea software
Până acum, ar trebui să vă fie destul de clar care sunt avantajele și dezavantajele testării limitelor. Cu toate acestea, dacă doriți să puneți în aplicare această abordare în cadrul testării software, trebuie să fiți conștienți și de diferitele provocări pe care trebuie să le depășiți.
Iată câteva dintre provocările legate de implementarea testării valorii limită în testarea software.
#1. Delimitarea limitelor
Identificarea limitelor în cadrul unor sisteme simple reprezintă o mică provocare pentru testerii competenți. Cu toate acestea, există situații mai complexe, cum ar fi:
- Domenii de intrare complexe cu variabile de intrare diverse sau relații complicate
- Limitele nedocumentate care nu au fost descrise în mod clar în documentele de specificații
- Limite dinamice care se modifică în funcție de acțiunile utilizatorului sau de alte condiții
#2. Cerințe ambigue
Documentele privind cerințele scrise prost sau neclare pot împiedica identificarea valorilor limită. Claritatea, caracterul complet și angajamentul de a elabora documente de specificații exhaustive necesită timp, dar în cele din urmă vor da roade.
#3. Expertiză
Analiza valorii limită poate fi înșelător de complexă. Într-adevăr, echipele de testare au nevoie de personal cu experiență și cunoștințe în domeniu pentru a înțelege nuanțele subtile ale tehnicii. În plus, testerii trebuie să aibă cunoștințe despre software sau, cel puțin, să dispună de documente de specificații fiabile pe care să se bazeze.
#4. Erori
Analiza limitelor urmărește să reducă numărul de cazuri de testare necesare pentru a verifica intrările valide și invalide. Cu toate acestea, defectele care se află în afara intervalului de testare pot trece cu ușurință neobservate. În plus, erorile „off-by-one” sunt greșeli de codare comune care pot apărea la sau în apropierea limitelor. Testatorii trebuie să fie conștienți de aceste scenarii și să ia măsuri de testare.
#5. Explozia cazului de testare
Cu mai multe limite de intrare în joc, cazurile de testare pot deveni în curând complexe și se pot multiplica fără control. În aceste situații, timpul și banii pe care îi puteți economisi prin testarea limitelor se pierd, subminând beneficiile soluției. Construcțiile complexe de software cu o mulțime de combinații sau permutări pot avea un efect similar.
#6. Limitări ale instrumentului de analiză
Instrumentele de automatizare a testelor software pot ajuta echipele să efectueze o analiză adecvată a valorii limită. Cu toate acestea, chiar și în cele mai bune cazuri, aceste instrumente necesită o anumită intervenție manuală atât pentru testare, cât și pentru crearea testelor. Această situație poate fi exacerbată în cazul construcțiilor complexe cu interacțiuni cu mai multe variabile.
Diferite tipuri de valori limită
testarea în testarea software
În cartea Software Testing: A Craftsman’s Approach, autorii Paul C. Jorgensen și Byron DeVries descriu patru tipuri diferite de testare a valorii limită, care sunt:
1. Testarea valorii limită normale (NBVT)
- Testează valorile de intrare valide la marginile domeniului de intrare
- Explorează valorile minime și maxime alături de intrările chiar deasupra și sub limită
- Acesta este tipul clasic de analiză a valorii limită.
2. Testarea robustă a valorii limită (RBVT)
- Similar cu NBVT de mai sus, dar include și intrările invalide
- Testează la și chiar dincolo de limite, dar ține cont și de intrările nevalabile
- Se concentrează pe găsirea erorilor din ieșirile extreme sau neașteptate
3. Testarea valorii limită în cel mai rău caz (WBVT)
- Verifică comportamentul software-ului folosind valori valide și invalide extreme
- Explorează valorile de la marginea domeniilor de intrare și valorile de dincolo de aceste limite
- Încearcă să înțeleagă comportamentul software-ului în condiții mai extreme
4. Testarea robustă a valorii limită în cel mai rău caz (RWBVT)
- Folosește o combinație de RBVT și WBVT pentru cea mai completă testare a valorilor limită
- Testează valorile de intrare valide și invalide atât la limite tipice, cât și la limite extreme
- Oferă cea mai bună oportunitate de a găsi defecte legate de limite
Aceste abordări diferă în ceea ce privește gradul de cuprindere, RWBVT fiind cea mai completă. Cu toate acestea, testerii trebuie să recunoască investiția suplimentară în timp și efort necesară pentru a debloca acest nivel suplimentar de descoperire a defectelor.
Împărțirea prin echivalență și valoarea limită
analiză: asemănări și diferențe
Compartimentarea prin echivalență și analiza valorii limită sunt adesea utilizate împreună. Într-adevăr, cele două tehnici sunt extrem de complementare. Cu toate acestea, ele descriu abordări distincte pentru validarea datelor introduse. Iată o trecere în revistă a asemănărilor și diferențelor dintre cele două.
1. Similitudini
Împărțirea prin echivalență și analiza valorii limită fac o pereche excelentă. Iată câteva dintre asemănările dintre cele două tehnici.
- Ambele sunt tehnici de testare de tip „black box”, ceea ce înseamnă că se concentrează pe intrări și ieșiri, care pot fi testate fără cunoașterea a priori a codului sursă al aplicației.
- Ambele fac parte dintr-o abordare completă a intrărilor de testare.
- Ambele îi ajută pe testeri să găsească un echilibru între o acoperire cuprinzătoare a testelor fără a scrie o cantitate excesivă de cazuri de testare.
2. Diferențe
Pentru a explora diferențele dintre partiționarea echivalenței și analiza valorii limită, trebuie să le analizăm pe fiecare în parte.
Compartimentarea prin echivalență
- Repartizează datele de intrare în clase de echivalență care ar trebui să conducă la ieșiri similare ale sistemului
- Folosește o singură valoare reprezentativă din fiecare clasă și testează sistemul cu acea valoare.
- Se ocupă de identificarea claselor de echivalență valide și invalide.
Analiza valorii limită
- Testează valorile de la limitele sau marginile claselor de echivalență
- Testați un număr de valori, inclusiv valorile minime, maxime și valorile de o parte și de alta a limitei.
- Caută erori care se găsesc la marginea limitelor
Exemple de partiționare a echivalenței și de analiză a valorii limită
Pentru a vă ajuta să vă consolidați înțelegerea partițiilor de echivalență și a analizei valorii limită, iată câteva exemple.
Exemplu de partiționare prin echivalență:
Să presupunem că aveți o casetă de introducere a datelor pentru înmatricularea mașinilor. În mod obișnuit, plăcuțele de înmatriculare din SUA au între 6 și 7 caractere. De dragul simplității, vom renunța la plăcuțele de înmatriculare speciale.
Date valabile = Plăcuțe cu 6 sau 7 caractere
Date nevalabile = Plăcuțe cu >6 sau >7 caractere.
Exemplu de analiză a valorii limită:
Folosind același exemplu de plăcuță de înmatriculare ca mai sus, analiza limitelor va testa
Date valabile = Plăcuțe cu 6 sau 7 caractere
Date nevalabile = Plăcuțe cu 5 sau 8 caractere, iar în unele scenarii, cu 4 și 9 caractere.
Exemplu de analiză a valorii limită
Poate că cel mai bun mod de a înțelege pe deplin acest concept este să analizăm un alt exemplu sau două de analiză a valorii limită.
Exemplu de testare a valorii limită #1
Pentru a explora mai în detaliu testarea valorii limită, să analizăm un exemplu de domeniu de verificare a vârstei.
Avem o casetă în care utilizatorul își poate introduce vârsta.
Valorile limită sunt:
- Vârsta minimă = 18 ani
- Vârsta maximă = 120 de ani
Exemplu de cazuri de testare a limitelor:
Există în total șase cazuri de testare:
- 17, 18 și 19, care se situează sub nivelul minim, minim și, respectiv, peste nivelul minim
- 119, 18 și 19, care se situează sub nivelul maxim, maxim și, respectiv, peste nivelul maxim
Exemplul nr. 2 de testare a valorii limită.
În următorul exemplu de testare a limitelor, vom explora un site web cu o reducere minimă de 20% la comenzi de 100 de dolari sau mai mult.
În acest exemplu, o achiziție de peste 600 de dolari duce la o reducere de 25%. Testul valorii limită va avea în vedere intrări cuprinse între 100 și 600 de dolari.
Valorile limită sunt:
Reducere minimă de calificare = 100 $.
Reducere maximă de calificare = 600 $.
Exemplu de cazuri de testare a limitelor:
Din nou, generăm un total de șase cazuri de testare, care sunt:
- 99,99 USD, 100 USD și 100,01 USD, care sunt sub minim, minim și, respectiv, peste minim
- 599,99 dolari, 600 dolari și 600,01 dolari, care sunt sub nivelul maxim, maxim și, respectiv, peste nivelul maxim
Este corectă testarea limitelor în testarea software?
În lucrarea de cercetare ” Black Box Testing with Equivalence Partitioning and Boundary Value Analysis Methods„, autorii explorează utilizarea metodei de partiționare a echivalenței și a analizei valorii limită pentru a testa un sistem informațional academic pentru Universitatea Mataram din Indonezia.
Autorii au folosit pentru testele lor instrumentul popular de testare open-source Selenium și au rulat un total de 322 de cazuri de testare. Testele de echivalență și analiza valorilor limită au scos la iveală aproximativ 80 de cazuri nereușite, ceea ce a dus la un raport de aproximativ 75:25 între scorurile valide și cele nevalabile ale testelor. În general, utilizarea unei combinații de partiționare a echivalenței și BVA în testarea software-ului a condus la o testare completă și utilă pentru software.
Cele mai bune instrumente de testare a valorii limită
În timp ce instrumentele software dedicate testării limitelor sunt rare, există multe instrumente de testare notabile care sunt capabile să facă acest lucru.
#3. TestCaseLab
TestCaseLab este un instrument de gestionare a testelor bazat pe cloud care poate ajuta la testarea BVA. Software-ul permite echipelor să creeze și să gestioneze cazurile de testare din interfața sa intuitivă și atractivă. TestCaseLab este flexibil și plin de funcții, dar are constrângerile sale, inclusiv opțiuni limitate de raportare și personalizare.
#2. Micro Focus UFT One
Micro Focus UFT One este un instrument de testare a software-ului cu accent pe testarea funcțională și de regresie. Suportă diferite platforme, dispozitive și teste API și oferă opțiuni de integrare puternice. Oferă atât crearea de teste fără cod, cât și bazate pe cuvinte cheie și poate ajuta echipele să construiască cu ușurință cazuri de testare a analizei valorii limită. Există unele limitări pe care trebuie să le luați în considerare, cum ar fi o curbă de învățare abruptă și o lipsă de putere în comparație cu instrumente precum ZAPTEST.
#1. ZAPTEST
ZAPTEST este un instrument cuprinzător de testare automată a software-ului cu capabilități avansate de RPA. Este construit pentru a oferi testeri o suită de instrumente de automatizare a testelor, ușor de utilizat și robustă, care poate ajuta la verificarea software-ului într-o varietate de moduri, inclusiv cu BVA în testarea software-ului.
Unele dintre cele mai convingătoare cazuri de utilizare a ZAPTEST pentru a ajuta la analiza valorii limită includ generarea de cazuri de testare, manipularea datelor de testare, executarea testelor, precum și raportarea și analiza. Cu o gamă de șabloane și un nivel ridicat de personalizare, combinate cu crearea de cazuri de testare fără cod, utilizatorii ZAPTEST pot crea și gestiona rapid și ușor cazuri de testare robuste pentru toate tipurile de analiză a limitelor.
Pe lângă generarea și gestionarea cazurilor de testare, capacitățile RPA ale ZAPTEST pot ajuta echipele de testare cu testarea analizei valorii limită în alte moduri. De exemplu, puteți automatiza execuția cazurilor de testare, genera date de testare și construi integrări puternice cu alte instrumente de testare.
Sfaturi pentru testarea valorii limită
- Combinați analiza valorilor limită cu partiționarea echivalenței pentru a vă asigura că cazurile de testare acoperă diverse scenarii de intrare.
- Folosiți scenarii de intrare nevalabile (de exemplu, testarea negativă) pentru a vă asigura că verificați modul în care software-ul gestionează erorile și intrările neașteptate.
- Investiți timp în identificarea valorilor limită pentru diferite tipuri de date, cum ar fi text, numere, boolean etc.
- Prioritizarea testării valorii limită pentru funcționalitățile critice sau zonele în care este mai probabil să apară erori.
- Folosiți date realiste, care să reprezinte tipul de date pe care utilizatorii dvs. le vor introduce în domeniile dvs.
Gânduri finale
Analiza valorii limită este o abordare utilă pentru testarea funcțională. Atunci când aveți un domeniu de intrare, trebuie să verificați dacă acesta acceptă date valide și trimite mesaje de eroare atunci când primește date invalide. Testarea analizei limitelor ajută la verificarea acestei funcționalități într-un mod eficient, prin crearea doar a cazurilor de testare necesare pentru o testare completă.
Testarea limitelor analizează valorile din interiorul sau din jurul intervalului acceptabil și verifică modul în care sistemul răspunde la aceste intrări. Rezultatul este o mulțime de timp economisit și un efort redus, deoarece nu mai este nevoie să construiți cazuri de testare redundante. În lumea rapidă a dezvoltării de software, în care termenele limită par a fi foarte dese, echipele de testare au nevoie de tot ajutorul pe care îl pot primi.