Mi az a dinamikus tesztelés? Típusok, technikák és példák
⚡ Okos összefoglaló
A dinamikus tesztelés végrehajtja az alkalmazást, és megfigyeli, hogyan viselkedik a futó kód valós bemenetekkel, így a tesztelők olyan funkcionalitást, teljesítményt és stabilitást is validálhatnak, amelyet semmilyen mennyiségű dokumentum-áttekintés nem képes feltárni.

Mi az a dinamikus tesztelés?
Dinamikus tesztelés egy szoftvertesztelési módszer, amelyet a szoftverkód dinamikus viselkedésének tesztelésére használnak. A dinamikus tesztelés fő célja a szoftver viselkedésének vizsgálata dinamikus változókkal – olyan változókkal, amelyek nem állandóak –, és gyenge területek megtalálása a szoftver futási környezetében. A dinamikus viselkedés teszteléséhez a kódot végre kell hajtani.
A tesztelés ellenőrzés és érvényesítés, és mindkét V szükséges a tesztelés befejezéséhez. Az ellenőrzést statikus teszteléssel végzik, amely a követelményeket, a tervdokumentációkat és a kódot futtatás nélkül vizsgálja felül. Az érvényesítést dinamikus teszteléssel végzik, amely lefuttatja a buildet, és összehasonlítja az alkalmazás tényleges működését azzal, amit tennie kellene.
Az alábbi táblázat első pillantásra megkülönbözteti a kettőt.
| Aspect | Statikus tesztelés (ellenőrzés) | Dinamikus tesztelés (validáció) |
| Code végrehajtott | Nem | Igen |
| Tipikus tevékenységek | Reváttekintések, bejárások, ellenőrzések, statikai elemzés | Tesztesetek végrehajtása minden tesztszinten |
| Megválaszolt kérdés | Jól építjük fel a terméket? | A megfelelő terméket építjük? |
| Talált hibák | Kétértelmű követelmények, kódolási szabványok megsértése, halott kód | Hibás kimenet, memóriaszivárgások, időzítési hibák, integrációs hibák |
| Kezdődik | Amint egy tárgy létezik | Miután egy futtatható build létezik |
| A javítás relatív költsége | Alacsonyabb, mert a hibákat korábban észlelik | Magasabb, mert a hibák később jelennek meg |
Példa dinamikus tesztelésre
Egy rövid, gyakorlatban is használható példa mutatja be, hogyan működik a dinamikus tesztelés.
Tegyük fel, hogy egy bejelentkezési oldalt tesztelnek. Két mezője van, a Felhasználónév és a Jelszó, és a Felhasználónév alfanumerikus karakterekre korlátozódik.
Amikor a felhasználó a következőképpen adja meg a felhasználónevet: „Guru99”, a rendszer elfogadja. Amikor a felhasználó beírja a „Guru99@123” esetén az alkalmazás hibaüzenetet dob. Ez az eredmény azt mutatja, hogy a kód dinamikusan reagál a felhasználói bevitelre.
A dinamikus tesztelés tehát azt jelenti, hogy a tényleges rendszerrel dolgozunk, bemenetet biztosítunk, és az alkalmazás tényleges viselkedését összehasonlítjuk a várt viselkedéssel – más szóval, a rendszerrel azzal a szándékkal dolgozunk, hogy hibákat találjunk.
A dinamikus tesztelés tehát egy szoftveralkalmazás validálásának folyamata, ahogyan azt egy végfelhasználó tenné különböző környezetekben, a megfelelő szoftver létrehozása érdekében.
Mit csinál a dinamikus tesztelés?
A dinamikus tesztek fő célja annak biztosítása, hogy a szoftver megfelelően működjön a telepítés alatt és után, stabil alkalmazást biztosítva, nagyobb hibák nélkül. Egyetlen szoftver sem teljesen hibamentes, és a tesztelés kimutathatja a hibák jelenlétét, de soha nem azok hiányát.
A dinamikus tesztek a szoftverek közötti konzisztenciát is biztosítják, ahogy ezt a példa is mutatja.
Egy banki alkalmazásban több képernyő található, például a Számláim, Pénzátutalás és Bill Fizetés. Mindegyik tartalmaz egy összeg mezőt.
Tegyük fel, hogy a Számláim mezőben 25 000 összeg jelenik meg, az Átutalás 25 000 dollárt, a Bill A fizetési képernyőn 25 000 dollár látható. Az összeg ugyanaz, de a megjelenítés módja eltérő, ami miatt a szoftver nem egyértelmű.
A konzisztencia nem korlátozódik a funkcionalitásra. Olyan szabványokat is magában foglal, mint a teljesítmény, a használhatóság és a kompatibilitás, ezért olyan fontos a dinamikus tesztelés.
A dinamikus tesztelés típusai
A dinamikus tesztelést két kategóriába sorolják.
- fehér Box Tesztelés
- Fekete Box Tesztelés
Az alábbi ábra a két kategóriát az alattuk lévő tesztelési szintekhez viszonyítja.
Az egyes típusokat és azok célját az alábbiakban ismertetjük.
fehér Box Tesztelés — egy olyan szoftvertesztelési módszer, amelyben a belső struktúra és a felépítés ismert a tesztelő számára. Fő célja a rendszer teljesítményének ellenőrzése a kód alapján. Főként fejlesztők vagy programozási ismeretekkel rendelkező white box tesztelők végzik.
Fekete Box Tesztelés — olyan tesztelési módszer, amelyben a belső struktúra, a kód és a terv NEM ismert a tesztelő számára. Fő célja a tesztelt rendszer funkcionalitásának ellenőrzése. Az ilyen típusú tesztelés megköveteli a teljes tesztkészlet végrehajtását, főként tesztelők végzik, és nem igényel programozási ismereteket.
A fekete dobozos tesztelést ismét két típusra osztják.
- Funkcionális tesztelés
- Nem funkcionális tesztelés
Funkcionális tesztelés
Funkcionális tesztelés ...ellenőrzi, hogy minden kifejlesztett funkció megfelel-e a funkcionális specifikációknak. A funkcionális... teszt esetek a minőségbiztosítási csapat írta. Ebben a fázisban a rendszert bemeneti adatok megadásával, a kimenet ellenőrzésével és a tényleges eredmények várt eredményekkel való összehasonlításával tesztelik.
A funkcionális tesztelésnek különböző szintjei vannak, amelyek közül a legfontosabbak az alábbi négy.
- Egység tesztelése – az egység egy kis, tesztelhető kódrészlet. Az egységtesztelést a szoftver egyetlen egységén végzik a fejlesztők.
- Integrációs tesztelés — egységtesztelés után, az egyes tesztelhető egységek kombinálásával hajtják végre. Ezt vagy fejlesztők, vagy tesztelők végzik.
- Rendszer tesztelés — annak biztosítására hajtják végre, hogy a rendszer a követelményeknek megfelelően viselkedjen. Általában akkor hajtják végre a tesztelők, amikor a teljes rendszer elkészült, miután a build-et kiadták a minőségbiztosítási csapatnak.
- Átvételi teszt — annak ellenőrzésére kerül sor, hogy a rendszer megfelel-e az üzleti követelményeknek, és készen áll-e a használatra vagy telepítésre. Általában a végfelhasználók végzik.
Nem funkcionális tesztelés
Nem funkcionális tesztelés egy olyan tesztelési technika, amely nem a funkcionális szempontokra összpontosít, hanem a rendszer nem funkcionális attribútumaira, például a memóriaszivárgásokra, a teljesítményre vagy a robusztusságra koncentrál. A nem funkcionális tesztelést minden tesztelési szinten elvégzik.
Számos nem funkcionális tesztelési technika létezik, amelyek közül a legfontosabbak az alábbi öt.
- Teljesítményfelmérés — ellenőrzi, hogy a rendszer válaszideje a kívánt hálózati terhelés mellett a követelményeknek megfelelően normális-e.
- Helyreállítási tesztelés — ellenőrzi, hogy a rendszer milyen jól áll helyre az összeomlások és hardverhibák után.
- Kompatibilitási tesztelés – ellenőrzi, hogyan viselkedik a rendszer különböző környezetekben.
- Biztonsági tesztelés — ellenőrzi az alkalmazás robusztusságát, biztosítva, hogy csak a jogosult felhasználók és szerepkörök férhessenek hozzá a rendszerhez.
- Használhatósági tesztelés — ellenőrzi a rendszer használhatóságát a végfelhasználók által, és azt, hogy mennyire érzik jól magukat a rendszerrel.
Dinamikus tesztelési technikák
Miután a típusok tisztázódtak, a következő kérdés az, hogy hogyan is kell valójában lefuttatni egy dinamikus tesztciklust.
Dinamikus tesztelési technikák a STLC olyan feladatokból áll, mint a tesztek követelményelemzése, a teszttervezés, a tesztesetek tervezése és megvalósítása, a tesztkörnyezet beállítása, a tesztesetek végrehajtása, a hibajelentés és végül a teszt lezárása. A dinamikus tesztelés minden feladata a tesztelési folyamat előző feladatának befejezésétől függ.
Az STLC-n belül a tényleges dinamikus tesztelési folyamat a teszteset tervezésével kezdődik. Az alábbi ábra a tevékenységek sorrendjét mutatja, amelyek mindegyikét ismertetjük.
A folyamat megkezdése előtt meg kell állapodni a dinamikus teszteléshez követendő stratégiában.
A tesztelési stratégiának főként a rendelkezésre álló erőforrásokra és az időkeretre kell összpontosítania. E két tényező alapján dokumentálni kell a tesztelés célját, a tesztelés hatókörét, a tesztelés fázisait vagy ciklusait, a környezet típusát, a felmerülő feltételezéseket vagy kihívásokat, valamint a kockázatokat.
Miután a stratégiát meghatározták és a vezetőség elfogadta, megkezdődik a tényleges teszteset-tervezési folyamat.
Teszttervezés és -megvalósítás
Ebben a fázisban a csapat a következőket azonosítja.
- Tesztelendő tulajdonságok
- Az említett jellemzőkből származó tesztfeltételek
- A tesztfeltételekből származtatott lefedettségi tételek
- A lefedettségi elemekből származtatott tesztesetek
Fekete doboz teszttervezési technikák mint például az ekvivalencia-particionálás, a határérték-analízis, döntési tábla tesztelés és a állapotátmenet-tesztelés azok, amelyek egy tesztfeltételt végrehajtható esetek konkrét halmazává alakítanak.
Tesztkörnyezet beállítása
Az tesztkörnyezet mindig hasonlónak kell lennie az éles környezethez. Ebben a fázisban történik a build telepítése, valamint a tesztgépek kezelése és konfigurálása.
Teszt végrehajtása
Ebben a fázisban a tesztesetek ténylegesen végrehajtásra kerülnek, akár manuálisan, akár a automatizálás, és a tényleges eredményeket a várt eredményekkel szemben rögzítik.
A hibajelentés rögzítve
A végrehajtás alapján, ha a várt és a tényleges eredmények nem egyeznek meg, a tesztesetet sikertelenként kell megjelölni, és hibát kell naplózni a rendszerben. hibakezelés folyamat.
A dinamikus tesztelés előnyei
- A dinamikus tesztelés olyan hibákat tár fel, amelyeket túl nehéznek vagy bonyolultnak tartanak a felismerésükhöz, és amelyeket a statikus elemzés egyáltalán nem tud lefedni.
- A szoftvert a teljes folyamat során végrehajtják, ami mind a termék, mind a projekt minőségét növeli.
- A dinamikus tesztelés alapvető eszköz a működő rendszerek biztonsági fenyegetéseinek észlelésére.
- A futásidejű hibák, mint például a memóriaszivárgások, az időzítési problémák és az integrációs hibák, csak itt jelennek meg, máshol sehol.
A dinamikus tesztelés hátrányai
- A dinamikus tesztelés időigényes, mivel az alkalmazás vagy kód végrehajtása nagy mennyiségű erőforrást igényel.
- Ez növeli a projekt költségeit, mivel nem kezdődik el a szoftver életciklusának korai szakaszában, és a későbbi szakaszokban kijavított problémák javítása többe kerül.
- Az éles környezethez hasonló környezet és a valósághű tesztadatok előfeltételek, és mindkettő felépítése és karbantartása erőfeszítést igényel.


