Kihagyás

Tesztelés

Miért tesztelünk? A tesztelés célja, hogy a termékben meglévő hibákat időben megtaláljuk, ezzel növeljük a termék minőséget megbízhatóságot.

Érdemes a tesztelést az életciklus minél korábbi szakaszában elkezdeni, hiszen minél hamarabb megvan a hiba, annál jobb.

A tesztelés teljes és átfogó megismerésére a tárgy keretein belül nincs lehetőség, viszont a tesztelés alapjait mindenképpen érdemes tisztázni. Első körben a szoftver használata szerinti tesztelés esetén megkülönböztetünk ún. statikus és dinamikus tesztelést.

  • Statikus: nem kerül sor a szoftver futtatására, manuálisan vizsgáljuk a szoftvert, pl. "fejben futtatjuk a kódot" és hibás részeket keresünk, vagy valamilyen más, külső eszközt alkalmazünk

  • Dinamikus: futásidőben vizsgáljuk a szoftvert

Második körben pedig megkülönböztethetünk a kód ismerete alapján történő tesztelési technikákat:

  • feketedobozos (black-box) tesztelés: a rendszer belső működését nem ismerjük, a felhasználói felületen keresztül teszteljük a szoftvert (külsős tesztelői csoportok ~ specifikáció alapú tesztelés)

  • fehérdobozos (white-box) tesztelés: a forráskód alapján készülnek a tesztesetek (tipikusan a cégen belül végzik el ~ struktúrális tesztelés)

Tesztelés az életciklusban

Ha visszatekintünk a folyamatmodellekre, akkor láthatjuk, hogy a tesztelés a legtöbb modellben kulcsfontosságú szerepet játszik.

A vízesésmodell kiterjesztésével létrejött ún. V modell esetében a következő történik:

  • Az egyik szára: vízesés modell (fejlesztési szár)

  • A másik szára a létrejövő termékek tesztjeit tartalmazza (tesztelési szár)

  • Az egy szinten lévő fejlesztési és tesztelési lépések összetartoznak

  • A tesztelési lépés a fejlesztési lépés során létrejött dokumentumokat/projektet használja

v-model

Komponens teszt: tipikusan Unit-tesztek, azaz az egyes metódusok adott bemenetre az elvárt eredményt adja.

Alrendszer integrációs teszt: komponensek közötti kölcsönhatásokat vizsgáljuk, mert előfordulhat, hogy egy-egy komponenest más-más csapat fejleszt

Rendszer integrációs teszt: annak ellenőrzése, hogy a specifikációnak megfelel-e a termék

Átvételi teszt: ezt már a végfelhasználók végzik (alfa-teszt, béta-teszt)

Emlékeztető

Projektterv: 7.3. Minőségbiztosítás

  • Az elkészült terveket a terveken nem dolgozó csapattársak közül átnézik, hogy megfelel-e a specifikációnak és az egyes diagramtípusok összhangban vannak-e egymással. A meglévő rendszerünk helyes működését a prototípusok bemutatása előtt a tesztelési dokumentumban leírtak végrehajtása alapján ellenőrizzük és összevetjük a specifikációval, hogy az elvárt eredményt kapjuk-e. További tesztelési lehetőségek: unit tesztek írása az egyes modulokhoz vagy a kód közös átnézése (code review) egy, a vizsgált modul programozásában nem résztvevő csapattaggal. Szoftverünk minőségét a végső leadás előtt javítani kell a rendszerünkre lefuttatott kódelemzés során kapott metrikaértékek és szabálysértések figyelembevételével.Az alábbi lehetőségek vannak a szoftver megfelelő minőségének biztosítására:

    • Specifikáció és tervek átnézése (kötelező)

    • Teszttervek végrehajtása (kötelező)

    • Unit tesztek írása (választható)

    • Kód átnézése (választható)

Projektterv: 3-4. mérföldkő

  • 9.3.4. Tesztelési dokumentum

  • 9.4.3. Tesztelési dokumentum az új funkciókhoz

A tesztelés folyamata

Egy projekt életciklusa során számtalan, a teszteléshez kapcsolódó dokumentum is létrejön. Ilyen dokumentum például a tesztterv, amely hasonló a projekttervhez csak a tesztelés a témája. Egy ilyen dokumentum tartalmazza többek között a projekt rövid ismertetését, a felhasznált és a leszállítandó dokumentumokat, a tesztelés hatókörét, elfogadási kritériumokat, erőforrásokat, szerepköröket, felelősöket, feladatokat, tesztadatokat, kockázatokat, stb.

A tesztelés a szoftverfejlesztési folyamat nagyon fontos része. Olykor több erőforrást igényel, mint maga a fejlesztés, ezért jól megtervezett és dokumentált tesztelésre van szükség. Magát a teszttervet nem kell elkészíteni, de a leszállítandó dokumentumokat igen, ezek a következők lesznek:

  • Teszteljárás (TestProcedure – TP)

    • Részletes leírás a tesztesetek előkészítéséhez, végrehajtásához, kiértékeléséhez

    • Végrehajtandó lépések sorozata

    • Felsorolhatjuk a hozzá tartozó teszteseteket

  • Teszteset (TestCase – TC)

    • Teszteljárás alapján készül

    • Teszt inputok halmaza, végrehajtási feltételek, elvárt eredmények leírása

  • Tesztriport (TestRiport – TR)

    • Teszteset végrehajtásának eredménye (a teszt helyes/helytelen eredményt adott)

Tesztelési dokumentáció (tesztjegyzőkönyv) sablon: SABLON

Tesztelési aranyszabályok

  • Az elvárt eredményt mindig specifikáljuk

  • Programozó ne tesztelje a saját programját

  • Minden teszteredményét ellenőrizni kell

  • Kivételes viselkedést is teszteljük

  • Azt is igazoljuk, hogy egy program nem csinálja azt, amit nem kéne

  • Teszteseteket meg kell tudni ismételni

  • Ne feltételezzük, hogy hibátlan a program, egy programban mindig vannak hibák

  • Hibák sokszor csoportosan jelentkeznek

  • „Nezzünk körül” egy adott hiba esetén

  • Tesztelés célja hibák megtalálása (a jó tesztadat az, amely előhozza)


Utolsó frissítés: 2023-11-06 07:57:23