Mi az a nem funkcionális tesztelés?

Befejeződött

Az Azure Pipelines funkcionális tesztjeinek futtatásakor Selenium felhasználói felületi teszteket adott hozzá a folyamathoz. A felhasználói felületi tesztek a funkcionális tesztelés egy formája. Ebben a részben megismerheti a folyamatokban futtatható nem funkcionális tesztek típusait.

A csapat először nem funkcionális teszteket határoz meg. Ezek a tesztek bizonyos típusairól beszélnek. Ezután úgy döntenek, hogy nem funkcionális tesztet adnak hozzá a folyamatukhoz.

Hogyan viszonyulnak a nem funkcionális tesztek a funkcionális tesztekhez?

Az Azure Pipelines funkcionális tesztjeinek futtatásakor funkcionális teszteket és nem funkcionális teszteket határoztunk meg.

Röviden, a funkcionális tesztek ellenőrzik, hogy a szoftver minden funkciója megteszi-e, amit kell. Más szóval a funkcionális tesztek ellenőrzik az alkalmazás működését.

A nem funkcionális tesztek ellenőrzik az alkalmazás nem funkcionális jellemzőit, például a teljesítményt és a megbízhatóságot. Nem funkcionális teszteket is futtathat olyan rendszereken, amelyek nem alkalmazások, például infrastruktúra-összetevők. A nem funkcionális tesztek egyik példája annak meghatározása, hogy hány személy tud egyszerre bejelentkezni egy alkalmazásba probléma nélkül, például lassabb válaszidők nélkül.

A Space Game webhelyén például egy funkcionális teszt ellenőrizheti, hogy a ranglista helyesen jelenik-e meg, és hogy a felhasználó szűrő kiválasztásakor a megfelelő rekordokat jeleníti-e meg. A nem funkcionális tesztek azt is ellenőrizhetik, hogy a ranglista szűrése kevesebb mint egy másodperc alatt befejeződik-e, még akkor is, ha egyszerre sok felhasználó csatlakozik a webhelyhez.

A nem funkcionális tesztelés mindig mérhető eredményt ad. A cél a termék fejlesztése. Ezt például úgy teheti meg, hogy javítja az alkalmazás erőforrásainak hatékonyságát, vagy javítja a válaszidőket, amikor sok ügyfél használja egyszerre. Íme néhány kérdés, amelyekre a nem funkcionális tesztek válaszolhatnak:

  • Hogyan működik az alkalmazás normál körülmények között?
  • Hogyan működik az alkalmazás, ha egyszerre több felhasználó jelentkezik be?
  • Mennyire biztonságos az alkalmazás?

Milyen típusú nem funkcionális teszteket futtathatok?

Sokféle nem funkcionális teszt létezik. Ezek közül sokan a teljesítménytesztelés és a biztonsági tesztelés széles kategóriáiba illeszkednek.

Teljesítménytesztelés

A teljesítménytesztelés célja az alkalmazás sebességének, méretezhetőségének és stabilitásának javítása. A sebességtesztelés meghatározza, hogy az alkalmazás milyen gyorsan válaszol. A méretezhetőség tesztelése határozza meg, hogy az alkalmazás maximálisan milyen terhelést tud kezelni. A stabilitás tesztelése meghatározza, hogy az alkalmazás stabil marad-e különböző terhelések esetén. A teljesítménytesztek két gyakori típusa a terheléstesztek és a stressztesztek.

Terheléses tesztelés

A terheléstesztek reális terhelés esetén határozzák meg az alkalmazások teljesítményét. A terheléses tesztek például meghatározhatják, hogy egy alkalmazás milyen jól teljesít a szolgáltatásiszint-szerződés (SLA) felső határán. A terheléstesztelés alapvetően akkor határozza meg az alkalmazás viselkedését, ha egyszerre több felhasználónak is szüksége van rá.

A felhasználók nem feltétlenül emberek. A nyomtatószoftverek terheléstesztje például nagy mennyiségű adatot küldhet az alkalmazásnak. A levelezési kiszolgáló terheléstesztje több ezer egyidejű felhasználót szimulálhat.

A terheléstesztelés jó módszer arra is, hogy feltárja azokat a problémákat, amelyek csak akkor léteznek, ha az alkalmazás a korlátain működik. Ekkor jelentkezhetnek olyan problémák, mint a puffer túlcsordulása és a memóriaszivárgás.

Ebben a modulban az Apache JMeter használatával fog terhelésteszteket végezni. Olyan szimulált felhasználókat fog használni, amelyek egyszerre érik el a webhelyet.

Stressztesztelés

A stressztesztek meghatározzák az alkalmazás stabilitását és robusztusságát nagy terhelések esetén. A terhelések túllépik az alkalmazáshoz megadott értéket. A stressztesztek meghatározzák, hogy az alkalmazás összeomlik-e ezek alatt a terhelések alatt. Ha az alkalmazás meghibásodik, a stresszteszt ellenőrzi, hogy az megfelelően meghiúsul-e. Egy kecses hiba például megfelelő, informatív hibaüzenetet adhat ki.

Gyakoriak azok a forgatókönyvek, amelyekben az alkalmazásoknak rendellenesen nagy terhelés alatt kell működnie. Ha például a videó vírusos lesz, tudnia kell, hogy a kiszolgálók mennyire tudják kezelni a többletterhelést. Egy másik tipikus forgatókönyv az ünnepi időszakokban a vásárlási webhelyek nagy forgalma.

Biztonsági tesztelés

A biztonsági tesztelés biztosítja, hogy az alkalmazások mentesek legyenek a biztonsági résektől, fenyegetésektől és kockázatoktól. Az alapos biztonsági tesztelés megtalálja a rendszer összes lehetséges kiskapuját és gyengeségét, amelyek adatszivárgást vagy bevételkiesést okozhatnak.

A biztonsági tesztelésnek számos típusa van. Ezek közül kettő a behatolástesztelés és a megfelelőségi tesztelés.

Behatolás tesztelése

A behatolástesztelés vagy tolltesztelés olyan biztonsági tesztelési típus, amely az alkalmazás nem biztonságos területeit teszteli. Különösen azokat a biztonsági réseket teszteli, amelyeket a támadó kihasználhat. Az engedélyezett, szimulált kibertámadás általában a behatolástesztelés része.

Megfelelőségi tesztelés

A megfelelőségi tesztelés meghatározza, hogy egy alkalmazás megfelel-e bizonyos követelményeknek a vállalaton belül vagy kívül. Az egészségügyi szervezeteknek például általában meg kell felelniük a HIPAA-nak (Az 1996. évi egészségbiztosítási hordozhatóságról és elszámoltathatóságról szóló törvénynek), amely adatvédelmi és biztonsági rendelkezéseket biztosít az orvosi adatok védelméhez.

Előfordulhat, hogy a szervezetnek saját biztonsági követelményei is vannak. A szoftvereket tesztelni kell, hogy biztosan betartják-e ezeket a követelményeket. Linux rendszereken például az alapértelmezett felhasználói maszknak 027-nek vagy szigorúbbnak kell lennie. A biztonsági tesztnek bizonyítania kell, hogy ez a követelmény teljesül.

A terv

A modul további részében beállítja az Azure DevOps-környezetet, megismerheti a terheléses tesztek tervezését az Apache JMeter használatával, és terhelési teszteket futtathat az Azure Pipelinesban.

Tesztelje tudását

1.

Nemrég csatlakoztatta a webalkalmazást egy adatbázishoz. Az adatbázisrekordok az oldal betöltésekor jelennek meg. Ellenőrizni szeretné, hogy az adatbázis-hívások nem okozzák a lap egy másodpercnél hosszabb betöltését. Milyen típusú nem funkcionális tesztelést használhat?

2.

A webhelye koncertjegyeket ad el egy helyi helyszínre. A helyszín többnapos rendezvényt szervez, amely számos népszerű előadót tartalmaz. Ideges vagy, hogy a hely nem fogja tudni kezelni a hirtelen megnövekedett forgalmat. Milyen típusú tesztelés segíthet az elmédben?

3.

Gyanítja, hogy a webhelye olyan biztonsági rést tesz elérhetővé, amely lehetővé teszi a támadó számára, hogy bizalmas adatokhoz férhessen hozzá. Milyen típusú nem funkcionális tesztelést futtathat a biztonsági rés felderítéséhez?