Mis on STRESS-testimine tarkvara testimises?
Stressitestimine
Stressitestimine on tarkvara testimise tüüp, mis kontrollib tarkvararakenduse stabiilsust ja töökindlust. Stressitestimise eesmärk on mõõta tarkvara töökindlust ja vigade käsitlemise võimet üliraskete koormuse tingimustes ning tagada, et tarkvara ei jookseks kokku raskustes. See testib isegi tavapärastest tööpunktidest kaugemale ja hindab, kuidas tarkvara äärmuslikes tingimustes töötab.
Tarkvaratehnikas tuntakse stressitestimist ka kui Vastupidavuse testimine. Stressitestimise ajal on AUT-d lühikese aja jooksul stressis, et teada saada selle vastupidavust. Kõige silmapaistvam kasutusala Stressitestimise eesmärk on määrata kindlaks piir, mille juures süsteem või tarkvara või riistvara puruneb. Samuti kontrollib see, kas süsteem näitab äärmuslikes tingimustes tõhusat veahaldust.
Testitav rakendus on pingestatud, kui veebisaidilt kopeeritakse 5 GB andmeid ja kleebitakse märkmikusse. Notepad on pinge all ja annab veateate „Ei vastanud”.
Vajadus stressitesti järele
Vaatleme järgmisi reaalajas näiteid, kus saame teada stressitesti kasutamisest.
- Festivali ajal võib veebipoodide sait olla tunnistajaks liikluse kasvule või siis, kui see kuulutab välja müüki.
- Kui ajaveebi mainitakse juhtivas ajalehes, kogeb see liikluse järsku tõusu.
Selliste ebatavaliste liikluse hüpetega toimetulemiseks tuleb kindlasti läbi viia stressitest. Selle äkilise liiklusega toimetulemata jätmine võib kaasa tuua tulude ja maine kaotuse.
Stressitestimine on äärmiselt väärtuslik ka järgmistel põhjustel:
- Kontrollimaks, kas süsteem töötab ebatavalistes tingimustes.
- Asjakohase veateate kuvamine, kui süsteem on pinge all.
- Süsteemi rike äärmuslikes tingimustes võib kaasa tuua tohutu tulukaotuse
- Parem on olla äärmuslikeks tingimusteks valmis, tehes stressitesti.
Stressitestimise eesmärgid
Stressitestimise eesmärk on analüüsida süsteemi käitumist pärast riket. Stressitestimise õnnestumiseks peaks süsteem ekstreemsetes tingimustes kuvama sobiva veateate.
Stressitestimise läbiviimiseks võidakse mõnikord kasutada suuri andmekogumeid, mis võivad stressitestimise ajal kaduma minna. Testijad ei tohiks stressitesti tehes neid turvalisusega seotud andmeid kaotada.
Stressitestimise peamine eesmärk on tagada, et süsteem taastub pärast riket, mida nimetatakse nn taastatavus.
Koormustest vs stressitestimine
Koormuse testimine | Stressitestimine |
---|---|
Koormuse testimine on testida süsteemi käitumist tavalistes töökoormuse tingimustes ja see on lihtsalt testimine või simuleerimine tegeliku töökoormusega | Stressitestimise eesmärk on testida süsteemi käitumist äärmuslikes tingimustes ja seda tehakse kuni süsteemi tõrkeni. |
Koormustestimine ei riku süsteemi | stressitestid üritavad süsteemi murda, testides tohutute andmete või ressurssidega. |
Stressitestimise tüübid
Allpool on toodud stressitestide tüübid ja neid selgitatakse järgmiselt.
Jaotatud stressitestid:
Hajutatud klient-server süsteemides tehakse testimine kõigi serveri klientide vahel. Stressiserveri ülesanne on levitada stressitestide komplekti kõigile stressiklientidele ja jälgida kliendi seisundit. Pärast kliendi serveriga ühenduse võtmist lisab server kliendi nime ja hakkab testimiseks andmeid saatma.
Samal ajal saadavad kliendimasinad signaali või südamelööke, et see on serveriga ühendatud. Kui server ei saa klientmasinalt signaale, tuleb seda silumiseks täiendavalt uurida. Jooniselt võib server ühenduse luua kahe kliendiga (Client2 ja Client1), kuid ta ei saa saata ega vastu võtta klientidelt 2 ja 3 signaali.
Ööjooks on nende stressitestimise stsenaariumide läbiviimiseks parim valik. Suured serveripargid vajavad tõhusamat meetodit, et teha kindlaks, millistel arvutitel on olnud stressitõrkeid, mida tuleb uurida.
Rakenduse stressitestimine:
See testimine keskendub andmete lukustamise ja blokeerimisega seotud defektide, võrguprobleemide ja rakenduse jõudluse kitsaskohtade leidmisele.
Tehingu stressitestimine:
See teeb stressitesti ühe või mitme tehingu kohta kahe või enama rakenduse vahel. Seda kasutatakse süsteemi peenhäälestamiseks ja optimeerimiseks.
Süsteemne stressitestimine:
See on integreeritud stressitestimine, mida saab testida mitmes samas serveris töötavas süsteemis. Seda kasutatakse defektide leidmiseks, kui ühe rakenduse andmed blokeerivad teise rakenduse.
Uurimuslik stressitestimine:
See on üks stressitesti tüüpe, mida kasutatakse süsteemi testimiseks ebatavaliste parameetrite või tingimustega, mille esinemine reaalses stsenaariumis on ebatõenäoline. Seda kasutatakse defektide leidmiseks ootamatute stsenaariumide korral, näiteks
- Samal ajal logis sisse suur hulk kasutajaid
- Kui viirusetõrje käivitub kõigis masinates korraga
- Kui andmebaas on veebisaidilt juurdepääsu ajal võrguühenduseta,
- Kui andmebaasi sisestatakse korraga suur hulk andmeid
Kuidas stressitesti teha?
Stressitestimise protsessi saab läbi viia 5 peamises etapis:
1. samm) stressitesti kavandamine. Siin kogute süsteemiandmeid, analüüsite süsteemi, määratlete stressitesti eesmärgid
Samm 2) Looge automatiseerimisskriptid: Selles etapis loote stressitestimise automatiseerimisskriptid, genereerite stressistsenaariumide testiandmed.
Samm 3) Skripti täitmine: Selles etapis käivitate stressitestimise automatiseerimisskriptid ja salvestate stressitulemused.
4. etapp) tulemuste analüüs: Selles etapis analüüsite stressitesti tulemusi ja tuvastate kitsaskohad.
5. samm) kohandamine ja optimeerimine. Selles etapis viimistlete süsteemi, muudate konfiguratsioone, optimeerite koodi eesmärgiga, et see vastaks soovitud võrdlusalusele.
Lõpuks käivitate uuesti kogu tsükli, et teha kindlaks, kas muudatused on andnud soovitud tulemusi. Näiteks pole ebatavaline, et jõudluseesmärkide saavutamiseks tuleb läbida 3–4 stressitesti protsessi.
Stressitestimiseks soovitatavad tööriistad
LoadRunner
HP LoadRunner on laialdaselt kasutatav koormustestimise tööriist. Loadrunneri kujundatud koormustesti tulemusi peetakse võrdlusaluseks.
Jmeter
Jmeter on avatud lähtekoodiga testimistööriist. See on puhas Java rakendus stressi ja Jõudluse testimine. Jmeter on mõeldud katma selliseid teste nagu koormus, funktsionaalsus, pinge jne. See vajab toimimiseks JDK 5 või uuemat versiooni.
Stress Tester
See tööriist pakub veebirakenduse toimivuse põhjalikku analüüsi, annab tulemusi graafilises vormingus ja seda on äärmiselt lihtne kasutada. Kõrgetasemelist skriptimist pole vaja ja see annab hea investeeringutasuvuse.
Neo koormus
See on turul saadaolev populaarne tööriist veebi ja mobiilne rakendusi. See tööriist võib simuleerida tuhandeid kasutajaid, et hinnata rakenduse jõudlust koormuse all ja analüüsida reageerimisaegu. Samuti toetab see pilve integreeritud toimivust, koormus- ja stressitestimist. Seda on lihtne kasutada, see on kulutõhus ja tagab hea mastaapsuse.
Stressitestimise mõõdikud
Mõõdikud aitavad hinnata süsteemi jõudlust ja üldiselt uuritakse neid stressitesti lõpus. Tavaliselt kasutatavad mõõdikud on –
Skaleeritavuse ja jõudluse mõõtmine
- Lehekülgi sekundis: mõõdab, mitu lehekülge on taotletud sekundis
- Läbilaskevõime: põhimõõdik – vastuse andmete suurus sekundis
- Voorud: teststsenaariumite kavandamise kordade arv versus kliendi sooritatud kordade arv
Rakenduse vastus
- Tabamisaeg: keskmine aeg pildi või lehe toomiseks
- Aeg esimese baidini: andmete või teabe esimese baidi tagastamiseks kulub aeg
- Lehekülje aeg: kogu lehel oleva teabe hankimiseks kulub aeg
Tõrked
- Ebaõnnestunud ühendused: ebaõnnestunud ühenduste arv, millest klient keeldus (nõrk Signal)
- Ebaõnnestunud voorud: ebaõnnestunud voorude arv
- Ebaõnnestunud tabamused: süsteemi ebaõnnestunud katsete arv (katkised lingid või nähtamatud pildid)
Järeldus
Stressitestimise eesmärk on kontrollida süsteemi äärmuslikes tingimustes. See jälgib süsteemiressursse, nagu mälu, protsessor, võrk jne, ning kontrollib süsteemi võimet taastada tavaolekut. See kontrollib, kas süsteem kuvab stressi ajal asjakohaseid veateateid.
Stressitestimise näide
- E-kaubanduse veebisait kuulutab välja festivalimüügi
- Uudiste veebisait mõne suurema sündmuse ajal
- Haridusameti tulemuste koduleht
- Suhtlusvõrgustikud või ajaveebid, rakendused jne