Leotustest tarkvaras: tähendus ja näited

⚡ Nutikas kokkuvõte

Soak Testing rakendab rakendusele pikema aja jooksul püsivat ja realistlikku koormust, et paljastada probleeme, mis ilmnevad alles aja jooksul. Mälu lekked, ühenduste ammendumine ja aeglase jõudluse triiv on defektid, mida see on loodud avastama.

  • 🕒 Pikk kestus: Realistlik koormus, mida hoitakse mitu tundi või päeva, mitte lühike purske.
  • 💧 esmane Target: Mälulekked ja kõik ressursid, mis on eraldatud, kuid mitte kunagi vabastatud.
  • 📉 Lagunemise kontroll: Reaktsiooniajad peavad kogu jooksu vältel ühtlased olema, mitte ainult hästi alustama.
  • 🗄️ Andmebaasi fookus: Siin kuvatakse ühendusbasseinid, avatud kursorid ja kasvavad logitabelid.
  • ⏰ Ajastuse realism: Lisage ajastatud tööd ja partiiaknad, mis toimuvad leotusperioodil.
  • 📊 Kohtuotsus reegel: Lame ressursikõver läbib; pidevalt tõusev kõver ebaõnnestub isegi teatud piirides.

Mis on leotustest

Mis on leotamise testimine?

Leotamise testimine on mittefunktsionaalse testimise tüüp, mida kasutatakse tarkvararakenduse jõudluse mõõtmiseks suure koormuse korral pikema aja jooksul. Soak-testimise eesmärk on tagada, kas tarkvararakendus püsib suure kasutusmahuga, ja kontrollida, mis juhtuks väljaspool selle disaini ootusi.

Allolev pilt kujutab testimistsüklit, mis näitab, millises etapis leotuskatse (Jõudluskatse tüüp) tehakse rakendusel.

Leotamise testimine

Seda tüüpi testimise puhul jälgitakse põhiliselt süsteemi rakenduse mälukasutust. See testib süsteemi tasemel, et teha kindlaks, kas süsteem peab vastu väga suurele kasutusmahule ja näha, mis juhtuks väljaspool selle disaini ootusi.

Miks leotamise testimist teha?

Süsteem võib käituda normaalselt, kui seda kasutatakse 2 tundi, kuid kui sama süsteemi kasutatakse pidevalt 10 tundi või kauem, võib see ebaõnnestuda või käituda ebaharilikult/juhuslikult/jooksuda. Sellise rikke ennustamiseks viiakse läbi leotuskatse.

Millal teha leotamise testi?

Leotamiskatse tuleks teha järgmistel juhtudel: –

  1. Enne ehitatud rakenduse kliendile juurutamist, st enne mis tahes rakenduse avaldamist konkreetsel platvormil, peab see läbima eduka koormustestide seeria kõrgel või samaväärsel liiklustasemel. Peale seda tehakse leotuskatse. See aitab meil kindlaks teha, kuidas mõnda konkreetset rakendust pikema aja jooksul käivitada. Kui perioodil, st kui see on Soakis, leitakse selliseid probleeme nagu mälulekked/mälu riknemine, tuleb sellest kohe teatada.
  2. Parim aeg leotuskatse tegemiseks on nädalavahetused, kuna rakendus peab töötama nii kaua kui päev või öö. See sõltub täielikult testimisolukorra piirangutest. Leotustestid on üks olulisemaid vastavusnõudeid, mida iga ettevõte peab väga rangelt järgima.

Leotamise testimise strateegia

Long Session Soak Testing on strateegia, kus süsteem on pikemat aega koormatud.

Lihtne näide on see, kus kasutaja jääb mitmeks tunniks süsteemi sisse logitud, sooritades mitmeid äritehinguid. Sel viisil luuakse palju andmeid. Süsteemil/andmebaasiserveril võib olla palju koormust, mis võib põhjustada süsteemi/andmebaasiserveri seiskumise/krahhi.

Pika seansi leotamise testimise korral tehakse mitu päeva (näiteks 30 päeva) tegevust piiratud aja jooksul (näiteks 2 päeva). Tehingute arv selle piiratud aja jooksul peaks vastama mitme päeva tehingutele või ületama seda. Tähelepanu tuleks pöörata töödeldud tehingute arvule. Leotamise testimise kõige olulisem osa on kontrollida protsessoris saadaolevat mälu ja kasutatava mälumahtu. Peame salvestama mälukasutuse leotustesti alguses ja lõpus. Vajadusel siis selliste rajatiste mälukasutust nagu Java Virtuaalmasinad on samuti olulised ja neid tuleb jälgida.

Allpool on veel mõned kontrollid, mida iga kasutaja/testija peab enne leotustestiga alustamist läbi viima.

a) Jälgige andmebaasi ressursside tarbimist.

b) Jälgige serveri ressursitarbimist (va CPU kasutus).

c) Leotamise test peaks toimuma kasutajate realistliku samaaegsusega.

Leotamise testimise omadused

Standardsel leotamise katsemeetodil peaksid olema järgmised omadused:

  • Enamiku leotustestide kestus määratakse sageli olemasoleva aja järgi.
  • Iga rakendus peab töötama ilma katkestusteta, kui see nõuab pikemat aega.
  • See peaks hõlmama kõiki stsenaariume, milles sidusrühmad on kokku leppinud.
  • Enamasti on igal süsteemil regulaarne hooldusakna periood ja selliste akende vaheline aeg on leotustesti ulatuse määramisel peamine tegur.

Leotestimise näited

  • Pangandusdomeeni puhul, kus kaupmeestelt on palju andmeid, laadib tester süsteemi pidevalt 70–150 tunniks, et kontrollida, kuidas rakendus sellel laadimisperioodil käitub.
  • Oletame, et on 33,000 60 sisselogimist, mis tuleb süsteemist läbi viia, see tähistab seitset ja poolt päeva tegevust. Sel juhul võib reede õhtuks kella 70 paiku alustada 6-XNUMX-tunnise leotustestiga, mille saab lõpetada Monday hommikul kell 6 hommikul. Ainult sellise testiga on kontrollitud tingimustes võimalik jälgida toimivuse halvenemist.
  • Videomängude puhul mobiilne rakendused jne hõlmavad mängu või rakenduse jätmist pikemaks ajaks töötavasse olekusse, erinevates töörežiimides – näiteks tühikäigul, pealkirjakuval peatatud jne, et teada saada, kas rakendus suudab pidevalt oodatava koormusega hakkama .

Leotamiskatse ajal täheldatud tavalised probleemid

  1. Mälu eraldamine (mälu lekked, mis võivad lõpuks põhjustada mälukriisi või ümardamisvigu, mis ilmnevad ainult aja jooksul).
  2. Andmebaasi ressursside kasutamine (andmebaasi kursorite sulgemata jätmine teatud tingimustel, mis võib lõpuks põhjustada kogu süsteemi seiskumise).
  3. See võib viia ka jõudluse halvenemiseni, st tagada, et reaktsiooniaeg pärast pikka pidevat tegevust on sama hea kui testi alguses.
  4. Mitmetasandilise süsteemi tasandite vaheliste ühenduste sulgemine teatud asjaoludel, mis võib mõne või kõik süsteemi moodulid seiskuda.
  5. Mõnede funktsioonide reaktsiooniaja järkjärguline halvenemine sisemiste andmestruktuuride tõttu muutub pika testi ajal vähem tõhusaks.

Kuidas see test sobib jõudlustestide perekonda

Jõudlustestid on üldmõiste. Allpool loetletud variandid erinevad ainult rakendatava koormuse kuju ja selle kestuse poolest, mistõttu neid nii sageli segamini aetakse.

Katse tüüp Koormusmuster Küsimus, millele see vastab
Koormustestimine Eeldatav tippkoormus, lühiajaline Kas süsteem saavutab oma eesmärgid tavapärase tippkoormuse korral?
Stressitestimine Suurendatud üle võimekuse kuni rikkeni Kus see puruneb ja kas see puruneb graatsiliselt?
Spike testimine Äkiline äärmuslik tõus, seejärel võõrutusnähud Kas see jääb ellu ja taastub liiklusšoki järel?
Vastupidavuse testimine Tavaline koormus, mida hoitakse mitu tundi Kas jõudlus aja jooksul halveneb?
Leotustestimine Pidev koormus pikema aja jooksul Kas esineb mälulekkeid või ressursside ammendumist?
Stabiilsuse testimine Erinev koormus erinevates tingimustes Kas süsteem jääb töökindlaks ka muutuvate tingimuste korral?
Mahu testimine Tavakasutajad, väga suur andmemaht Kas see saab andmebaasi kasvades hakkama?

Vastupidavus- ja leotuskatseid käsitletakse sageli sünonüümidena. Üldkasutuses on need järgmised: mõlemad hoiavad pikka aega püsivat koormust. Seal, kus meeskonnad neid eristavad, keskendub vastupidavustestimine sellele, kas reageerimisajad pikenevad, samas kui leotustestimine keskendub ressursside tarbimisele, näiteks mälule, failikäepidemetele ja ühenduste kogumitele. Ühe käivitamine annab tavaliselt tõendeid mõlema kohta.

Testi ajal kogutavad peamised mõõdikud

Jõudluskäivituse kvaliteet sõltub sellest, mida sa selle käivitamise ajal salvestad. Salvesta need kuus tulemust serveri ja kliendi poolel ning võrdle neid seejärel pigem algtaseme kui kõhutunde põhjal.

meetriline Mida see teile ütleb Hoiatusmärk
Keskmine reageerimisaeg Tüüpiline kasutajakogemus Igasugune ülespoole triiv jooksu ulatuses
95. protsentiili reageerimisaeg Kõige aeglasemate kasutajate kogemus Kaugel üle keskmise, mis tähendab ebajärjekindlust
Läbilaskevõime Sekundis töödeldud päringuid Langeb, kui koormus jääb konstantseks
Veamäär Ebaõnnestunud või aegunud taotluste osakaal Igasugune tõus üle kokkulepitud läve
Protsessori ja mälu kasutamine Serveri ressursi reserv Mälu, mis ronib ja ei naase enam kunagi
Andmebaasiühendused ja lõimed Basseini kurnatus Loendused, mis kasvavad pidevalt ilma vabastamiseta

Loe keskmist ja protsentiili koos. Keskmine 800 ms 95. protsentiiliga 900 ms kirjeldab järjepidevat süsteemi. Sama keskmine 95. protsentiiliga 9 sekundit tähendab, et ühel kahekümnest kasutajast on halb olla ja keskmine varjab seda.

Jälgi kuju, mitte ainult väärtust. Mis tahes pikas testis on lame ressursijoon läbitud ja tõusev joon leke, isegi kui absoluutarv on testi lõppedes endiselt mugavalt piiri sees.

KKK

Üldkasutuses on need kaks sama tähendusega. Kui meeskonnad neid eristavad, siis vastupidavustest jälgib reaktsiooniaja triivi, samas kui leotustest jälgib ressursitarbimist. Üks katse annab tavaliselt tõendeid mõlema kohta.

Piisavalt pikk, et katta vähemalt üks täielik äritsükkel, tavaliselt 8 kuni 72 tundi. Töö peab sisaldama kõiki ajastatud partiitöid või öiseid protsesse, kuna need sageli lekke vallandavad.

Mälukõver, mis tõuseb pidevalt ega naase pärast prügikoristust enam kunagi oma varasemale tasemele. Absoluutväärtus on vähem oluline kui kalle: iga järjepidev tõusutrend on defekt.

Tehisintellektil põhinev jälgimine analüüsib tundide viisi telemeetriat ja märgistab täpse punkti, kus trend muutub, mida on ebapraktiline käsitsi tuhandete andmepunktide põhjal tuvastada.

Osaliselt. Mudelid suudavad ressursitrendi ekstrapoleerida ja ammendumist varem ennustada, kuid enne vabastamisotsuse tegemist vajab ennustus kinnitamiseks siiski reaalset testimist.

Võta see postitus kokku järgmiselt: