Áztatási teszt szoftverben: Jelentés és példák

⚡ Okos összefoglaló

A beázásos tesztelés tartós, valós terhelést jelent egy alkalmazásra hosszabb időn keresztül, hogy feltárja azokat a problémákat, amelyek csak idővel jelentkeznek. A memóriaszivárgások, a kapcsolat kimerülése és a lassú teljesítményeltolódás azok a hibák, amelyeket kiszűrni hivatott.

  • 🕒 Hosszú időtartam: Egy valósághű, órákon vagy napokon át tartó töltés, nem egy rövid sorozat.
  • 💧 elsődleges Target: Memóriaszivárgások és minden olyan erőforrás, amelyet lefoglalnak, de soha nem szabadítanak fel.
  • 📉 Lebomlási ellenőrzés: A válaszidőknek végig állandónak kell maradniuk, nem elég csak jól kezdeni.
  • 🗄️ Adatbázis fókusz: Kapcsolatkészletek, nyitott kurzorok és növekvő naplótáblák jelennek meg itt.
  • ⏰ Időzítési realizmus: Tartalmazza az ütemezett feladatokat és a kötegelt ablakokat, amelyek a bemelegedési időszak alatt történnek.
  • 📊 Ítélet szabálya: Egy lapos erőforrás-görbe áthalad; egy folyamatosan emelkedő még a korlátokon belül is kudarcot vall.

Mi az az áztatási teszt?

Mi az az áztatási teszt?

Áztatási tesztelés a nem funkcionális tesztelés egy fajtája, amelyet egy szoftveralkalmazás teljesítményének mérésére használnak nagy terhelés mellett, hosszabb ideig. A Soak tesztelés célja annak biztosítása, hogy a szoftveralkalmazás nagy mennyiségben használható-e, és hogy ellenőrizze, mi történik a tervezési elvárásain kívül.

Az alábbi kép egy tesztelési ciklust mutat be, amely megmutatja, hogy az áztatási teszt (A teljesítményteszt típusa) alkalmazáson hajtják végre.

Áztatási tesztelés

Az ilyen típusú tesztelés során alapvetően egy rendszerben lévő alkalmazás memóriahasználatát figyelik. Rendszerszinten teszteli, hogy megtudja, kibírja-e a rendszer nagyon nagy mennyiségű felhasználást, és hogy megnézze, mi történik a tervezési elvárásain kívül.

Miért végezzünk áztatási tesztet?

Egy rendszer normálisan viselkedhet 2 órás használat esetén, de ha ugyanazt a rendszert 10 órán keresztül folyamatosan használják, akkor meghibásodhat, vagy rendellenesen/véletlenszerűen viselkedik/összeomolhat. Az ilyen meghibásodás előrejelzésére áztatási tesztet kell végezni.

Mikor kell beáztatási tesztet végezni?

Az átitatási tesztet a következő forgatókönyvek szerint kell elvégezni: –

  1. Mielőtt a buildet üzembe helyezné az ügyfélen, azaz mielőtt egy adott platformon bármilyen alkalmazást kiadnának, sikeres terhelési tesztsorozaton kell keresztülmennie magas vagy azzal egyenértékű forgalmi szinten. Ezek után áztatási vizsgálatot végeznek. Segít meghatározni, hogyan futtassunk egy adott alkalmazást hosszabb ideig. Ha olyan problémákat észlel, mint például memóriaszivárgás/memóriasérülés az adott időszakban, azaz amikor a Soak állapotban van, akkor azonnal jelenteni kell.
  2. Az áztatási teszt elvégzésére a legalkalmasabb a hétvége, mivel az alkalmazásnak akár egy napig vagy éjszakán át működő állapotban kell lennie. Ez teljes mértékben a tesztelési helyzet korlátaitól függ. Az áztatási tesztek az egyik legfontosabb megfelelési követelmény, amelyet minden cégnek nagyon szigorúan be kell tartania.

Áztatási tesztelési stratégia

A Long Session Soak Testing olyan stratégia, ahol a rendszer hosszabb ideig terhelés alatt van.

Egy egyszerű példa az, amikor a felhasználó több órán keresztül bejelentkezve marad a rendszerbe, és számos üzleti tranzakciót hajt végre. Ily módon rengeteg adat jön létre. A rendszer/adatbázis-kiszolgáló nagy terhelést jelenthet, ami a rendszer/adatbázis-kiszolgáló leállását/összeomlását eredményezheti.

A Long Session Soak Testing alatt több napos (mondjuk 30 napos) tevékenységeket hajtanak végre korlátozott időkeretben (mondjuk 2 nap). A tranzakciók számának ebben a korlátozott időkeretben meg kell egyeznie vagy meg kell haladnia a több napos tranzakciók számát. A hangsúlyt a feldolgozott tranzakciók számára kell helyezni. A Soak Testing legfontosabb része a CPU-ban rendelkezésre álló memória és a használatban lévő memória mennyiségének ellenőrzése. Fel kell jegyeznünk a memóriahasználatot az áztatási teszt elején és végén. Ha szükséges, akkor az olyan létesítmények memóriahasználatát, mint pl Java A virtuális gépek szintén fontosak, és figyelni kell őket.

Az alábbiakban felsorolunk néhány további ellenőrzést, amelyeket minden felhasználónak/tesztelőnek el kell végeznie, mielőtt elkezdené az áztatási tesztet:

a) Figyelje az adatbázis erőforrás-felhasználását.

b) Figyelje a szerver erőforrás-felhasználását (kivéve a CPU-használatot).

c) Az áztatási tesztnek reális felhasználói párhuzamossággal kell futnia.

Az áztatási vizsgálat jellemzői

A szabványos beázási vizsgálati módszernek a következő jellemzőkkel kell rendelkeznie: –

  • A legtöbb áztatási teszt időtartamát gyakran a rendelkezésre álló idő határozza meg.
  • Minden alkalmazásnak megszakítás nélkül kell futnia, ha hosszabb ideig tart.
  • Ki kell terjednie az érdekelt felek által elfogadott összes forgatókönyvre.
  • Többnyire minden rendszernek van egy rendszeres karbantartási időszaka, és az ilyen időszakok közötti idő kulcsfontosságú tényező a beázási teszt hatókörének meghatározásában.

Áztatásos tesztelés példái

  • Banki tartomány esetén, amikor nagy mennyiségű adat érkezik a kereskedőktől, a tesztelő 70-150 óráig folyamatosan terhelés alá helyezi a rendszert, hogy ellenőrizze, hogyan viselkedik az alkalmazás ebben a betöltési időszakban.
  • Tegyük fel, hogy 33,000 60 bejelentkezés van, amit át kell vinni a rendszeren, ez hét és fél napos tevékenységet jelent. Ebben az esetben péntek este 70 óra körül egy 6-XNUMX órás áztatási tesztet lehet kezdeni, amelyet Monday reggel 6 órakor. Csak egy ilyen teszttel lehet megfigyelni a teljesítmény bármilyen romlását ellenőrzött körülmények között.
  • Videojátékok esetében Mobil Az alkalmazások stb. magukban foglalják a játék vagy alkalmazás futási állapotban hagyását hosszabb időre, különféle üzemmódokban – például üresjáratban, szüneteltetésben a címképernyőnél stb. .

Az áztatási teszt során megfigyelt gyakori problémák

  1. Memóriafoglalás (memóriaszivárgás, amely végül memóriaválságot vagy kerekítési hibákat eredményez, amelyek csak idővel jelentkeznek).
  2. Adatbázis-erőforrás kihasználtság (Az adatbázis-kurzorok bezárásának elmulasztása bizonyos feltételek mellett, ami végül a teljes rendszer leállását eredményezi).
  3. Ez a teljesítmény romlásához is vezethet, vagyis annak biztosítására, hogy a válaszidő hosszú ideig tartó tevékenység után olyan jó legyen, mint a teszt elején volt.
  4. A többszintű rendszer rétegei közötti kapcsolatok lezárásának elmulasztása bizonyos körülmények között, ami a rendszer néhány vagy összes modulját leállíthatja.
  5. Egyes funkciók válaszidejének fokozatos csökkenése, mivel a belső adatszerkezetek kevésbé hatékonyak egy hosszú teszt során.

Hogyan illeszkedik ez a teszt a teljesítménytesztelési családba

A teljesítménytesztelés egy gyűjtőfogalom. Az alábbi változatok csak az alkalmazott terhelés alakjában és annak időtartamában különböznek, ezért gyakran összekeverik őket egymással.

Teszt típusa Betöltési minta Kérdés, amit megválaszol
Terhelési tesztelés Várható csúcsterhelés, rövid időtartam Eléri-e a rendszer a céljait normál csúcsforgalom mellett?
Stressz tesztelés Kapacitáson túl növelve, egészen meghibásodásig Hol törik el, és kecsesen meghibásodik?
Tüskék tesztelése Hirtelen extrém hullám, majd megvonás Túléli és felépül egy közlekedési sokk után?
Tartóssági vizsgálat Normál terhelés sok órán át Idővel romlik a teljesítmény?
Áztatási tesztelés Tartós terhelés hosszabb időn keresztül Vannak memóriaszivárgások vagy erőforrás-kimerülések?
Stabilitási vizsgálat Változó terhelés a körülményektől függően Megbízható marad-e a rendszer a változó körülmények ellenére is?
Térfogatvizsgálat Átlagos felhasználók, nagyon nagy adatmennyiség Vajon bírja az adatbázis növekedését?

A tartóssági és az átitatási vizsgálatot gyakran szinonimaként kezelik. Gyakori használatuk szerint mindkettő hosszú ideig tartós terhelést tart. Ahol a csapatok különbséget tesznek közöttük, a tartóssági tesztelés arra összpontosít, hogy a válaszidők felfelé csúsznak-e, míg a tartóssági tesztelés az erőforrás-fogyasztásra, például a memóriára, a fájlkezelőkre és a kapcsolatkészletekre összpontosít. Az egyik futtatása általában mindkettőre bizonyítékot szolgáltat.

A teszt során rögzítendő legfontosabb mutatók

Egy teljesítményfutás csak annyira jó, mint amit futás közben rögzítesz. Rögzítsd ezt a hat adatot a szerver és a kliens oldalon, majd hasonlítsd össze őket az alapvonallal, ne pedig a megérzéseiddel.

Metric Mit mond neked Figyelmeztető jel
Átlagos válaszidő Tipikus felhasználói élmény Bármilyen felfelé sodródás a pályán
95. percentilis válaszidő A leglassabb felhasználók tapasztalatai Messze az átlag felett, ami következetlenséget jelent
áteresztőképesség Másodpercenként kezelt kérések Esés, miközben a terhelés állandó marad
Hibaarány Sikertelen vagy időtúllépéses kérelmek aránya Bármilyen emelkedés a megállapodott küszöbérték felett
CPU- és memóriahasználat Szerver erőforrás-tartalék Emlék, mely felkúszik és soha nem tér vissza
Adatbázis-kapcsolatok és szálak Medence kimerülése Olyan számok, amelyek folyamatosan növekednek kiadás nélkül

Olvasd le az átlagot és a percentilist együtt. Egy 800 ms-os átlag 900 ms 95. percentilissel egy konzisztens rendszert ír le. Ugyanez az átlag 9 másodperces 95. percentilissel azt jelenti, hogy minden huszadik felhasználó rosszul érzi magát, és az átlag ezt elrejti.

A formára is figyelj, ne csak az értékre. Bármely hosszú ideig futó tesztben a lapos erőforrás-vonal sikeres, az emelkedő pedig szivárgást jelent, még akkor is, ha az abszolút szám a teszt végén még kényelmesen a határértéken belül van.

GYIK

A köznyelvben a kettő ugyanazt jelenti. Ahol a csapatok megkülönböztetik őket, a tartóssági tesztelés a válaszidő eltolódását figyeli, míg a tartóssági tesztelés az erőforrás-fogyasztást. Egyetlen futtatás általában mindkettőre bizonyítékot szolgáltat.

Elég hosszú ahhoz, hogy legalább egy teljes üzleti ciklust lefedjen, általában 8-72 órát. A futtatásnak tartalmaznia kell minden ütemezett kötegelt feladatot vagy éjszakai folyamatot, mivel ezek gyakran kiváltják a szivárgást.

Egy olyan memóriagörbe, amely folyamatosan emelkedik, és a szemétgyűjtés után soha nem tér vissza korábbi szintjére. Az abszolút érték kevésbé számít, mint a meredekség: minden következetesen felfelé irányuló trend hiba.

A mesterséges intelligencia alapú monitorozás órányi telemetriai adatot elemez, és pontosan jelzi a trendváltozás pontját, amit manuálisan több ezer adatpont alapján nem praktikus észrevenni.

Részben. A modellek extrapolálhatják az erőforrás-trendeket és korábban is megjósolhatják a kimerülést, de az előrejelzés megerősítéséhez még mindig valódi futtatásra van szükség, mielőtt döntés születne a kiadásról.

Foglald össze ezt a bejegyzést a következőképpen: