Liotustesti ohjelmistossa: Merkitys ja esimerkit
⚡ Älykäs yhteenveto
Soak Testing kohdistaa sovellukseen jatkuvaa, realistista kuormitusta pitkän ajanjakson ajan paljastaakseen ongelmia, jotka ilmenevät vasta ajan myötä. Muistivuodot, yhteyksien uupumus ja hidas suorituskyvyn ajautuminen ovat vikoja, joita se on suunniteltu havaitsemaan.

Mikä on liotustesti?
Liotustestaus on eräänlainen ei-toiminnallinen testaus, jota käytetään mittaamaan ohjelmistosovelluksen suorituskykyä valtavan kuormituksen alaisena pitkän aikaa. Soak-testauksen tavoitteena on varmistaa, kestääkö ohjelmistosovellus paljon käyttöä ja tarkistaa, mitä tapahtuisi suunnittelun odotusten ulkopuolella.
Alla oleva kuva esittää testaussykliä, joka näyttää missä vaiheessa liotustesti (Suorituskykytestin tyyppi) suoritetaan sovelluksella.
Tämän tyyppisessä testauksessa periaatteessa valvotaan järjestelmän sovelluksen muistin käyttöä. Se testaa järjestelmätasolla selvittääkseen, kestääkö järjestelmä erittäin suuria käyttömääriä ja nähdäkseen, mitä tapahtuisi suunnittelun odotusten ulkopuolella.
Miksi liotustestaus?
Järjestelmä voi toimia normaalisti, kun sitä käytetään 2 tuntia, mutta kun samaa järjestelmää käytetään jatkuvasti vähintään 10 tuntia, se voi epäonnistua tai käyttäytyä epänormaalisti/satunnaisesti/se voi kaatua. Tällaisen vian ennustamiseksi suoritetaan liotustesti.
Milloin liotustesti tehdään?
Liottumistesti tulee tehdä seuraavissa tilanteissa: –
- Ennen kuin buildi otetaan käyttöön asiakkaalle eli ennen kuin sovellus julkaistaan tietyllä alustalla, sen on läpäistävä onnistunut sarja kuormitustestiä korkealla tai vastaavalla liikennetasolla. Sen jälkeen liotuskoe suoritetaan. Se auttaa meitä määrittämään, kuinka jokin tietty sovellus suoritetaan pidemmän ajan. Jos muistivuotojen/muistin vioittumisen kaltaisia ongelmia havaitaan ajanjakson aikana eli silloin, kun se on Soakissa, siitä tulee ilmoittaa välittömästi.
- Paras aika liotustestaukseen on viikonloppuisin, sillä sovelluksen on oltava käynnissä niin kauan kuin päivän tai yön ajan. Se riippuu täysin testaustilanteen rajoituksista. Liotustestit ovat yksi tärkeimmistä vaatimustenmukaisuusvaatimuksista, joita jokaisen yrityksen on noudatettava tiukasti.
Liotustestausstrategia
Long Session Soak Testing on strategia, jossa järjestelmä on kuormitettu pidempään.
Yksinkertainen esimerkki on tilanne, jossa käyttäjä pysyy kirjautuneena järjestelmään useiden tuntien ajan suorittaen useita liiketapahtumia. Tällä tavalla syntyy paljon dataa. Järjestelmä/tietokantapalvelin voi olla kuormitettu paljon, mikä voi johtaa järjestelmän/tietokantapalvelimen pysähtymiseen/kaatumiseen.
Pitkän istunnon liotustestauksessa usean päivän (esimerkiksi 30 päivän) toiminnot suoritetaan rajoitetussa aikakehyksessä (esim. 2 päivää). Tämän rajoitetun ajanjakson tapahtumien määrän tulee vastata tai ylittää useiden päivien tapahtumien määrän. Keskitytään käsiteltyjen tapahtumien määrään. Soak Testingin tärkein osa on tarkistaa CPU:n käytettävissä oleva muisti ja käytössä olevan muistin määrä. Meidän on kirjattava muistin käyttö liotustestin alussa ja lopussa. Tarvittaessa muistin käyttö tilat, kuten Java Virtuaalikoneet ovat myös tärkeitä ja niitä on seurattava.
Alla on muutamia muita tarkistuksia, jotka jokaisen käyttäjän/testaajan on tehtävä ennen kuin he aloittavat liotustestauksen:
a) Tarkkaile tietokannan resurssien kulutusta.
b) Tarkkaile palvelimen resurssien kulutusta (ei CPU:n käyttöä).
c) Soak-testin tulee suorittaa realistisella käyttäjien samanaikaisuudella.
Liotustestauksen ominaisuudet
Tavanomaisella liotustestausmenetelmällä tulee olla seuraavat ominaisuudet: –
- Useimpien liotustestien kesto määräytyy usein käytettävissä olevan ajan mukaan.
- Kaikkien sovellusten on toimittava keskeytyksettä, jos se vaatii pidemmän ajan.
- Sen tulisi kattaa kaikki sidosryhmien sopimat skenaariot.
- Useimmiten jokaisessa järjestelmässä on säännöllinen huoltoikkunan ajanjakso, ja tällaisten ikkunajaksojen välinen aika on avaintekijä liotustestin laajuuden määrittämisessä.
Esimerkkejä liotustestauksesta
- Pankkitoimialueen tapauksessa, jossa kauppiailta on paljon dataa, testaaja kuormittaa järjestelmää jatkuvasti 70–150 tunnin ajan tarkistaakseen, miten sovellus käyttäytyy tämän latausjakson aikana.
- Oletetaan, että sisäänkirjautumisia on 33,000 60, jotka täytyy laittaa järjestelmän läpi, se edustaa seitsemän ja puolen päivän toimintaa. Tässä tapauksessa 70-6 tunnin liotustesti voidaan aloittaa perjantai-iltaan noin klo XNUMX mennessä, joka voidaan suorittaa viimeistään Monday aamulla klo 6. Vain tällaisella testillä on mahdollista havaita suorituskyvyn heikkeneminen valvotuissa olosuhteissa.
- Videopelien tapauksessa Puhelinnumero sovellukset jne. sisältävät pelin tai sovelluksen jättämisen käynnissä olevaan tilaan pitkäksi aikaa eri toimintatiloissa - kuten tyhjäkäynnillä, keskeytettynä otsikkonäytössä ja niin edelleen saadakseen selville, pystyykö sovellus käsittelemään jatkuvasti odotettavissa olevaa kuormitusta .
Yleisiä liotustestauksen aikana havaittuja ongelmia
- Muistin varaaminen (muistivuotoja, jotka lopulta johtaisivat muistikriisiin tai pyöristysvirheisiin, jotka ilmenevät vain ajan myötä).
- Tietokannan resurssien käyttö (tietokannan kohdistimien sulkemisen epäonnistuminen joissakin olosuhteissa, mikä johtaisi lopulta koko järjestelmän pysähtymiseen).
- Se voi myös johtaa suorituskyvyn heikkenemiseen eli sen varmistamiseen, että vasteaika pitkän jatkuvan toiminnan jälkeen on yhtä hyvä kuin se oli testin alussa.
- Epäonnistuminen monikerroksisen järjestelmän tasojen välisten yhteyksien sulkemisessa joissakin olosuhteissa, mikä voi pysäyttää järjestelmän osan tai kaikki moduulit.
- Joidenkin toimintojen vasteajan asteittainen heikkeneminen, koska sisäiset tietorakenteet heikkenevät pitkän testin aikana.
Kuinka tämä testi sopii suorituskykytestausperheeseen
Suorituskykytestaus on yleiskäsite. Alla olevat variantit eroavat toisistaan vain käytetyn kuormituksen muodon ja sen keston suhteen, minkä vuoksi ne sekoitetaan niin usein toisiinsa.
| Testityyppi | Kuormituskuvio | Kysymys, johon se vastaa |
|---|---|---|
| Kuormitustestaus | Odotettu huippukuormitus, lyhytaikainen | Saavuttaako järjestelmä tavoitteensa normaalin ruuhka-ajan liikenneolosuhteissa? |
| Stressitestaus | Yli kapasiteetin, kunnes vika | Missä se katkeaa, ja pettääkö se tyylikkäästi? |
| Piikkitestaus | Äkillinen äärimmäinen nousu, sitten vieroitusoireet | Selviääkö se liikenneiskusta ja toipuuko siitä? |
| Kestävyystesti | Normaali kuormitus useita tunteja | Heikentyykö suorituskyky ajan myötä? |
| Liotustestaus | Jatkuva kuormitus pitkän ajan kuluessa | Onko muistivuotoja tai resurssien loppumista? |
| Stabiliteettitestaus | Vaihteleva kuormitus eri olosuhteissa | Pysyykö järjestelmä luotettavana olosuhteiden muuttuessa? |
| Volyymitestaus | Tavalliset käyttäjät, erittäin suuri tietomäärä | Selviytyykö se tietokannan kasvaessa? |
Kestävyys- ja liotuskokeita käsitellään usein synonyymeinä. Yleisesti ottaen ne ovat: molemmat pitävät yllä jatkuvaa kuormitusta pitkään. Siinä missä tiimit erottavat ne toisistaan, kestävyystestaus keskittyy siihen, nousevatko vasteajat, kun taas lyhyiden käyttöiän testaus keskittyy resurssien, kuten muistin, tiedostokahvojen ja yhteyspoolien, kulutukseen. Toisen suorittaminen antaa yleensä todisteita molemmista.
Testin aikana kerättävät keskeiset mittarit
Suorituskykytestaus on vain niin hyvä kuin se, mitä tallennat sen suorituksen aikana. Tallenna nämä kuusi palvelimen ja asiakkaan puolella ja vertaa niitä sitten lähtötilanteeseen mutu-tuntuman sijaan.
| metrinen | Mitä se kertoo sinulle | Varoitusmerkki |
|---|---|---|
| Keskimääräinen vasteaika | Tyypillinen käyttökokemus | Mikä tahansa ylöspäin suuntautuva ajautuminen juoksun poikki |
| 95. persentiilin vasteaika | Hitaimpien käyttäjien kokemukset | Paljon keskiarvon yläpuolella, mikä tarkoittaa epäjohdonmukaisuutta |
| suoritusteho | Käsiteltyjä pyyntöjä sekunnissa | Putoaminen kuorman pysyessä vakiona |
| Virheaste | Epäonnistuneiden tai aikakatkaistujen pyyntöjen osuus | Mikä tahansa sovitun kynnysarvon ylittävä nousu |
| Suorittimen ja muistin käyttö | Palvelimen resurssien käyttöoikeus | Muisto, joka kiipeää eikä koskaan palaa |
| Tietokantayhteydet ja säikeet | Uima-altaan uupumus | Lukemat, jotka kasvavat tasaisesti ilman julkaisua |
Lue keskiarvo ja persentiili yhdessä. Keskiarvo 800 ms ja 95. persentiili 900 ms kuvaavat yhdenmukaista järjestelmää. Sama keskiarvo, jonka 95. persentiili on 9 sekuntia, tarkoittaa, että joka kahdennellakymmenellä käyttäjällä on huonoja aikoja, ja keskiarvo peittelee niitä.
Katso muotoa, älä vain arvoa. Pitkäkestoisessa testissä tasainen resurssiviiva on läpäisty ja nouseva viiva vuoto, vaikka absoluuttinen luku olisikin vielä mukavasti rajan sisällä ajon päättymishetkellä.

