Vodič za ispitivanje izvedbe: Što je, vrste, mjerni podaci & Primjer

Sadržaj:

Anonim

Ispitivanje performansi

Ispitivanje performansi je postupak testiranja softvera koji se koristi za testiranje brzine, vremena odziva, stabilnosti, pouzdanosti, skalabilnosti i upotrebe resursa softverske aplikacije pod određenim radnim opterećenjem. Glavna svrha testiranja izvedbe je identificirati i ukloniti uska grla u izvedbi u softverskoj aplikaciji. To je podskup izvedbenog inženjerstva, a poznat i kao "Perf testiranje".

Fokus ispitivanja performansi je provjera softverskog programa

  • Brzina - određuje reagira li aplikacija brzo
  • Skalabilnost - određuje maksimalno opterećenje korisnika koje softverska aplikacija može podnijeti.
  • Stabilnost - određuje je li aplikacija stabilna pri različitim opterećenjima

U ovom vodiču naučit ćete-

  • Što je ispitivanje performansi?
  • Zašto testiranje performansi?
  • Vrste ispitivanja performansi
  • Uobičajeni problemi s izvedbom
  • Postupak ispitivanja izvedbe
  • Mjerni podaci ispitivanja izvedbe: nadzirani parametri
  • Primjeri slučajeva ispitivanja izvedbe
  • Alati za ispitivanje performansi
  • Pitanja

Zašto testiranje performansi?

Značajke i funkcionalnost podržane softverskim sustavom nisu jedina briga. Izvedba softverske aplikacije kao što su vrijeme odziva, pouzdanost, upotreba resursa i skalabilnost su važni. Cilj ispitivanja performansi nije pronalaženje bugova već uklanjanje uskih grla u izvedbi.

Testiranje izvedbe vrši se kako bi se dionicima pružile informacije o njihovoj primjeni u vezi s brzinom, stabilnošću i skalabilnošću. Što je još važnije, ispitivanje performansi otkriva što treba poboljšati prije nego što proizvod izađe na tržište. Bez testiranja performansi, softver će vjerojatno patiti od problema kao što su: sporo pokretanje dok ga istovremeno koristi nekoliko korisnika, nedosljednosti različitih operativnih sustava i loša upotrebljivost.

Ispitivanje performansi utvrdit će ispunjava li njihov softver brzinu, skalabilnost i stabilnost pod očekivanim radnim opterećenjima. Aplikacije poslane na tržište s lošim mjernim podacima zbog nepostojećih ili loših ispitivanja performansi vjerojatno će steći lošu reputaciju i neće ispuniti očekivane prodajne ciljeve.

Također, kritične aplikacije poput programa za lansiranje svemira ili medicinske opreme koja spašava život treba testirati performanse kako bi se osiguralo da rade dulje vrijeme bez odstupanja.

Prema Dunn & Bradstreetu, 59% tvrtki iz Fortune 500 doživljava procijenjeno 1,6 sati zastoja svaki tjedan. Uzimajući u obzir da prosječna tvrtka Fortune 500 s minimalno 10.000 zaposlenih plaća 56 dolara na sat, dio troškova zastoja radne snage takve organizacije iznosio bi 896.000 američkih dolara tjedno, što znači više od 46 milijuna američkih dolara godišnje.

Procjenjuje se da bi samo 5-minutni zastoj Google.com (19. kolovoza 13.) koštao pretraživačkog giganta čak 545.000 američkih dolara.

Procjenjuje se da su tvrtke izgubile prodaju u vrijednosti od 1100 američkih dolara u sekundi zbog nedavnog prekida rada Amazon Web Servicea.

Stoga je ispitivanje performansi važno.

Vrste ispitivanja performansi

  • Ispitivanje učitavanja - provjerava sposobnost aplikacije da radi pod predviđenim opterećenjima korisnika. Cilj je utvrditi uska grla u izvedbi prije pokretanja softverske aplikacije.
  • Testiranje otpornosti na stres - uključuje testiranje aplikacije pod ekstremnim radnim opterećenjima kako bi se vidjelo kako se nosi s velikim prometom ili obradom podataka. Cilj je utvrditi prijelomnu točku aplikacije.
  • Ispitivanje izdržljivosti - vrši se kako bi se osiguralo da softver može podnijeti očekivano opterećenje tijekom dužeg vremenskog razdoblja.
  • Ispitivanje šiljaka - testira reakciju softvera na iznenadne velike skokove tereta koji generiraju korisnici.
  • Ispitivanje volumena - Pod ispitivanjem volumena veliko br. od. Podaci se popunjavaju u bazi podataka i nadgleda se cjelokupno ponašanje softverskog sustava. Cilj je provjeriti izvedbu softverske aplikacije u različitim količinama baze podataka.
  • Testiranje skalabilnosti - Cilj testiranja skalabilnosti je utvrditi učinkovitost softverske aplikacije u "skaliranju" kako bi se podržalo povećanje korisničkog opterećenja. Pomaže u planiranju dodavanja kapaciteta vašem softverskom sustavu.

Uobičajeni problemi s izvedbom

Većina problema s performansama vrti se oko brzine, vremena odziva, vremena učitavanja i slabe skalabilnosti. Brzina je često jedan od najvažnijih atributa aplikacije. Polako pokrenuta aplikacija izgubit će potencijalne korisnike. Testiranje izvedbe vrši se kako bi se osiguralo da aplikacija radi dovoljno brzo da zadrži pažnju i interes korisnika. Pogledajte sljedeći popis uobičajenih problema s performansama i primijetite kako je brzina uobičajeni faktor kod mnogih od njih:

  • Dugo vrijeme učitavanja - Vrijeme učitavanja obično je početno vrijeme potrebno za pokretanje aplikacije. To bi u pravilu trebalo svesti na najmanju moguću mjeru. Iako je neke aplikacije nemoguće učitati za manje od minute, vrijeme učitavanja treba držati manje od nekoliko sekundi ako je moguće.
  • Loše vrijeme odziva - Vrijeme odziva je vrijeme potrebno od kada korisnik unese podatke u aplikaciju dok aplikacija ne iznese odgovor na taj unos. Općenito, ovo bi trebalo biti vrlo brzo. Opet, ako korisnik mora predugo čekati, gubi interes.
  • Loša skalabilnost - Softverski proizvod pati od slabe skalabilnosti kada ne može podnijeti očekivani broj korisnika ili kada ne može primiti dovoljno širok raspon korisnika. Treba izvršiti testiranje učitavanja kako biste bili sigurni da se aplikacija može nositi s predviđenim brojem korisnika.
  • Uska uska grla - uska grla su prepreka u sustavu koja pogoršava ukupne performanse sustava. Usko grlo je kada pogreške kodiranja ili hardverski problemi uzrokuju smanjenje protoka pod određenim opterećenjima. Uska grla često uzrokuje jedan neispravan odjeljak koda. Ključ za rješavanje problema s uskim grlom je pronaći odjeljak koda koji uzrokuje usporavanje i pokušati ga tamo riješiti. Uska gužva obično se popravlja popravljanjem loše pokrenutih procesa ili dodavanjem dodatnog hardvera. Neki uska grla zajedničke izvedbe su
    • Korištenje CPU-a
    • Korištenje memorije
    • Korištenje mreže
    • Ograničenja operativnog sustava
    • Korištenje diska

Postupak ispitivanja izvedbe

Metodologija usvojena za ispitivanje izvedbe može se uvelike razlikovati, ali cilj ispitivanja izvedbe ostaje isti. To vam može pomoći pokazati da vaš softverski sustav zadovoljava određene unaprijed definirane kriterije izvedbe. Ili može pomoći u usporedbi performansi dva softverska sustava. Također vam može pomoći u prepoznavanju dijelova vašeg softverskog sustava koji pogoršavaju njegove performanse.

Ispod je generički postupak o tome kako izvršiti ispitivanje performansi

  1. Prepoznajte svoje testno okruženje - Upoznajte svoje fizičko testno okruženje, proizvodno okruženje i dostupne alate za testiranje. Shvatite detalje hardvera, softvera i mrežne konfiguracije korištene tijekom testiranja prije nego započnete postupak testiranja. Pomoći će testerima u stvaranju učinkovitijih testova. Također će pomoći u prepoznavanju mogućih izazova s ​​kojima se testeri mogu susresti tijekom postupaka ispitivanja performansi.
  2. Utvrdite kriterije prihvaćanja izvedbe - To uključuje ciljeve i ograničenja protoka, vremena odziva i raspodjele resursa. Također je potrebno utvrditi kriterije uspješnosti projekta izvan tih ciljeva i ograničenja. Ispitivači bi trebali biti ovlašteni postavljati kriterije i ciljeve izvedbe jer često projektne specifikacije neće uključivati ​​dovoljno širok spektar mjerila performansi. Ponekad ih možda uopće nema. Kad je moguće pronalaženje slične aplikacije za usporedbu dobar je način postavljanja ciljeva izvedbe.
  3. Planiranje i dizajn izvedbenih testova - Utvrdite kako će se vjerojatnost korištenja razlikovati među krajnjim korisnicima i identificirajte ključne scenarije za testiranje svih mogućih slučajeva korištenja. Potrebno je simulirati razne krajnje korisnike, planirati podatke o ispitivanju performansi i naznačiti koje će se metrike prikupiti.
  4. Konfiguriranje testnog okruženja - Pripremite testno okruženje prije izvođenja. Također, rasporedite alate i druge resurse.
  5. Primijenite dizajn testa - stvorite testove izvedbe prema vašem dizajnu testa.
  6. Pokrenite testove - Izvršite i nadgledajte testove.
  7. Analizirajte, podesite i ponovo testirajte - objedinite, analizirajte i dijelite rezultate ispitivanja. Zatim fino podesite i ponovo testirajte da li postoji poboljšanje ili smanjenje performansi. Budući da poboljšanja općenito postaju manja sa svakim ponovnim testiranjem, zaustavite se kad usko grlo uzrokuje CPU. Tada biste mogli razmotriti mogućnost povećanja snage procesora.

Mjerni podaci ispitivanja izvedbe: nadzirani parametri

Osnovni parametri praćeni tijekom ispitivanja izvedbe uključuju:

  • Upotreba procesora - vrijeme koje procesor potroši izvršavajući neaktivne niti.
  • Korištenje memorije - količina fizičke memorije dostupna procesima na računalu.
  • Vrijeme diska - vrijeme u kojem je disk zauzet izvršavanjem zahtjeva za čitanje ili pisanje.
  • Propusnost - prikazuje bitove u sekundi koje koristi mrežno sučelje.
  • Privatni bajtovi - broj bajtova koje je proces dodijelio, a koji se ne mogu dijeliti s drugim procesima. Oni se koriste za mjerenje curenja i upotrebe memorije.
  • Predana memorija - količina korištene virtualne memorije.
  • Memorijske stranice / sekunda - broj stranica zapisanih na disk ili pročitanih s diska radi rješavanja pogrešaka tvrde stranice. Kvarovi na tvrdoj stranici su kada se kod koji nije iz trenutnog radnog skupa pozove s drugog mjesta i preuzme s diska.
  • Kvarovi stranice / sekunda - ukupna brzina kojom procesor obrađuje stranice s greškama. To se ponovno događa kada postupak zahtijeva kôd izvan svog radnog skupa.
  • CPU prekida u sekundi - prosjek je broj hardverskih prekida koje procesor prima i obrađuje svake sekunde.
  • Duljina reda diska - prosjek je Ne. zahtjeva za čitanje i pisanje u redu čekanja za odabrani disk tijekom intervala uzorkovanja.
  • Duljina mrežnog izlaznog reda - duljina reda izlaznih paketa u paketima. Sve više od dvije znači da treba zaustaviti kašnjenje i uska grla.
  • Mrežni bajt ukupno u sekundi - brzina koja se bajtovima šalje i prima na sučelju, uključujući znakove uokvirivanja.
  • Vrijeme odgovora - vrijeme od kada korisnik unese zahtjev do primanja prvog znaka odgovora.
  • Propusnost - ocijenite da računalo ili mreža prima zahtjeve u sekundi.
  • Količina spremanja veza - broj korisničkih zahtjeva koje ispunjavaju objedinjene veze. Što više zahtjeva ispune veze u spremištu, to će biti bolja izvedba.
  • Maksimalan broj aktivnih sesija - maksimalan broj sesija koje mogu biti aktivne odjednom.
  • Omjeri pogodaka - To ima veze s brojem SQL izraza kojima se upravljaju predmemoriranim podacima umjesto skupih U / I operacija. Ovo je dobro mjesto za početak rješavanja problema s uskim grlom.
  • Hitova u sekundi - br. učitavanja na web serveru tijekom svake sekunde testa učitavanja.
  • Segment vraćanja - količina podataka koja se može vratiti u bilo kojem trenutku.
  • Zaključavanje baze podataka - zaključavanje tablica i baza podataka mora se pratiti i pažljivo podesiti.
  • Najčešća čekanja - nadgledaju se kako bi se utvrdilo koja se vremena čekanja mogu smanjiti kada se radi o brzini preuzimanja podataka iz memorije
  • Brojevi niti - Zdravlje aplikacije može se mjeriti brojem br. niti koje su pokrenute i trenutno aktivne.
  • Skupljanje smeća - To je povezano s vraćanjem neiskorištene memorije natrag u sustav. Prikupljanje smeća treba nadzirati radi njegove učinkovitosti.

Primjeri slučajeva ispitivanja izvedbe

  • Provjerite da vrijeme odziva nije duže od 4 sekunde kada 1000 korisnika istovremeno pristupi web mjestu.
  • Provjerite je li vrijeme odziva aplikacije pod opterećenjem unutar prihvatljivog raspona kada je mrežna povezanost spora
  • Provjerite maksimalan broj korisnika koje aplikacija može obraditi prije pada.
  • Provjerite vrijeme izvršavanja baze podataka kada se istovremeno čita / zapisuje 500 zapisa.
  • Provjerite upotrebu CPU-a i memorije aplikacije i poslužitelja baze podataka u uvjetima vršnog opterećenja
  • Provjerite vrijeme odziva aplikacije u uvjetima niskog, normalnog, umjerenog i velikog opterećenja.

Tijekom stvarnog izvođenja testa izvedbe, nejasni pojmovi poput prihvatljivog dometa, velikog opterećenja itd. Zamjenjuju se konkretnim brojevima. Inženjeri performansi postavljaju ove brojeve prema poslovnim zahtjevima i tehničkom okruženju aplikacije.

Alati za ispitivanje performansi

Na tržištu postoji široka paleta alata za ispitivanje performansi. Alat koji odaberete za testiranje ovisit će o mnogim čimbenicima kao što su vrste podržanih protokola, troškovi licence, hardverski zahtjevi, podrška za platformu itd. Ispod je popis popularno korištenih alata za testiranje.

  • LoadNinja - revolucionira način na koji učitavamo test. Ovaj alat za testiranje opterećenja zasnovan na oblaku omogućuje timovima da snime i odmah reproduciraju sveobuhvatne testove učitavanja, bez složene dinamičke korelacije, i pokreću ove testove učitavanja u stvarnim preglednicima. Timovi su u mogućnosti povećati pokrivenost testom. & smanjiti vrijeme ispitivanja opterećenja za preko 60%.
  • NeoLoad - platforma je za testiranje performansi dizajnirana za DevOps koja se neprimjetno integrira u vaš postojeći cjevovod kontinuirane isporuke. Uz NeoLoad, timovi testiraju deset puta brže nego kod tradicionalnih alata kako bi ispunili novu razinu zahtjeva tijekom cijelog životnog ciklusa razvoja softvera Agile - od komponenti do potpunih testova opterećenja u cijelom sustavu.
  • HP LoadRunner - najpopularniji je alat za testiranje performansi na današnjem tržištu. Ovaj je alat sposoban simulirati stotine tisuća korisnika, stavljajući aplikacije pod stvarna opterećenja kako bi utvrdio njihovo ponašanje pod očekivanim opterećenjima. Loadrunner sadrži virtualni korisnički generator koji simulira postupke živih ljudskih korisnika.
  • Jmeter - jedan od vodećih alata koji se koristi za testiranje učitavanja web i aplikacijskih poslužitelja.

Pitanja

Koje bismo programe trebali testirati?

Testiranje izvedbe uvijek se provodi samo za sustave zasnovane na klijent-poslužitelju. To znači da bilo koja aplikacija koja nije arhitektura zasnovana na klijentu i poslužitelju ne smije zahtijevati testiranje izvedbe.

Na primjer, Microsoft Kalkulator nije zasnovan na klijent-poslužitelju niti pokreće više korisnika; stoga nije kandidat za testiranje izvedbe.

Koja je razlika između ispitivanja performansi i izvedbenog inženjerstva

Važno je razumjeti razliku između ispitivanja performansi i izvedbenog inženjerstva. U nastavku se dijeli razumijevanje:

Ispitivanje izvedbe disciplina je koja se bavi ispitivanjem i izvještavanjem o trenutnim performansama softverske aplikacije pod različitim parametrima.

Izvedbeni inženjering postupak je kojim se softver testira i podešava s namjerom ostvarenja potrebnih performansi. Cilj ovog postupka je optimiziranje najvažnijeg svojstva izvedbe aplikacije, tj. Korisničkog iskustva.

Povijesno gledano, testiranje i podešavanje bili su izrazito odvojeni i često se nadmeću. U posljednjih nekoliko godina, međutim, nekoliko džepova testera i programera neovisno je surađivalo na stvaranju timova za podešavanje. Budući da su ti timovi postigli značajan uspjeh, koncept spajanja ispitivanja performansi s podešavanjem performansi se uhvatio, a sada to nazivamo izvedbenim inženjeringom.

Zaključak

U softverskom inženjerstvu ispitivanje performansi potrebno je prije stavljanja bilo kojeg softverskog proizvoda u promet. Osigurava zadovoljstvo kupaca i štiti ulaganje investitora od neuspjeha proizvoda. Troškovi ispitivanja performansi obično su više nego nadoknađeni boljim zadovoljstvom, vjernošću i zadržavanjem kupaca.