Ce este testarea de stres în testarea software-ului?

⚡ Rezumat inteligent

Testarea la stres împinge o aplicație dincolo de limitele sale normale de funcționare pentru a găsi punctul de rupere, a confirma că defecțiunile sunt gestionate cu eleganță și a demonstra că sistemul își revine fără probleme odată ce sarcina extremă este eliminată.

  • 🔘 Definiție: Testarea la stres măsoară robustețea și gestionarea erorilor sub o sarcină mult mai mare decât cea oferită vreodată de traficul de producție.
  • ☑️ Obiectiv: Testul localizează punctul exact de defecțiune și verifică recuperabilitatea odată ce sarcina revine la normal.
  • Domeniu de aplicare: Variantele distribuite, aplicative, tranzacționale, sistemice și exploratorii pun fiecare accentul pe un strat diferit al sistemului.
  • 🧪 Procesul: Planifică, scrie scenariul, execută, analizează, apoi ajustează — de obicei pe parcursul a trei sau patru cicluri complete înainte de a fi atinse obiectivele de referință.
  • 🛠️ scule: LoadRunner, Apache JMeter, Tester de stres și NeoÎncărcați și generați utilizatori virtuali concurenți și capturați date de răspuns.
  • 📊 Valori: Rezultatul este cuantificat de randament, paginile pe secundă, timpul de accesare, timpul până la primul octet și conexiunile eșuate.

Testarea la stres în testarea software

Ce este testarea de stres?

Testare stresanta este un tip de testare software care verifică stabilitatea și fiabilitatea unei aplicații software. Scopul testării la stres este de a măsura robustețea și capacitățile de gestionare a erorilor software-ului în condiții de încărcare extrem de mare și de a se asigura că software-ul nu se blochează în situații de criză. Testarea se face în mod deliberat dincolo de punctele normale de funcționare și evaluează modul în care software-ul se comportă în condiții extreme.

În cadrul testării la stres, aplicația testată (AUT) este solicitată pentru o perioadă scurtă de timp pentru a-i descoperi capacitatea de rezistență. Cea mai importantă utilizare a testării la stres este de a determina limita la care sistemul, software-ul sau hardware-ul se defectează. De asemenea, se verifică dacă sistemul demonstrează o gestionare eficientă a erorilor odată ce această limită este depășită.

In Inginerie SoftwareTestarea la stres este adesea listată alături de Testare de anduranță, dar cele două diferă: testarea la stres aplică o sarcină anormal de mare într-o rafală scurtă pentru a găsi punctul de rupere, în timp ce testarea de anduranță (immersie) menține o sarcină moderată timp de ore pentru a expune degradarea treptată.

Captura de ecran de mai jos arată un bloc mare de date copiat de pe o pagină web.

Copierea unui bloc foarte mare de date dintr-o pagină web pentru a suprasolicita o aplicație desktop

Aplicația testată este suprasolicitată atunci când 5 GB de date sunt copiate de pe site și lipite în Notepad. Notepad este acum suprasolicitat și returnează un mesaj de eroare „Nu răspunde”, exact așa cum arată următoarea captură de ecran.

Blocnotesul afișează un mesaj de eroare „Nu răspunde” după ce 5 GB de date sunt lipite în el

Același principiu se scalează direct la sistemele pe partea de server.

Nevoia de teste de stres

Luați în considerare următoarele exemple în timp real în care utilizarea testării la stres devine evidentă:

  • În timpul festivalului, un magazin onlineping site-ul poate înregistra o creștere bruscă a traficului sau atunci când anunță o vânzare.
  • Când un blog este menționat într-un ziar important, acesta se confruntă cu o creștere bruscă a traficului.

Este imperativ să se efectueze teste de stres pentru a gestiona astfel de vârfuri anormale de trafic. Nerespectarea acestui trafic brusc poate duce la pierderi de venituri și reputație.

Testarea la stres este, de asemenea, extrem de valoroasă din următoarele motive:

  • Verifică dacă sistemul funcționează în condiții anormale.
  • Confirmă că este afișat un mesaj de eroare corespunzător în timp ce sistemul este sub stres.
  • O defecțiune a sistemului în condiții extreme ar putea duce la pierderi enorme de venituri.
  • Este mai bine să fii pregătit pentru condiții extreme executând teste de stres în avans.

Următoarea secțiune prezintă ce trebuie să demonstreze un test de stres reușit.

Obiectivele testării de stres

Scopul testării la stres este de a analiza comportamentul sistemului după o defecțiune. Pentru ca testarea la stres să aibă succes, un sistem trebuie să afișeze un mesaj de eroare adecvat în timp ce se află în condiții extreme.

Pentru a efectua teste de stres, se utilizează uneori seturi masive de date, iar aceste date se pot pierde în timp ce sistemul se defectează. Testerii ar trebui să se asigure că aceste date legate de securitate nu se pierd în timpul testelor de stres.

Scopul principal al testării la stres este de a se asigura că sistemul își revine după o defecțiune, o proprietate numită recuperabilitate. Testare de recuperare apoi verifică în detaliu procedura de restaurare.

Testarea la sarcină vs. testarea la stres

Ambele tehnici aparțin Test de performanta familie, deci sunt ușor de confundat. Diagrama de mai jos prezintă o comparație între cele două profile de sarcină.

Grafic care compară profilul de sarcină constantă al testării de sarcină cu profilul de sarcină crescătoare al testării de stres

Încărcarea testelor Testare stresanta
Încărcarea testelor testează comportamentul sistemului în condiții normale de sarcină de lucru; simulează sarcina de lucru reală așteptată. Testarea la stres testează comportamentul sistemului în condiții extreme și se efectuează până la defectarea sistemului.
Testarea de încărcare nu strică sistemul. Testarea la stres încearcă în mod deliberat să spargă sistemul prin copleșirea lui cu date sau prin privarea lui de resurse.

Profilurile conexe includ Testarea Spike (o explozie scurtă și bruscă), Testarea volumului (date voluminoase în loc de mulți utilizatori) și Testare de scalabilitate (marjă de creștere).

Tipuri de teste de stres

Următoarele sunt tipurile de teste de stres, explicate pe rând.

Testarea distribuită a stresului

În sistemele distribuite client-server, testarea se face pe toți clienții de pe server. Rolul serverului de stres este de a distribui un set de teste de stres tuturor clienților de stres și de a track starea fiecărui client. După ce un client contactează serverul, serverul adaugă numele clientului și începe să trimită date pentru testare. Figura de mai jos arată cum serverul de stres ajunge la unii clienți, dar nu și la alții.

Configurarea testelor de stres distribuite în care un server de stres ajunge la Client1 și Client2, dar pierde contactul cu Client3 și Client4

Între timp, mașinile client trimit un semnal, sau o pulsație, confirmând că sunt încă conectate la server. Dacă serverul nu primește niciun semnal de la o mașină client, acea mașină trebuie investigată în continuare pentru depanare. În figură, serverul se poate conecta cu 2 clienți (Client1 și Client2), dar nu poate trimite sau primi un semnal de la Clientul 3 și Clientul 4.

O rulare peste noapte este cea mai bună opțiune pentru aceste scenarii de testare la stres. Fermele mari de servere au nevoie de o metodă mai eficientă pentru a determina ce computere au avut erori de stres care trebuie investigate.

Testarea la stres a aplicațiilor

Această testare se concentrează pe găsirea defectelor legate de blocarea și blocarea datelor, problemele de rețea și blocajele de performanță într-o singură aplicație.

Testarea la stres tranzacțional

Efectuează teste de stres pe una sau mai multe tranzacții între două sau mai multe aplicații. Este utilizat pentru reglarea fină și optimizarea sistemului.

Testarea sistemică la stres

Aceasta este o testare la stres integrată care poate fi executată pe mai multe sisteme care partajează același server. Este utilizată pentru a găsi defecte în cazul în care o aplicație blochează datele altei aplicații.

Testarea exploratorie la stres

Acesta este tipul de testare la stres utilizat pentru a testa sistemul cu parametri sau condiții neobișnuite care este puțin probabil să apară într-un scenariu real. Este folosit pentru a găsi defecte în situații neașteptate, cum ar fi:

  • Un număr mare de utilizatori s-au conectat simultan.
  • Un scaner de viruși pornește simultan pe toate mașinile.
  • O bază de date intră offline în timp ce este accesată de pe un site web.
  • Un volum mare de date introdus simultan în baza de date.

Indiferent de varianta aplicabilă, secvența de execuție rămâne aceeași.

Cum se face testul de stres?

Procesul de testare la stres se poate realiza în 5 etape principale:

  • Pasul 1) Planificarea testului de stres: Aici colectați datele sistemului, analizați sistemul și definiți obiectivele testului de stres.
  • Pasul 2) Creați scripturi de automatizare: În această fază, creați scripturile de automatizare pentru testarea la stres și generați datele de testare pentru scenariile de stres.
  • Pasul 3) Execuția scriptului: În această etapă, rulați scripturile de automatizare pentru testarea la stres și stocați rezultatele testării la stres.
  • Pasul 4) Analiza rezultatelor: În această etapă, analizați rezultatele testului de stres și identificați blocajele.
  • Pasul 5) Ajustări și optimizare: În această etapă, reglați fin sistemul, modificați configurațiile și optimizați codul cu scopul de a atinge standardul dorit.

În cele din urmă, rulați din nou întregul ciclu pentru a determina dacă modificările au produs rezultatele dorite. De exemplu, nu este neobișnuit să fie nevoie de 3 până la 4 cicluri ale procesului de testare la stres înainte de a fi atinse obiectivele de performanță, așa că scripturile sunt în mod normal întreținute împreună cu regres pe.

Instrumente recomandate pentru testarea la stres

Cele patru instrumente de mai jos acoperă majoritatea nevoilor, de la suite pentru întreprinderi până la o opțiune gratuită open-source.

LoadRunner

LoadRunner este un instrument de testare a încărcării utilizat pe scară largă, vândut acum de OpenText în edițiile Professional, Enterprise și Cloud după trecerea de la HP la Micro Focus pentru a OpenTextRezultatele testelor de sarcină produse de LoadRunner sunt tratate ca punct de referință.

JMeter

Apache JMeter este un instrument de testare open-source. Este pur Java aplicație pentru testarea la stres și a performanței și este destinată să acopere tipuri de teste precum cele de sarcină, funcționale și de stres. Versiunile actuale 5.6.x ale Apache JMeter necesita Java 8 sau mai recent, cu Java 17 recomandate.

Tester de stres

Acest instrument oferă o analiză extinsă a performanței aplicațiilor web, prezintă rezultatele în format grafic și este ușor de utilizat. Nu este nevoie de scripting la nivel înalt, ceea ce menține rentabilitatea investiției la un nivel...tractiv pentru echipe mai mici.

NeoA incarca

NeoA incarca, acum parte din Tricentis portofoliu, este un instrument popular pentru testarea web și Aplicații mobilePoate simula mii de utilizatori pentru a evalua performanța aplicațiilor sub sarcină și pentru a analiza timpii de răspuns. De asemenea, acceptă teste de performanță, sarcină și stres integrate în cloud și se scalează bine.

Mai multe opțiuni sunt enumerate în ghidul pentru instrumente de testare a performanței; oricare ar fi aleasă, rezultatul acesteia are o valoare doar în raport cu metricile de mai jos.

Valori pentru testarea de stres

Metricile ajută la evaluarea performanței unui sistem și sunt, în general, studiate la sfârșitul testului de stres. Metricile utilizate în mod obișnuit sunt grupate în trei familii.

Măsurarea scalabilității și performanței

  • Pagini pe secundă: Măsoară câte pagini au fost solicitate pe secundă.
  • Randament: O metrică de bază — dimensiunea datelor de răspuns pe secundă.
  • runde: Numărul de ori în care au fost planificate scenarii de testare față de numărul de ori în care un client le-a executat.

Răspuns la cerere

  • Momentul de acces: Timpul mediu de preluare a unei imagini sau a unei pagini.
  • Timp până la primul octet: Timpul necesar pentru returnarea primului octet de date sau informații.
  • Timp de afișare a paginii: Timpul necesar pentru a recupera toate informațiile de pe o pagină.

eşecurile

  • Conexiuni eșuate: Numărul de conexiuni eșuate refuzate de client (semnal slab).
  • Runde eșuate: Numărul de runde care eșuează.
  • Accesări eșuate: Numărul de încercări eșuate ale sistemului (linkuri nefuncționale sau imagini nevăzute).

Secțiunea de încheiere enumeră situațiile care justifică cel mai adesea un test de stres.

Exemple de teste de stres

Testarea la stres își câștigă locul ori de câte ori se așteaptă ca un eveniment să împingă traficul mult dincolo de nivelul de referință zilnic:

  • Un site de comerț electronic care anunță o vânzare de produse la festival.
  • Un site de știri în momentul unui eveniment major.
  • O comisie de educație publică rezultatele examenului.
  • Site-uri de socializare, bloguri și aplicații mobile în timpul unui moment viral.

În fiecare caz, testul monitorizează resurse precum memoria, procesorul și rețeaua, verifică dacă apar mesaje de eroare corespunzătoare sub stres și confirmă că sistemul revine la normal ulterior. Se încadrează în ciclul de viață al testării software ca o verificare nefuncțională alături de Testarea sistemului și setul mai larg de tipuri de testare software.

Întrebări frecvente

Nu. Testarea la stres aplică o sarcină anormal de mare pentru o scurtă perioadă de explozie pentru a localiza punctul de rupere. Înmuiere sau testare de anduranță menține o sarcină realistă timp de mai multe ore pentru a expune pierderile de memorie și a încetini degradarea.

Testarea vârfurilor lansează o creștere bruscă și foarte scurtă a sarcinii asupra sistemului și măsoară cât de repede acesta se scalează și se recuperează. Testarea la stres crește constant sarcina până la eșec, astfel încât să răspundă la problema limitei, mai degrabă decât la cât de repede reacționează sistemul.

Rulați una înainte de fiecare lansare majoră, înainte de orice vârf de trafic previzibil, cum ar fi o zi de vânzări sau rezultate, și după modificări arhitecturale ale memorării în cache, pooling-ului de conexiuni sau scalării automate. Multe echipe o repetă și trimestrial, ca o verificare de referință.

Folosește un mediu dimensionat cât mai aproape de producție, pe cât permite bugetul, deoarece hardware-ul subdimensionat deplasează punctul de rupere. Populați-l cu date mascate sau sintetice ale volumului de producție și nu îndreptați niciodată o rulare de stres distructivă asupra înregistrărilor clienților în timp real.

Modelele de învățare automată utilizează telemetria producției pentru a construi profiluri realiste de trafic de vârf, a semnala curbe anormale ale timpului de răspuns pe care un prag fix le-ar rata și a corela metricile resurselor pentru a indica blocajul. Mai multe platforme comerciale generează acum scenarii de încărcare pe baza modelelor de utilizare observate.

Da. Schițe Copilot JMeter planuri de testare, scripturi k6 sau Gatling, generatoare de date parametrizate și pași din conducta CI dintr-un prompt în limbaj simplu. Tratați rezultatul ca o primă schiță: timpii de gândire, ritmul și aserțiunile necesită în continuare validarea de către un tester.

Dezvăluie adevăratul plafon de capacitate, dovedește gestionarea erorilor și reduce riscul de întrerupere în timpul vârfurilor de activitate. Limitările sunt costul — mediile și licențele la scară de producție sunt scumpe — plus efortul de scriptare și rezultatele care se schimbă ori de câte ori se modifică infrastructura.

Inginerii de performanță sau testerii specializați îl execută, de obicei cu dezvoltatori și personal operațional la dispoziție pentru a citi metricile serverului. Se află după ce funcționează testarea sistemului, odată ce versiunea este suficient de stabilă încât erorile să indice limite de capacitate și nu erori.

Rezumați această postare cu: