performance testing vs load testing vs stress testing
Diferența dintre testarea performanței, testarea sarcinii și testarea stresului - cu exemple
Tutorialul nostru anterior din această serie va fi cel mai bun Ghid de testare a performanței pentru orice începător.
În domeniul testării software-ului, întâlnim termeni precum testarea performanței, testarea sarcinii, testarea stresului etc. Acești termeni sunt adesea înțelese greșit și interpretate ca aceleași concepte.
Cu toate acestea, există o diferență semnificativă între aceste trei tipuri de testare și este important ca un tester să înțeleagă același lucru.
=> Faceți clic aici pentru seria de tutoriale complete de testare a performanței
În acest tutorial, vom discuta fiecare dintre aceste tipuri de testare pentru a înțelege diferențele exacte dintre ele.
Ce veți învăța:
Diferența dintre testarea performanței, testarea sarcinii și testarea la stres
# 1) Testarea performanței
Ce este testarea performanței?
Testarea performanței este testarea care se efectuează pentru a stabili cum funcționează componentele unui sistem într-o anumită situație dată.
Utilizarea resurselor, scalabilitatea și fiabilitatea produsului sunt, de asemenea, validate în cadrul acestei testări. Această testare este subsetul ingineriei de performanță, care se concentrează pe abordarea problemelor de performanță în proiectarea și arhitectura unui produs software.
Imaginea de mai sus ne explică clar că Testarea performanței este supersetul atât pentru testarea sarcinii, cât și pentru testarea stresului. Alte tipuri de testare incluse în testarea performanței sunt testarea Spike, testarea volumului, testarea rezistenței și Testarea scalabilității . Astfel, testarea performanței este practic un termen foarte larg.
întrebări și răspunsuri de interviu pentru analist de afaceri
Obiectiv de testare a performanței:
Scopul principal al testării performanței include stabilirea comportamentului de referință al sistemului. Există o serie de repere definite în industrie care ar trebui îndeplinite în timpul testării performanței.
Testarea performanței nu vizează găsirea defectelor aplicației. De asemenea, nu trece sau nu trece testul. Mai degrabă, se adresează sarcinii critice de setare a etalon și standard pentru o aplicație . Testarea performanței ar trebui făcută foarte precis. Monitorizarea atentă a performanței aplicației / sistemului este principala caracteristică a testării performanței.
Punctul de referință și standardul aplicației ar trebui să fie stabilite în termeni de atribute precum viteza, timpul de răspuns, debitul, utilizarea resurselor și stabilitatea. Toate aceste atribute sunt testate într-un test de performanță.
De exemplu,
De exemplu, puteți testa performanța rețelei aplicației prin graficul „Viteză de conexiune vs. latență”. Latența este diferența de timp dintre datele care trebuie atinse de la sursă la destinație.
O pagină de 70 kb nu ar dura mai mult de 15 secunde pentru încărcarea pentru cea mai proastă conexiune a modemului de 28,8 kbps (latență = 1000 milisecunde), în timp ce pagina de aceeași dimensiune ar apărea în 5 secunde pentru conexiunea medie de 256 kbps DSL (latență = 100 milisecunde).
O conexiune T1 de 1,5 mbps (latență = 50 milisecunde) ar avea valoarea de referință a performanței setată ca 1 secundă pentru a atinge acest obiectiv.
O alta exemplu ar fi cel al unui model Cerere-răspuns. Putem stabili un punct de reper că diferența de timp dintre generarea cererii și confirmarea răspunsului ar trebui să fie în intervalul de x ms (milisecunde) și y ms, unde x și y sunt cifrele standard.
Un test de performanță de succes ar trebui să proiecteze majoritatea problemelor de performanță, care ar putea fi legate de baza de date, rețea, software, hardware etc.
# 2) Testarea sarcinii
Testarea sarcinii este menită să testeze sistemul prin creșterea constantă și constantă a sarcinii pe sistem până când acesta atinge limita de prag. Este un subset de testare a performanței.
Testarea sarcinii se poate face cu ușurință utilizând oricare dintre instrumentele de automatizare adecvate disponibile pe piață. WAPT și LoadRunner sunt două astfel de instrumente celebre care ajută la testarea sarcinii. Testarea încărcării este, de asemenea, renumită prin nume precum Testarea volumului și Testarea rezistenței .
Cu toate acestea, testarea volumului se concentrează în principal pe baze de date. Testarea rezistenței testează sistemul menținându-l sub o sarcină semnificativă pentru o perioadă de timp susținută.
Singurul scop al testării sarcinii este de a atribui sistemului cea mai mare sarcină pe care o poate face pentru a testa rezistența sistemului și a monitoriza rezultatele. Un fapt interesant aici este că uneori sistemul este alimentat cu o sarcină goală pentru a determina comportamentul sistemului în situația de încărcare zero.
Atributele care sunt monitorizate într-un test de încărcare includ performanța de vârf, randamentul serverului, timpul de răspuns sub diferite niveluri de încărcare (sub pragul de pauză), adecvarea mediului H / W, câte aplicații de utilizator poate gestiona fără a afecta performanța.
Obiectiv de testare a încărcării:
Obiectivele testării sarcinii includ:
- Expunerea defectelor într-o aplicație legată de depășirea bufferului, scurgeri de memorie și gestionarea necorespunzătoare a memoriei. Problemele care ar apărea în cele din urmă ca urmare a testării sarcinii pot include probleme de echilibrare a sarcinii, probleme de lățime de bandă, capacitatea sistemului existent etc.
- Pentru a determina limita superioară a tuturor componentelor unei aplicații, cum ar fi o bază de date, hardware, rețea etc., astfel încât aplicația să poată gestiona sarcina anticipată în viitor.
- Pentru a seta SLA-urile pentru aplicație.
De exemplu,
Să luăm în considerare verificarea funcționalității de e-mail a unei aplicații, care ar putea fi inundată cu 1000 de utilizatori la un moment dat. Acum, 1000 de utilizatori pot declanșa tranzacțiile prin e-mail (citire, trimitere, ștergere, redirecționare, răspuns) în multe moduri diferite.
Dacă luăm o tranzacție pe utilizator pe oră, atunci ar fi 1000 de tranzacții pe oră. Simulând 10 tranzacții / utilizatori, am putea încărca testarea serverului de e-mail ocupându-l cu 10000 de tranzacții / oră.
Un alt exemplu de test de încărcare este prezentat în imaginea de mai jos:
Imaginea de mai sus descrie un test de încărcare efectuat în instrumentul numit JMeter . Acest test se face pentru a identifica câți utilizatori poate gestiona un sistem. În acest test, se adaugă 100 de utilizatori după fiecare 30 de secunde până când încărcarea ajunge la 1000 de utilizatori. Fiecare pas durează 30 de secunde pentru a fi finalizat, iar JMeter așteaptă 30 de secunde înainte de a începe următorul pas.
Odată ce încărcarea atinge 1000 de fire, toate acestea vor continua să ruleze timp de 300 de secunde (5 minute) împreună și apoi opresc în cele din urmă 10 fire la fiecare 3 secunde.
# 3) Testarea stresului
În cadrul testării stresului, se desfășoară diverse activități de supraîncărcare a resurselor existente cu locuri de muncă în exces, în încercarea de a sparge sistemul. Testarea negativă , care include îndepărtarea componentelor din sistem, se face și ca parte a testării la stres.
De asemenea cunoscut ca si testarea oboselii , această testare ar trebui să capteze stabilitatea unei aplicații testând-o dincolo de capacitatea sa de lățime de bandă.
Astfel, practic, testarea la stres evaluează comportamentul unei aplicații dincolo de sarcina maximă și condițiile normale.
Scopul testării stresului este de a constata eșecul sistemului și de a monitoriza modul în care sistemul se recuperează cu grație. Provocarea aici este de a configura un mediu controlat înainte de a lansa testul, astfel încât să puteți capta cu precizie comportamentul sistemului în mod repetat în cele mai imprevizibile scenarii.
Problemele care ar apărea în cele din urmă ca urmare a testării stresului pot include probleme de sincronizare, scurgeri de memorie, condiții de cursă etc. Dacă testul de stres verifică modul în care sistemul se comportă în situația unei creșteri bruște a numărului de utilizatori , atunci se numește test de vârf.
Dacă testul de stres urmează să verifice sustenabilitatea sistemului pe o perioadă de timp printr-o creștere lentă a numărului de utilizatori, acesta se numește test de absorbție.
Obiectiv de testare a stresului:
Scopul testării stresului este analizarea rapoartelor post-crash pentru a defini comportamentul aplicației după eșec.
Cea mai mare provocare este să ne asigurăm că sistemul nu compromite securitatea datelor sensibile după eșec. Într-un test de stres de succes, sistemul va reveni la normalitate împreună cu toate componentele sale chiar și după cea mai cumplită defecțiune.
De exemplu,
De exemplu, un procesor de text precum Writer1.1.0 de la OpenOffice.org este utilizat în dezvoltarea de scrisori, prezentări, foi de calcul etc. Scopul testelor noastre de stres este de a-l încărca cu caractere în exces.
Pentru a face acest lucru, vom lipi în mod repetat o linie de date, până când va atinge limita pragului de manipulare a unui volum mare de text. De îndată ce dimensiunea caracterului atinge 65.535 de caractere, ar refuza pur și simplu să accepte mai multe date.
Rezultatul testării stresului pe Writer 1.1.0 produce rezultatul că nu se prăbușește sub stres și gestionează situația cu grație, ceea ce asigură că aplicația funcționează corect chiar și în condiții riguroase de stres.
Un alt exemplu de test de sarcină care descrie un test de vârf prin creșterea bruscă a 7000 de utilizatori este prezentat mai jos:
Întrebări frecvente
După ce am avut suficiente discuții despre testarea performanței, testarea stresului și testarea sarcinii, să analizăm câteva întrebări frecvente legate de acestea pentru care testerii caută un răspuns.
Q # 1) Testarea sarcinii și testarea performanței sunt la fel?
Răspuns: Răspunsul la aceasta este „Nu”. Nu sunt la fel.
Până acum trebuie să fi înțeles clar diferența dintre testarea performanței și testarea sarcinii. Puteți consulta rezumatul tabelar de mai jos pentru a vedea cum testarea performanței și încărcării are obiective diferite, atributele domeniului de studiu și problemele de descoperit.
Q # 2) Este un test nedrept să efectuați testarea stresului în același timp când efectuați testarea sarcinii?
Răspuns: Aceasta este, de asemenea, o întrebare comună în multe interviuri de testare software și examene de certificare, deoarece este nedrept să se facă teste de stres și teste de încărcare în paralel? Răspunsul la aceasta este „Nu”. Nu este nedrept să faci teste de stres în același timp când faci teste de sarcină.
Niciun test nu este nedrept. În calitate de tester, munca ta este să găsești probleme. Cu toate acestea, actualitățile testării software se pot aplica și orice problemă pe care o detectați în această situație poate să nu fie remediată.
Î # 3) Testarea recuperării face parte din testarea performanței?
Răspuns: Da, testarea recuperării este clasificată sub testarea performanței și, uneori, este efectuată și cu testarea sarcinii. În testarea recuperării , este accesat ca și cât de bine o aplicație este capabilă să se recupereze după erori, blocări, defecțiuni hardware și alte probleme similare.
În această activitate, software-ul este forțat să eșueze și apoi se verifică dacă este capabil să se recupereze corect. De exemplu, repornirea bruscă a sistemului atunci când se execută o aplicație și apoi verificarea integrității datelor aplicației.
Q # 4) Testarea performanței necesită codificare?
Răspuns: Testarea performanței nu necesită cunoașterea nivelului avansat de codare. Cu toate acestea, cunoașterea fundamentală a programării este un avantaj suplimentar.
De exemplu, dacă utilizați JMeter, atunci este bine să cunoașteți fundamentele Java. Vă poate ajuta să depanați anumite lucruri și, de asemenea, puteți scrie propriul script.
Q # 5) Ce este testarea Spike în testarea performanței?
Răspuns: În testarea vârfurilor, sarcina este crescută sau scăzută brusc de un număr mare de utilizatori și ulterior se observă comportamentul sistemului. Testarea vârfurilor se face în principal pentru a verifica dacă sistemul este capabil să facă față schimbărilor bruște ale sarcinii.
Diferența dintre testarea sarcinii și a stresului
Pentru a rezuma, să observăm diferențele majore dintre testarea sarcinii, testarea stresului, precum și testarea performanței în tabelul de mai jos:
Test de performanta | Testarea sarcinii | Testare stresanta | |
---|---|---|---|
Domeniu | Superset de testare a sarcinii și a stresului | Un subset de testare a performanței. | Un subset de testare a performanței. |
Domeniul de aplicare | Domeniu foarte larg. Include - Testarea sarcinii, testarea stresului, testarea capacității, testarea volumului, testarea rezistenței, testarea vârfurilor, testarea scalabilității și testarea fiabilității etc. | Domeniu de aplicare mai restrâns în comparație cu testarea performanței. Include teste de volum și teste de rezistență. | Domeniu de aplicare mai restrâns în comparație cu testarea performanței. Include testarea înmuierii și testarea vârfurilor. |
Scop major | Pentru a stabili etalonul și standardele pentru aplicație. | Pentru a identifica limita superioară a sistemului, setați SLA-ul aplicației și vedeți modul în care sistemul gestionează volume mari de încărcare. | Pentru a identifica modul în care sistemul se comportă sub sarcini intense și cum se recuperează după eșec. Practic, pentru a vă pregăti aplicația pentru creșterea neașteptată a traficului. |
Limita de încărcare | Ambele - sub și peste pragul unei pauze. | Până la pragul de pauză | Deasupra pragului de pauză |
Atributele studiate | Utilizarea resurselor, fiabilitatea, scalabilitatea, utilizarea resurselor, timpul de răspuns, randamentul, viteza etc. | performanță de vârf, randament de server, timp de răspuns sub diferite niveluri de încărcare (sub pragul de pauză), adecvarea mediului H / W, numărul de aplicații de utilizator care poate fi gestionat, cerințele de echilibrare a încărcării etc. | Stabilitate dincolo de capacitatea lățimii de bandă, timpul de răspuns (peste pragul de pauză), etc. |
Probleme identificate prin acest tip de testare | Toate erorile de performanță, inclusiv blocarea timpului de execuție, domeniul de aplicare pentru optimizare, problemele legate de viteză, latență, debit, etc. Practic - orice este legat de performanță! | Probleme de echilibrare a sarcinii, probleme de lățime de bandă, probleme de capacitate a sistemului, timp de răspuns scăzut, probleme de transfer etc. | Lacune de securitate cu suprasarcină, probleme de corupție a datelor în situația de suprasarcină, încetineală, scurgeri de memorie etc. |
Diferența dintre testarea sarcinii, a stresului și a volumului
Până acum știm deja despre testarea sarcinii și a stresului, împreună cu diferențele dintre cele două. Să analizăm acum ce este testarea volumului și în ce este diferită de testarea sarcinii și testarea stresului.
Testarea volumului este, de asemenea, un fel de testare a performanței care se concentrează în principal pe baza de date.
În testarea volumului, se verifică modul în care sistemul se comportă împotriva unui anumit volum de date. Astfel, bazele de date sunt umplute cu capacitatea lor maximă și nivelurile lor de performanță, cum ar fi timpul de răspuns și randamentul serverului, sunt monitorizate.
Pentru a fi foarte simplu, diferența dintre testarea sarcinii, stresului și volumului este prezentată mai jos:
Testarea volumului | Testarea sarcinii | Testare stresanta |
---|---|---|
O cantitate imensă de date | Un număr imens de utilizatori | Prea mulți utilizatori, prea multe date, spre blocarea sistemului. |
Concluzie
În acest tutorial, am văzut și am înțeles prin exemple despre modul în care testarea performanței, testarea sarcinii și testarea stresului sunt diferite între ele și care este scopul fiecărui tip de testare.
De asemenea, am aruncat o scurtă privire asupra multor categorii din cadrul testelor de performanță, cum ar fi testarea vârfurilor, testarea recuperării, testarea volumului etc. și am înțeles cum fiecare dintre acestea este diferită una de cealaltă.
Sperăm că acest tutorial ar fi fost de un ajutor imens pentru a înțelege diferența practică dintre testarea performanței, sarcinii și a stresului.
Consultați următorul nostru tutorial pentru a afla mai multe despre testarea funcțională vs. testarea performanței.
=> Vizitați aici pentru seria completă de testare a performanțelor
Lectură recomandată
- Un ghid complet de testare a performanței cu exemple
- Ghid de testare a stresului pentru începători
- Ghid complet pentru testarea sarcinii pentru începători
- Testarea sarcinii, stresului și performanței aplicațiilor web utilizând WAPT
- Testarea încărcării cu tutoriale HP LoadRunner
- Testarea performanței în cloud: Furnizori de servicii de testare a încărcării bazate pe cloud
- Testarea funcțională vs. Testarea performanței: ar trebui să se facă simultan?
- Testarea încărcării folosind LoadUI - Un instrument de testare a încărcării gratuit și open source