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.

  • 🕒 Pitkä kesto: Realistinen lataus, jota pidetään useita tunteja tai päiviä, ei lyhyt purske.
  • 💧 Ensisijainen Target: Muistivuodot ja kaikki resurssit, jotka on varattu, mutta joita ei koskaan vapautettu.
  • 📉 Hajoamistarkistus: Reaktioaikojen on pysyttävä tasaisina koko juoksun ajan, ei pelkästään aloituksen hyvin.
  • 🗄️ Tietokannan painopiste: Yhteyspoolit, avoimet kursorit ja kasvavat lokitaulukot näkyvät täällä.
  • ⏰ Ajoituksen realismi: Sisällytä ajoitetut työt ja eräikkunat, jotka tapahtuvat liotusjakson aikana.
  • 📊 Tuomion sääntö: Tasainen resurssikäyrä läpäisee käyrän; tasaisesti nouseva käyrä epäonnistuu jopa rajoissa.

Mikä on liotustesti

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.

Liotustestaus

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: –

  1. 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.
  2. 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

  1. Muistin varaaminen (muistivuotoja, jotka lopulta johtaisivat muistikriisiin tai pyöristysvirheisiin, jotka ilmenevät vain ajan myötä).
  2. Tietokannan resurssien käyttö (tietokannan kohdistimien sulkemisen epäonnistuminen joissakin olosuhteissa, mikä johtaisi lopulta koko järjestelmän pysähtymiseen).
  3. 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.
  4. Epäonnistuminen monikerroksisen järjestelmän tasojen välisten yhteyksien sulkemisessa joissakin olosuhteissa, mikä voi pysäyttää järjestelmän osan tai kaikki moduulit.
  5. 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ä.

UKK

Yleisesti ottaen nämä kaksi tarkoittavat samaa asiaa. Tiimit erottavat ne toisistaan ​​siten, että kestävyystestaus seuraa vasteajan liukumista, kun taas liuotustestaus seuraa resurssien kulutusta. Yksi ajokerta antaa yleensä näyttöä molemmista.

Riittävän pitkä kattamaan vähintään yhden kokonaisen liiketoimintasyklin, yleensä 8–72 tuntia. Ajon on sisällettävä kaikki ajoitetut erätyöt tai yölliset prosessit, koska ne usein laukaisevat vuodon.

Muistikäyrä, joka nousee tasaisesti eikä koskaan palaa aiempaan tasoonsa roskienkeruun jälkeen. Itseisarvolla on vähemmän merkitystä kuin kulmakertoimella: mikä tahansa tasainen nouseva trendi on vika.

Tekoälyyn perustuva valvonta analysoi tuntikausia telemetriaa ja merkitsee trendin tarkan muutoksen pisteen, jota on epäkäytännöllistä havaita manuaalisesti tuhansien datapisteiden perusteella.

Osittain. Mallit voivat ekstrapoloida resurssitrendin ja ennustaa niiden ehtymistä aikaisemmin, mutta ennuste vaatii silti todellisen vahvistusajon ennen kuin julkaisupäätös tehdään.

Tiivistä tämä viesti seuraavasti: