Testarea performanței
Testarea performanței este un proces de testare a software-ului utilizat pentru testarea vitezei, timpului de răspuns, stabilității, fiabilității, scalabilității și utilizării resurselor unei aplicații software cu o anumită sarcină de lucru. Scopul principal al testării performanței este de a identifica și elimina blocajele de performanță din aplicația software. Este un subset al ingineriei performanței și este cunoscut și sub denumirea de „Testarea performanței”.
Obiectivul Testării performanței este verificarea programelor software
- Viteză – Stabilește dacă aplicația răspunde rapid
- Scalabilitate – Determină sarcina maximă de utilizator pe care o poate suporta aplicația software.
- Stabilitate – Determină dacă aplicația este stabilă sub sarcini diferite
De ce se face testarea performanței?
Caracteristicile și funcționalitățile susținute de un sistem software nu sunt singura preocupare. Performanța unei aplicații software, precum timpul de răspuns, fiabilitatea, utilizarea resurselor și scalabilitatea, contează. Scopul testării performanței nu este de a găsi erori, ci de a elimina blocajele de performanță.
Testarea performanței este realizată pentru a oferi părților interesate informații despre aplicația lor în ceea ce privește viteza, stabilitatea și scalabilitatea. Mai important, Testarea performanței descoperă ceea ce trebuie îmbunătățit înainte ca produsul să intre pe piață. Fără testarea performanței, este posibil ca software-ul să sufere de probleme precum: funcționarea lentă în timp ce mai mulți utilizatori îl folosesc simultan, inconsecvențe între sistemele de operare diferite și o utilizare slabă.
Testarea performanței va determina dacă software-ul lor îndeplinește cerințele de viteză, scalabilitate și stabilitate la sarcinile de lucru așteptate. Aplicațiile trimise pe piață cu valori de performanță slabe din cauza testării de performanță inexistente sau slabe sunt susceptibile să câștige o reputație proastă și să nu atingă obiectivele de vânzări așteptate.
De asemenea, aplicațiile esențiale pentru misiune, cum ar fi programele de lansare în spațiu sau echipamentele medicale de salvare a vieții, ar trebui testate de performanță pentru a se asigura că funcționează pentru o perioadă lungă de timp, fără abateri.
Se estimează că doar o perioadă de întrerupere de 5 minute a serviciului Google.com îl va costa pe gigantul căutării până la 545.000 USD.
Se estimează că companiile au pierdut vânzări în valoare de 1100 USD pe secundă din cauza unei întreruperi recente a Amazon Web Service.
Prin urmare, testarea performanței este importantă.
Tipuri de testare a performanței
- Testare de încărcare – verifică capacitatea aplicației de a funcționa sub sarcinile anticipate ale utilizatorului. Obiectivul este de a identifica blocajele de performanță înainte ca aplicația software să intre în funcțiune.
- Testare de stres – implică testarea unei aplicații în condiții extreme de lucru pentru a vedea cum gestionează traficul ridicat sau procesarea datelor. Obiectivul este de a identifica punctul de rupere al unei aplicații.
- Testarea de anduranță – se face pentru a se asigura că software-ul poate face față sarcinii așteptate pe o perioadă lungă de timp.
- Spike testing – testează reacția software-ului la vârfurile bruște mari ale sarcinii generate de utilizatori.
- Testare volum – Sub Testare volum mare nr. de. Datele sunt populate într-o bază de date și este monitorizat comportamentul general al sistemului software. Obiectivul este de a verifica performanța aplicației software în diferite volume de baze de date.
- Testarea de scalabilitate – Obiectivul testării de scalabilitate este de a determina eficiența aplicației software în „scalare” pentru a susține o creștere a încărcăturii utilizatorilor. Vă ajută să planificați suplimentarea capacității sistemului dumneavoastră software.
Probleme comune de performanță
Cele mai multe probleme de performanță se referă la viteză, timpul de răspuns, timpul de încărcare și scalabilitatea slabă. Viteza este adesea unul dintre cele mai importante atribute ale unei aplicații. O aplicație care rulează lentă va pierde utilizatori potențiali. Testarea performanței se face pentru a se asigura că o aplicație rulează suficient de rapid pentru a menține atenția și interesul utilizatorului. Aruncați o privire la următoarea listă de probleme frecvente de performanță și observați cum viteza este un factor comun în multe dintre ele:
- Timp lung de încărcare – Timpul de încărcare este în mod normal timpul inițial necesar unei aplicații pentru a porni. În general, acest lucru ar trebui să fie redus la minimum. În timp ce unele aplicații sunt imposibil de încărcat în mai puțin de un minut, timpul de încărcare ar trebui menținut sub câteva secunde dacă este posibil.
- Timp de răspuns slab – Timpul de răspuns este timpul necesar de la momentul în care un utilizator introduce date în aplicație până când aplicația emite un răspuns la acea intrare. În general, acest lucru ar trebui să fie foarte rapid. Din nou, dacă un utilizator trebuie să aștepte prea mult, își pierde interesul.
- Scalabilitate slabă – Un produs software suferă de scalabilitate slabă atunci când nu poate gestiona numărul așteptat de utilizatori sau când nu găzduiește o gamă suficient de largă de utilizatori. Testarea de încărcare ar trebui făcută pentru a fi sigur că aplicația poate gestiona numărul anticipat de utilizatori.
- Blocajele – Blocajele sunt obstacole într-un sistem care degradează performanța generală a sistemului. Blocarea este atunci când fie erorile de codare, fie problemele hardware provoacă o scădere a debitului sub anumite sarcini. Blocarea este adesea cauzată de o secțiune defectuoasă a codului. Cheia pentru remedierea unei probleme de blocaj este să găsiți secțiunea de cod care provoacă încetinirea și să încercați să o remediați acolo. Blocajul este, în general, remediat fie prin remedierea proceselor de rulare proaste, fie prin adăugarea de hardware suplimentar. Unele blocaje comune ale performanței sunt
- Utilizarea CPU
- Utilizarea memoriei
- Utilizarea rețelei
- Limitări ale sistemului de operare
- Utilizarea discului
Procesul de testare a performanței
Metodologia adoptată pentru testarea performanței poate varia foarte mult, dar obiectivul testelor de performanță rămâne același. Vă poate ajuta să demonstrați că sistemul dumneavoastră software îndeplinește anumite criterii de performanță predefinite. Sau poate ajuta la compararea performanței a două sisteme software. De asemenea, poate ajuta la identificarea părților sistemului software care îi degradează performanța.
Mai jos este un proces generic despre cum să efectuați testarea performanței
- Identificați mediul dvs. de testare - Cunoașteți mediul fizic de testare, mediul de producție și ce instrumente de testare sunt disponibile. Înțelegeți detaliile despre configurațiile hardware, software și rețelei utilizate în timpul testării înainte de a începe procesul de testare. Va ajuta testerii să creeze teste mai eficiente. De asemenea, va ajuta la identificarea posibilelor provocări pe care testatorii le pot întâlni în timpul procedurilor de testare a performanței.
- Identificați criteriile de acceptare a performanței – Acestea includ obiective și constrângeri pentru debit, timpii de răspuns și alocarea resurselor. De asemenea, este necesar să se identifice criteriile de succes ale proiectului în afara acestor obiective și constrângeri. Testerii ar trebui să fie împuterniciți să stabilească criterii și obiective de performanță, deoarece deseori specificațiile proiectului nu vor include o varietate suficient de mare de repere de performanță. Uneori poate să nu existe deloc. Atunci când este posibil, găsirea unei aplicații similare cu care să se compare este o modalitate bună de a stabili obiective de performanță.
- Planificați și proiectați teste de performanță – Determinați modul în care utilizarea este probabil să varieze în rândul utilizatorilor finali și identificați scenariile cheie de testat pentru toate cazurile de utilizare posibile. Este necesar să se simuleze o varietate de utilizatori finali, să se planifice datele de testare a performanței și să se sublinieze ce valori vor fi adunate.
- Configurarea mediului de testare – Pregătiți mediul de testare înainte de execuție. De asemenea, aranjați instrumente și alte resurse.
- Implementați designul testului – Creați testele de performanță conform designului dvs. de testare.
- Executați testele - Executați și monitorizați testele.
- Analizați, reglați și retestați – Consolidați, analizați și partajați rezultatele testelor. Apoi reglați fin și testați din nou pentru a vedea dacă există o îmbunătățire sau o scădere a performanței. Deoarece îmbunătățirile devin în general mai mici cu fiecare retestare, opriți-vă când blocajul este cauzat de CPU. Atunci este posibil să aveți opțiunea de a crește puterea procesorului.
Valori de testare a performanței: parametri monitorizați
Parametrii de bază monitorizați în timpul testării de performanță includ:
- Utilizarea procesorului – o cantitate de timp pe care procesorul îl petrece executând fire de execuție non-inactive.
- Utilizarea memoriei – cantitatea de memorie fizică disponibilă proceselor de pe un computer.
- Timp de disc – perioada de timp pe care discul este ocupat executând o solicitare de citire sau scriere.
- Lățimea de bandă – arată biți pe secundă utilizați de o interfață de rețea.
- Octeți privați – numărul de octeți alocați de un proces care nu pot fi partajați cu alte procese. Acestea sunt folosite pentru a măsura pierderile de memorie și utilizarea.
- Memorie angajată – cantitatea de memorie virtuală utilizată.
- Pagini de memorie/secundă – numărul de pagini scrise sau citite de pe disc pentru a rezolva erorile de pagină. Erori de pagină hard sunt atunci când codul care nu este din setul de lucru curent este apelat din altă parte și preluat de pe un disc.
- Page faults/second – rata totală în care paginile de eroare sunt procesate de procesor. Acest lucru se întâmplă din nou când un proces necesită cod din afara setului său de lucru.
- întreruperi CPU pe secundă – este valoarea medie. numărul de întreruperi hardware pe care un procesor le primește și le procesează în fiecare secundă.
- Lungimea cozii de disc – este valoarea medie. Nu. de cereri de citire și scriere puse în coadă pentru discul selectat în timpul unui interval de probă.
- Lungimea cozii de ieșire în rețea – lungimea cozii de ieșire a pachetelor în pachete. Orice mai mult de două înseamnă că o întârziere și blocajele trebuie oprite.
- Total octeți de rețea pe secundă – rata octeților trimiși și primiți pe interfață, inclusiv caracterele de încadrare.
- Timp de răspuns – timpul de la momentul în care un utilizator introduce o solicitare până la primirea primului caracter al răspunsului.
- Debit – rata un computer sau o rețea primește cereri pe secundă.
- Cantitatea de pooling de conexiuni – numărul de solicitări ale utilizatorilor care sunt îndeplinite de conexiunile grupate. Cu cât sunt mai multe solicitări îndeplinite de conexiunile din piscină, cu atât performanța va fi mai bună.
- Sesiuni active maxime – numărul maxim de sesiuni care pot fi active simultan.
- Ratele de accesare – Acest lucru are de-a face cu numărul de instrucțiuni SQL care sunt gestionate de datele stocate în cache în loc de operațiuni I/O costisitoare. Acesta este un loc bun de început pentru a rezolva problemele de blocaj.
- Lovituri pe secundă – numărul nr. de accesări pe un server web în fiecare secundă a unui test de încărcare.
- Segment de rollback – cantitatea de date care poate fi anulată în orice moment.
- Blocarea bazelor de date – blocarea tabelelor și a bazelor de date trebuie monitorizată și reglată cu atenție.
- Așteptări de top – sunt monitorizate pentru a determina ce timpi de așteptare pot fi redusi atunci când se ocupă cu cât de repede sunt recuperate datele din memorie
- Numărul de fire – sănătatea unei aplicații poate fi măsurată prin numărul. de fire care rulează și sunt active în prezent.
- Colectarea gunoiului – Are de-a face cu returnarea memoriei neutilizate înapoi în sistem. Colectarea gunoiului trebuie monitorizată pentru eficiență.
Exemple de cazuri de testare a performanței
- Verificați timpul de răspuns nu este mai mare de 4 secunde când 1000 de utilizatori accesează site-ul simultan.
- Verificați că timpul de răspuns al aplicației sub încărcare este într-un interval acceptabil atunci când conectivitatea la rețea este lentă
- Verificați numărul maxim de utilizatori pe care aplicația îi poate gestiona înainte de a se bloca.
- Verificați timpul de execuție a bazei de date când 500 de înregistrări sunt citite/scrise simultan.
- Verificați utilizarea CPU și a memoriei aplicației și a serverului de baze de date în condiții de vârf de încărcare
- Verificați timpul de răspuns al aplicației în condiții de încărcare scăzută, normală, moderată și grea.
În timpul executării efective a testului de performanță, termeni vagi precum intervalul acceptabil, sarcina mare etc. sunt înlocuiți cu numere concrete. Inginerii de performanță stabilesc aceste cifre în funcție de cerințele de afaceri și de peisajul tehnic al aplicației.
Instrumente de testare a performanței
Există o mare varietate de instrumente de testare a performanței disponibile pe piață. Instrumentul pe care îl alegeți pentru testare va depinde de mulți factori, cum ar fi tipurile de protocol acceptat, costul licenței, cerințele hardware, suportul platformei etc. Mai jos este o listă a instrumentelor de testare utilizate în mod popular.
- LoadNinja – revoluționează modul în care încărcăm testul. Acest instrument de testare a încărcării bazat pe cloud permite echipelor să înregistreze și să redea instantaneu teste de încărcare cuprinzătoare, fără corelații dinamice complexe și să ruleze aceste teste de încărcare în browsere reale la scară. Echipele pot crește acoperirea testelor. & reduceți timpul de testare a sarcinii cu peste 60%.
- HP LoadRunner – este cel mai popular instrument de testare a performanței de pe piață astăzi. Acest instrument este capabil să simuleze sute de mii de utilizatori, punând aplicațiile sub sarcini reale pentru a determina comportamentul acestora la sarcinile așteptate. Loadrunner are un generator virtual de utilizatori care simulează acțiunile utilizatorilor umani vii.
- Jmeter – unul dintre instrumentele de vârf utilizate pentru testarea încărcării serverelor web și de aplicații.
SpoilerFAQ
Ce aplicații ar trebui să testăm performanța?
Testarea performanței se face întotdeauna numai pentru sisteme bazate pe client-server. Aceasta înseamnă că orice aplicație care nu este o arhitectură bazată pe client-server nu trebuie să necesite testarea performanței.
De exemplu, Microsoft Calculator nu este bazat nici pe client-server și nici nu rulează mai mulți utilizatori; prin urmare, nu este un candidat pentru testarea performanței.
Care este diferența dintre testarea performanței și ingineria performanței
Este important să înțelegem diferența dintre testarea performanței și ingineria performanței. O înțelegere este împărtășită mai jos:
Testarea performanței este o disciplină care se ocupă de testarea și raportarea performanței curente a unei aplicații software sub diferiți parametri.
Ingineria performanței este procesul prin care software-ul este testat și reglat cu intenția de a realiza performanța necesară. Acest proces își propune să optimizeze cea mai importantă trăsătură de performanță a aplicației, adică experiența utilizatorului.
Din punct de vedere istoric, testarea și reglarea au fost domenii distinct distincte și adesea concurente. În ultimii câțiva ani, totuși, mai multe buzunare de testeri și dezvoltatori au colaborat independent pentru a crea echipe de tuning. Deoarece aceste echipe au avut un succes semnificativ, conceptul de a combina testarea performanței cu reglarea performanței a prins, iar acum îl numim ingineria performanței.
Ce aplicații ar trebui să testăm performanța?
Testarea performanței se face întotdeauna numai pentru sisteme bazate pe client-server. Aceasta înseamnă că orice aplicație care nu este o arhitectură bazată pe client-server nu trebuie să necesite testarea performanței.
De exemplu, Microsoft Calculator nu este bazat nici pe client-server și nici nu rulează mai mulți utilizatori; prin urmare, nu este un candidat pentru testarea performanței.
Care este diferența dintre testarea performanței și ingineria performanței
Este important să înțelegem diferența dintre testarea performanței și ingineria performanței. O înțelegere este împărtășită mai jos:
Testarea performanței este o disciplină care se ocupă de testarea și raportarea performanței curente a unei aplicații software sub diferiți parametri.
Ingineria performanței este procesul prin care software-ul este testat și reglat cu intenția de a realiza performanța necesară. Acest proces își propune să optimizeze cea mai importantă trăsătură de performanță a aplicației, adică experiența utilizatorului.
Din punct de vedere istoric, testarea și reglarea au fost domenii distinct distincte și adesea concurente. În ultimii câțiva ani, totuși, mai multe buzunare de testeri și dezvoltatori au colaborat independent pentru a crea echipe de tuning. Deoarece aceste echipe au avut un succes semnificativ, conceptul de a combina testarea performanței cu reglarea performanței a prins, iar acum îl numim ingineria performanței.
Performance Testing
Performance testing-verifică viteza, timpul de răspuns, fiabilitatea, utilizarea resurselor, scalabilitatea unui program software sub volumul lor de lucru preconizat. Scopul testării performanței nu este de a găsi defecte funcționale, ci de a elimina blocajele de performanță în software sau dispozitiv.
Punctul principal de testare a performanței este verificarea unui program software.
Testarea performanței se realizează pentru a oferi părților interesate informații despre aplicația lor cu privire la viteză, stabilitate și scalabilitate. Mai important, Testarea performanței descoperă ceea ce trebuie îmbunătățit înainte ca produsul să intre pe piață. Fără testarea performanței, este posibil ca software-ul să sufere de probleme cum ar fi: rularea lentă, în timp ce mai mulți utilizatori o folosesc simultan, inconsecvențele între diferite sisteme de operare și o utilizare slabă.
Testarea performanței va determina dacă software-ul lor îndeplinește cerințele de viteză, scalabilitate și stabilitate în condițiile de sarcină preconizate. Aplicațiile trimise pe piață cu valori de performanță slabe datorită testării inexistente sau slabe a performanței sunt susceptibile să câștige o reputație proastă și nu reușesc să îndeplinească obiectivele de vânzări preconizate.