Testarea combinatorie
Feb 24, 2020
Introducere:
în zilele noastre, sistemele software sunt diverse, precum și complexe și au multe configurații posibile. Aceste calități și caracteristici în sistemele software a inaugurat o cerere de software și aplicații care sunt proiectate în mod unic și au caracteristici inovatoare, precum și creative. În afară de acestea, clienții și utilizatorii solicită, de asemenea, performanță exponențială, funcționalitate, calitate, scalabilitate, eficacitate și multe altele. Pentru a atinge aceste obiective și pentru a îndeplini cerințele clienților și consumatorilor, inginerii software folosesc diverse tehnici și metodologii inovatoare pentru a dezvolta un produs, precum și pentru a efectua teste riguroase, deoarece produsele lansate cu testare inadecvată pot provoca daune și pierderi ireparabile atât clientului, cât și utilizatorului care instalează aplicația sau utilizează software-ul. Mai mult, poate provoca și vătămări corporale, care pot duce la pierderi economice mari sau încălcări ale securității, precum și la afectarea calității vieții de zi cu zi. Cu toate acestea, testerii de software au adesea timp și buget limitat, ceea ce face adesea imposibilă testarea exhaustivă a software-ului. În plus, testerii testează adesea intuitiv defectele pe care le anticipează, în timp ce defectele mai puțin prevăzute sunt trecute cu vederea și nu sunt testate. Cea mai bună modalitate de a depăși o astfel de situație este implementarea testelor combinatorii în software și aplicații. Testarea combinatorie este o abordare care poate examina sistematic setarea sistemului într-un număr gestionabil de teste și prin acoperirea sistematică a interacțiunilor t-way. Prin urmare, aici este o discuție explicită privind testarea combinatorie, pentru a defini semnificația, metodele și alte calități majore.
descrierea testării combinatorii:
testarea combinatorie este acum o abordare practică care produce teste de înaltă calitate la un cost mai mic. Se descompune forța brută în pași pentru a ataca problema treptat prin separarea activităților de analiză și sinteză care pot fi cuantificate și monitorizate și parțial susținute de instrumente. Mai mult, testarea combinatorie este extrem de simplă de aplicat. Ca tehnică bazată pe specificații, nu necesită cunoștințe despre implementarea testată. Testarea combinatorie se bazează pe premisa că multe erori în software pot apărea doar din interacțiunea a doi sau mai mulți parametri. Prin urmare, testarea combinatorie este o tehnică eficientă pentru a testa software-ul cu mai mulți parametri de configurare. Este utilizat în principal pentru a detecta defectele de interacțiune cauzate de combinația de parametri. Tipul încercării generate prin încercări combinatorii are ca scop generarea unei acoperiri care să acopere toate combinațiile de parametri ai căii t, unde ‘t’ este o rezistență de acoperire dată. Testarea combinatorie de bază poate fi utilizată în două moduri, care pot fi utilizate separat sau în același timp. Aceste moduri sunt:
- combinații de valori sau parametri de configurare, în care matricele de acoperire sunt utilizate pentru a selecta valorile parametrilor configurabili, eventual cu ajutorul acelorași teste care rulează împotriva tuturor combinațiilor de configurare.
- matricele de acoperire sunt utilizate pentru a selecta valorile datelor de intrare, care apoi devin o parte a cazurilor de testare complete, creând un costum de testare pentru aplicație. Aplicarea acestei forme de testare combinatorie la software-ul din lumea reală este o provocare, deoarece prezintă un grad mai mare de interacțiuni, pentru care pot fi necesare teste foarte mari.
metode utilizate pentru generarea costumelor de testare combinatorie:
popularitatea testării combinatorii a crescut Eminent în ultimii ani. Datorită numeroaselor sale avantaje, este utilizat de testeri software la diferite niveluri de testare. De la testarea modelului, unității, integrării, sistemului și acceptării la testarea neagră, albă, bazată pe model și multe altele, testerii implementează teste combinatorii pentru a obține rezultate eficiente la o rată rentabilă. Mai mult, pentru a genera costume de testare pentru testarea combinatorie, inginerii software folosesc o gamă largă de instrumente, ceea ce simplifică și mai mult procesul de testare a software-ului. Aceste costume de testare combinatorii oferă o acoperire t-way mai mare, chiar dacă generarea de matrice de acoperire t-ways mai mare poate consuma resurse de calcul semnificative și poate produce rezultate mari. În plus, majoritatea algoritmilor pentru testarea combinatorie se concentrează pe cazul special al testării pe 2 căi. De asemenea, pentru a construi manual costumul de testare pentru testarea combinatorie, se folosesc trei metode. Aceste metode oferă diverse avantaje testerului și asigură ieșirea cât mai exactă posibil. Aceste metode / algoritmi sunt:
- metoda algebrică: aceasta oferă construcții eficiente în ceea ce privește timpul, cu toate acestea este dificil să se producă rezultate precise pe o varietate largă și generală de intrări.
- Algoritm Greedy: Acestea sunt tipul de algoritm bine studiat pentru construirea matricelor de acoperire, deoarece s-au găsit relativ eficiente în ceea ce privește timpul și precizia.
- căutare euristică: căutare euristică, în special dacă aplicarea recoacerii stimulate (sa) a oferit cele mai precise rezultate în mai multe cazuri. Această metodă de căutare locală a oferit multe dintre cele mai mici suite de testare pentru diferite configurații de sistem; cu toate acestea, la un cost al timpului de execuție pentru a genera suite de testare.
Testarea Perechilor:
cunoscut sub numele de testare all-pair, testarea în perechi este o metodă combinatorie de testare software care, pentru fiecare pereche de parametri de intrare într-un sistem, testează toate combinațiile discrete posibile ale acestor parametri. Este o tehnică de proiectare a testului care oferă o acoperire de testare sută la sută. Cele mai frecvente erori dintr-un program sunt de obicei găsite și declanșate fie de un parametru de intrare, fie de o interacțiune între perechea de parametri. Erorile care implică interacțiuni între trei sau mai mulți parametri sunt atât progresiv mai puțin frecvente, cât și progresiv mai scumpe de găsit, o astfel de testare are ca limită testarea tuturor intrărilor posibile. În acest caz, o tehnică combinatorie pentru alegerea cazurilor de testare ca toate perechile este un compromis cost-beneficiu foarte util, care permite o reducere semnificativă a numărului de cazuri de testare fără a compromite drastic acoperirea funcțională. Prin urmare, tehnica de testare în perechi este extrem de utilă în proiectarea testului pentru aplicații care implică mai mulți parametri. Costumul său de testare acoperă toate combinațiile și, prin urmare, nu este exhaustiv, dar foarte eficient în găsirea erorilor. Deși testarea în perechi poate reduce dramatic combinațiile, aceasta rămâne cu adevărat eficientă în ceea ce privește detectarea defecțiunilor și este într-adevăr o tehnică inteligentă de proiectare a testelor care promite cele mai bune eforturi de testare și o eficiență excepțională.
beneficiile testării combinatorii:
discuția de mai sus privind testarea combinatorie reflectă semnificația și utilitatea acesteia. Este una dintre cele mai eficiente tehnici de testare software, deoarece testează un software cu mai mulți parametri configurabili. Mai mult, cu ajutorul testării combinatorii se pot detecta cu ușurință defectele interacțiunilor cauzate de combinația de parametri. Un alt avantaj al acestui tip de testare este că produce teste de înaltă calitate la o rată foarte rentabilă, care nu numai că ajută dezvoltatorii de software și testerii, dar beneficiază și Organizația pentru care este dezvoltat produsul. Prin urmare, alte beneficii ale acestei abordări sunt:
- se ocupă de preocupările de acoperire la definirea planului de testare.
- permite planificarea sistematică a testului.
- poate fi aplicat practic oricărui software și la diferite niveluri de abstracții.
- acoperire mai mare de testare cu o mai bună asigurare a calității.
- nu necesită acces la codul sursă intern SUT.
- maximizează valoarea fiecărui scenariu testat.
- reducerea semnificativă a numărului de teste.
- poate controla riscurile și este ușor de revizuit.
concluzie:
sistemele Software sunt complexe și pot suporta un număr exponențial de teste posibile. Orice produs care este lansat fără testarea corespunzătoare poate reprezenta un pericol semnificativ pentru organizație, precum și pentru utilizator. Prin urmare, pentru a se asigura că nu apare o astfel de situație sau problemă după lansarea software-ului, testerii software efectuează teste riguroase. Mai mult, folosesc frecvent testarea combinatorie la diferite niveluri de testare, deoarece poate testa cu ușurință software-ul cu mai mulți parametri configurabili. Pe scurt, testarea combinatorie este utilizată pentru a detecta defectele de interacțiune cauzate de combinația de parametri. Perspectiva cheie care stă la baza eficacității testelor combinatorii a rezultat dintr-o serie de studii și cercetări efectuate de NIST în perioada 1999-2004. Este o abordare extrem de utilă care poate examina sistematic setarea sistemului într-un număr gestionabil de teste. Este o abordare care produce și execută teste de înaltă calitate la o rată foarte rentabilă. În plus, este o tehnică eficientă de planificare a testelor, care poate gestiona preocupările de acoperire cât mai curând posibil. Prin urmare, dacă un inginer software dorește să obțină cele mai bune rezultate de testare, ar trebui să execute cu siguranță testarea combinatorie într-un stadiu incipient al ciclului de viață al dezvoltării Software (SDLC).