Stabilitásteszt a szoftvertesztelésben

⚡ Okos összefoglaló

A stabilitástesztelés azt vizsgálja, hogy egy alkalmazás megbízhatóan működik-e a változó körülmények között, és nem csak egyetlen fix terhelés alatt. Feltárja az összeomlásokat, az erőforrás-kimerülést és a degradációt, amelyet egy rövid funkcionális futtatás soha nem ér el.

  • 🏗️ Fő cél: Győződjön meg arról, hogy a rendszer megbízható marad változó terhelés és hosszabb üzemidő mellett is.
  • ⚠️ Elkerült kockázat: A kipróbálatlan rendszerek gyártás közben, senki által begyakorolt ​​körülmények között meghibásodnak.
  • 📊 elsődleges Signals: CPU, memória, lemez és szálak száma traca teljes időtartam alatt.
  • 🔄 Nem funkcionális: A stresszes helyzetekben mutatott viselkedést méri, nem pedig a tulajdonságok helyességét.
  • 🧪 Teszt tervezése: Az esetek a tartós CPU-terhelést, a memória-nyomást és az ismétlődő tranzakciókat célozzák meg.
  • 📈 Jelentés: A trendgrafikonok fontosabbak az egyszeri leolvasásoknál, mivel az eltérés a hiba.

Stabilitásteszt a szoftvertesztelésben

Mi a stabilitásvizsgálat?

Stabilitási teszt egy olyan nem funkcionális szoftverteszt, amelyet egy szoftveralkalmazás hatékonyságának és képességének mérésére végeznek, hogy hosszú ideig folyamatosan működjenek. A stabilitásteszt célja annak ellenőrzése, hogy a szoftveralkalmazás a normál használat során bármikor összeomlik-e vagy meghibásodik-e a teljes felhasználási tartomány gyakorlásával.

A stabilitástesztelés célja a kifejlesztett termék normál működési kapacitáson túli hatékonyságának ellenőrzése, gyakran töréspontig. Nagyobb jelentősége van a hibakezelésnek, a szoftver megbízhatóságának, a nagy terhelés alatti termék robusztusságának és méretezhetőségének, mint a rendszer normál körülmények közötti viselkedésének ellenőrzése.

A stabilitási tesztelés értékeli a stabilitási problémákat. Ez a tesztelés elsősorban a szoftverkomponens maximális igénybevételére szolgál. Ez egy nem funkcionális technika.

Stabilitási teszt
Stabilitási teszt

A stabilitásvizsgálatot terhelési ill állóképességi tesztelés.

Kockázatok, ha a tesztelés alatt álló rendszer nem esett át stabilitási teszten

Egy olyan tesztelés alatt álló alkalmazásnál, ahol nagyszámú felhasználót vezetnek be, és amelyeknek hónapokig kell futniuk újraindítás nélkül, számos probléma fordulhat elő:

Az esetleges hibával szembesülni lehet,

  • a rendszer lelassul
  • a rendszer működési problémákba ütközik
  • a rendszer vezetékes viselkedést mutat
  • a rendszer teljesen összeomlik

A szoftverfejlesztésben, Stabilitási teszt jellemzően magában foglalja a rendszer gyakorlását nagy felhasználókkal (virtuális), és a teljesítményparaméterek mérését annak ellenőrzésére, hogy a rendszer képes-e támogatni a várható terhelést.

Miért végezzen stabilitástesztet?

Ez a fajta tesztelés segít a felhasználóknak megérteni, hogyan fog működni a rendszer a valós élethelyzetekben.

Ezért a stabilitásteszt segítségével ellenőrizheti,

  • Bízzon a tesztelt rendszer stabilitásában.
  • Győződjön meg arról, hogy rendszere képes kezelni a nagy programokat.
  • Figyelje rendszere hatékonyságát.
  • Tesztelje a rendszer stabilitását feszültség alatt.

Fontos szerepet játszik a termékfejlesztésben, mivel a tesztelés alatt álló szoftvertermék korlátainak meghatározására szolgál a megjelenés előtt, vagy a további fejlesztésre szoruló területek meghatározására a termék életbe lépése vagy a gyártás során.

A stabilitástesztelési technikák nagyon gyakori példája az

OnLINE Skomlóping Portals: A stabilitásteszt ellenőrzi, hogyan fog viselkedni a webhely, amikor –

  • Magas Csúcsidőben bevitt adatmennyiség
  • Találatok száma egy adott időpontban
  • oldalbetöltési probléma ugyanakkor
  • A rendszer viselkedése
  • A rendszer érzékenysége és még sok más szóba kerül Stabilitási teszt

Egy másik példa

A CPU alatti stabilitásteszt népszerű formája a teszt Teljesítményfelmérés technika. Ez a teszt ellenőrzi a processzor stabilitását, és figyeli a teljesítményét is, ahogy a processzor terhelése növekszik.

Stabilitási teszt végrehajtása

  • A tesztelés hatókörének és céljának meghatározásához gondoskodnunk kell arról, hogy az alkalmazáskiszolgáló(k) ne omoljanak össze a terhelési teszt végrehajtása során.
  • Az üzleti problémák meghatározásához ellenőrizze a rendszer teljesítményét és betöltését a végfelhasználói szempontok szerint.
  • A különböző felelősségi körök és szerepkörök hozzárendeléséhez, mint például a tesztterv létrehozása, Teszt eset tervezés, teszteset áttekintés, teszt végrehajtás stb.
  • Annak biztosítása érdekében, hogy a teszt leszállítandó a megadott időn belül
  • A megfelelő Terhelésvizsgálat eszközök és tapasztalati csapat van jelen ehhez.
  • A teszteléssel járó kockázat és költség mérése. Ez határozza meg az egyes végrehajtások költségét a CPU kihasználtság és a memória tekintetében.
  • Meghatározza a Disszidál trackirály és jelentések, valamint a hozzájuk tartozó térképping a követelményekkel.

Teszteset a CPU-teljesítmény stabilitásának teszteléséhez

  • A rendszer felső határának ellenőrzésére.
  • A rendszer összeomlása vagy helyreállítása.
  • Kérelemenként végrehajtott tranzakciók teljes száma.
  • Függetlenül attól, hogy a tranzakciós válasz állandó marad-e vagy növekszik-e az idő múlásával.
  • Hogyan viselkedik a rendszer nagy terhelés mellett.
  • Reakciója és viselkedése nagy terhelés mellett.

Tesztjelentések stabilitásvizsgálathoz

A tesztvégrehajtások során számos statisztikai adatot gyűjtenek és mérnek; ezeket a számokat elemzik a jelentés elkészítése és a lehetséges teljesítményproblémák azonosítása érdekében.

Példák a tesztelés során gyűjtött statisztikákra:

  • Tranzakciós válaszidők: A teszt során a tranzakciók végrehajtásához szükséges átlagos idő. Ez a statisztika azt értékeli, hogy a szerver teljesítménye a rendszer számára meghatározott elfogadható minimális és maximális tranzakcióteljesítmény-periódusokon belül van-e. Ez az információ értékeli, hogy a webszerver mennyi időt vesz igénybe a kérés feldolgozása során, és elküldi az alkalmazásszervernek, amely a legtöbb esetben egy adatbázis-kiszolgálóhoz küldenek kérést.
  • Találatok másodpercenként: A felhasználók által a szerveren elért találatok száma. Ezek a statisztikák előnyösek a felhasználók által generált terhelések számának meghatározásában, tekintettel a találatok számára.
  • Teljesítmény: A webszerver átviteli sebessége a teszt során, amelyet bájtokban mérnek. Az áteresztőképesség azt az adatmennyiséget jelenti, amelyet a felhasználók egy adott időpontban kaptak a szervertől. Ez a statisztika segít értékelni a felhasználók által generált terhelés mértékét.
  • Tranzakció másodpercenként: Ez a teszt során végrehajtott (sikeres és sikertelen) tranzakciók teljes száma. Ez a statisztika segít a rendszer tényleges tranzakcióterhelésének ellenőrzésében.
  • CPU: A teszt során elköltött CPU százalékos kihasználtság.
  • memória: Memóriahasználat a teszt során.
  • Korong: a teszt során elköltött lemezterületek kihasználása.

A stabilitásvizsgálat alapjai

Stabilitási teszt a Teljesítményteszt alá tartozik – egy olyan technika, amelyet a szoftver bizonyos minőségi jellemzőinek, például a stabilitás, a megbízhatóság és a rendelkezésre állás ellenőrzésére hajtanak végre.

Ez a tesztelés annak meghatározására szolgál, hogy egy rendszer vagy alrendszer milyen gyorsan teljesít egy adott munkaterhelés mellett.

A teljesítménytesztnek számos típusa van, és ezek egyike a stabilitásteszt.

  • Stressz tesztelés: Ez egy tesztelési típus, amely a rendszer kapacitásán túl ellenőrzi a rendszer robusztusságát.
  • Tüskék tesztelése: A rendszer viselkedésének ellenőrzésére szolgál a rendszer terhelésének azonnali növelésével. A cél annak ellenőrzése, hogy a rendszer mikortól lesz teljesítményprobléma, vagy múlik el.
  • Méretezhetőség tesztelése: A rendszer képességeinek ellenőrzésére szolgál. Mennyire fog hatékonyan viselkedni a rendszer a növekvő igények, a méret és a mennyiség változása esetén.
  • Térfogatvizsgálat: Ez egy nem funkcionális tesztelési technika, ahol a tesztelt szoftvereket hatalmas mennyiségű adatnak vetik alá, és ennek megfelelően ellenőrzik és igazolják a rendszer viselkedését.
  • Terhelési vagy stabilitási vizsgálat: (Fentebb már szó volt róla)

Stabilitásvizsgáló eszközök

A teljesítményteszt néhány eszköze a következő:

  • WebLOAD
  • LoadRunner
  • Apache JMeter
  • NeoTerhelés
  • CloudTest
  • Loadstorm
  • LoadUI
  • WAPT
  • LoadImpact
  • Rakodó
  • Httperf
  • OpenSTA

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 terhelésteszt egy meghatározott csúcsértéken, rövid ideig ellenőrzi a viselkedést. A stabilitástesztelés sokkal hosszabb ideig, változó körülmények között fut, és inkább a romlást keresi, mintsem egy adott célhoz képesti sikeres vagy sikertelen eredményt.

Elég hosszú idő ahhoz, hogy lassan épülő problémák jelenjenek meg, jellemzően 8-72 óra. Az egy óránál rövidebb idő ritkán utal memóriaszivárgásra vagy fokozatosan lemerülő kapcsolatkészletre.

Erőforrás-szivárgások, lezáratlan adatbázis-kapcsolatok, korlátlan gyorsítótárak és létrehozott, de soha fel nem adott szálak. Mind a négy rövid távon egészségesnek tűnik, és amint a futás elég hosszú, meghibásodik.

A mesterséges intelligencia alapú anomáliadetektálás azt a pillanatot észleli, amikor egy erőforrásgörbe meredeksége megváltozik, ami sokkal korábban történik, mint ahogy egy fix küszöbértékű riasztás bekapcsolna, és sokkal megbízhatóbb, mint a grafikonok szemrevételezése.

Igen. A múltbeli incidenseken és kódváltozáson betanított modellek kiemelik azokat a modulokat, amelyek a legnagyobb valószínűséggel szivárogtatnak ki erőforrásokat, lehetővé téve a csapatok számára, hogy a hosszú távú teszteket olyan helyekre összpontosítsák, ahol megtérülnek a hasznuk.

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