14. óra · Szoftvertesztelés alapjai

Tesztelési szintek rendszerezése

Komponens, integráció, rendszer és elfogadás összehasonlítása

Az óra végére képes leszel

  • Négy szinthez megfelelő tesztcélt és tesztalapot rendelsz.
  • Felismered, amikor ugyanazt a folyamatot több szinten, más céllal ellenőrizzük.
  • Elkülöníted a tesztelési szintet a teszttípustól.

Az óra témái

  • Tesztelési szintek rendszerezése
01 / TANANYAG

Ugyanaz a termék, négy különböző kérdés

A komponensteszt egy elkülöníthető rész működésére kérdez rá: jól számítja-e a függvény a várólista sorrendjét? Az integrációs teszt a részek kapcsolatára: átadja-e a jelentkezési modul a megfelelő adatot az értesítőnek? A rendszerteszt az egész portálra: helyes-e a jelentkezés teljes folyamata? Az elfogadási teszt az átvevő szempontjaira: a portál megfelel-e a napi ügyintézésnek és a bevezetési feltételeknek?

A szintet nem a teszt végrehajtójának neve vagy a használt eszköz határozza meg. Egy fejlesztő is végezhet rendszertesztet, és egy tesztelő is tervezhet komponenstesztet. Ugyanaz az adat különböző szinten más célt szolgál: a 0 szabad hely a sorrendező függvénynél bemeneti határ, a teljes felületen pedig felhasználói üzenetet és várólista-állapotot is érint.

Példa: Négy kérdés

Jó a függvény? Jó az adatátadás? Jó a teljes jelentkezés? Használható és átvehető a rendszer? Az első kérdés komponens-, a második integrációs, a harmadik rendszer-, a negyedik elfogadási fókusz.

02 / TANANYAG

A tesztalap és a hibák jellege

A komponensteszt alapja lehet a rész részletes terve vagy a funkció szerződése; eltérés lehet hibás kerekítés. Az integrációs teszt alapja az API vagy adatkapcsolat leírása; eltérés lehet rossz mező vagy hibás sorrend. A rendszerteszt alapja a rendszerkövetelmény; eltérés lehet a teljes folyamat megszakadása. Az elfogadás alapja az üzleti és felhasználói igény; eltérés lehet, hogy egy szükséges adminisztrációs művelet nem hajtható végre.

Ezek a határok nem tökéletesen élesek. Egy teljes rendszerteszt is találhat integrációs eredetű hibát, de a teszt célja ettől még a teljes rendszer vizsgálata. A szint megnevezéséhez ezért a teszt szándékát, tárgyát és elvárt bizonyítékát nézd, ne csak a végül megtalált hiba helyét.

Tanári tipp

A kérdésben szereplő igék segítenek: 'számít' → rész; 'átad' → kapcsolat; 'végigmegy' → rendszer; 'átvehető' → elfogadás.

03 / TANANYAG

Szintek, típusok, időzítés

A tesztelési szint a vizsgálat szervezett fókusza. A teszttípus másik nézőpont: például a működési szabály helyessége, a teljesítmény vagy a változás utáni regresszió. Funkcionális ellenőrzést végezhetünk komponens- vagy rendszerszinten is. A teszttípusokat a következő órán részletezzük; a két fogalmat nem szabad egyetlen felsorolásba keverni.

A klasszikus V-ábra azt segít megérteni, hogyan épülnek egymásra az ellenőrzések. Agilis vagy iteratív munkában a tesztszintek egy új rész elkészültekor időben átfedhetnek: az új függvény komponenstesztje és a korábbi folyamat regressziós rendszertesztje ugyanabban a munkaszakaszban futhat. A sorrend változhat, de a különböző kérdések ettől még fontosak maradnak.

Példa: Két tengely

„Rendszerszintű funkcionális teszt” a teljes jelentkezés üzleti szabályát ellenőrzi. „Komponensszintű funkcionális teszt” ugyanebből a szabályból a helyek számítását vizsgálhatja.

Négy szint ugyanazon portálon
  1. 1KomponensFérőhelyszámítás eredménye
  2. 2IntegrációFoglalás átadása a tárolónak
  3. 3RendszerJelentkezés a felülettől a visszaigazolásig
  4. 4ElfogadásAz ügyintéző el tudja látni a munkáját

Az ábra a tesztek célját rendszerezi, nem kötelező, minden projektben egymástól elkülönülő időszakokat rajzol.

04 / TANANYAG

Miért ismételjük a hasonló esetet több szinten?

A betelt kurzus példáját a számoló függvényen gyorsan és pontosan ellenőrizhetjük, de ez nem szól a tárolásról. Integrációban vizsgáljuk az adat átadását, a teljes rendszerben a felhasználónak megjelenő választ, elfogadáskor pedig azt, hogy az ügyintéző a keletkező várólistával dolgozni tud. Ez négy különböző bizonyíték ugyanahhoz a kockázathoz.

Az eseteket nem kell szó szerint minden szinten megismételni: a teszt részletessége és elvárása igazodik a célhoz. A komponensnél elég lehet a pontos visszatérési érték, a rendszerben a tartós mentés és a felhasználói visszajelzés is szükséges. A duplikáció helyett azt nézzük, melyik fontos kérdés maradna megválaszolatlanul.

Példa: A hiba helye és a teszt szintje

Egy rendszerteszt hibája végül egy számoló függvényben van. A teszt mégis rendszerteszt, mert a teljes jelentkezés eredményét ellenőrizte.

05 / TANANYAG

Kis összefoglaló ellenőrzés

Rendezd az állításokat: „a függvény 20-ból 19 foglalásra 1 szabad helyet ad”; „a jelentkezési API a foglalást menti”; „a diák az egész folyamat után látja a foglalását”; „az ügyintéző képes előléptetni a várólistás diákot”. Ha a célra figyelsz, sorban a négy tanult szintet kapod. A megfogalmazás nem a vizsgált programnyelvtől vagy eszköztől függ.

Most nevezd meg mindegyikhez az elvárás forrását: komponensszabály, interfészleírás, rendszerkövetelmény vagy felhasználói igény. Ez segít észrevenni, ha a tesztet nincs mihez hasonlítani. Ilyenkor előbb kérdezni és pontosítani kell; egy önkényes elvárt érték hamis hibát vagy hamis sikert adhat.

Tanári tipp

Besorolásnál mindig írd le a 'mert' után a teszt tárgyát és célját.

RÉSZLETES ELMÉLETI KIEGÉSZÍTÉS

A tesztelési szintek összehangolása

A komponens-, integrációs-, rendszer- és átadási teszt eltérő célú ellenőrzési rétegek. A korábbi szint gyors visszajelzést ad kis egységről; a későbbi szint valósághűbb együttműködést és teljes munkafolyamatot vizsgál. A hibákat célszerű azon a szinten megtalálni, ahol a legolcsóbban és legpontosabban diagnosztizálhatók.

A szintek között a tesztalap, felelősség, környezet, tesztobjektum és elfogadási kritérium is változhat. A tesztelési piramis szemlélete szerint sok gyors, szűk fókuszú tesztet egészítenek ki kevesebb, szélesebb körű tesztek; ez segít a hibakeresési költség és visszajelzési idő egyensúlyában.

Új, iskolai példa

A pontszámítási függvényhez sok komponens teszt tartozik, a napló és felület közötti adatcseréhez integrációs teszt, a dolgozat leadási folyamathoz pedig rendszerteszt.

Gondolkodtató gyakorlófeladat

Sorolj fel egy-egy ellenőrzést a négy tesztelési szinthez ugyanarra az online beadási rendszerre.

PRÓBÁLD KI

Órai feladat

Sorold be a négy ellenőrzést szint szerint: A) függvény 0 szabad helyre megfelelő eredményt ad; B) API a megfelelő számot küldi az értesítőnek; C) diák jelentkezik és megkapja a visszaigazolást; D) ügyintéző szerint a várólista a valós munkafolyamatban használható. Mindegyikhez írj egy lehetséges hibát!

ELLENŐRIZD MAGAD

Melyik párosítás jelöl szintet és típust?

Amit érdemes megjegyezni

  • Komponens → kapcsolat → teljes rendszer → átvevői döntés: négy eltérő fókusz.
  • A szintet a teszt tárgya és célja, nem a megtalált hiba helye határozza meg.
  • A teszttípus a szinteken átívelő másik nézőpont.