4. óra · Szoftvertesztelés alapjai

Mi a tesztelés?

A forgalmi vizsga mint tanulást segítő analógia

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

  • Saját szavaiddal definiálod a szoftvertesztelést.
  • Példákkal megkülönbözteted a verifikációt és a validációt.
  • Felismered a forgalmi vizsga analógiájának hasznát és korlátait.

Az óra témái

  • A tesztelés tipikus céljai
  • Forgalmi vizsga mint analógia
  • A szoftvertesztelés meghatározása
  • Szoftverteszt és forgalmi vizsga összehasonlítása
01 / TANANYAG

A tesztelés több, mint gombok megnyomása

A szoftvertesztelés olyan tervezett tevékenységek együttese, amely a szoftverhez kapcsolódó munkatermékeket értékeli, hibákat tár fel és információt ad a minőségről. Vizsgálható követelmény, terv, kód, dokumentáció és működő rendszer is. A tesztelés része a cél kijelölése, a tesztesetek megtervezése, végrehajtása, az eredmények összevetése az elvárással és az eltérések jelentése.

A dinamikus tesztelésnél futtatjuk a programot. A statikus tesztelésnél futtatás nélkül vizsgálunk egy munkaterméket, például átnézünk egy ellentmondásos követelményt. Az elvárt eredményt lehetőleg előre határozzuk meg; különben könnyű a tényleges eredményhez utólag igazítani az elvárást.

Példa: Konkrét elvárt eredmény

Követelmény: a rendszer 18 éves kortól enged regisztrálni. Teszteset: életkor 18. Elvárt eredmény: a regisztráció folytatható. A „ránézésre jónak tűnik” nem helyettesíti ezt az ellenőrizhető állítást.

02 / TANANYAG

A tipikus tesztelési célok

A vizsgálat célja lehet munkatermék értékelése, hiba felfedezése, szükséges lefedettség elérése, a nem megfelelő minőség kockázatának csökkentése vagy a követelmények teljesülésének ellenőrzése. A tesztelés tájékoztatja a döntéshozókat a kiadásról, bizalmat építhet a termék iránt, és segít felmérni, hogy a rendszer a felhasználó valódi szükségletét szolgálja-e.

A verifikáció kérdése: megfelel-e a termék a meghatározott követelményeknek? A validációé: a megfelelő problémát oldjuk-e meg a felhasználónak? Ha egy mobilalkalmazás pontosan a terv szerint működik, de a szükséges funkció túl nehezen érhető el, a specifikáció teljesülése még nem elegendő.

Tanári tipp

Kérdezd meg külön: „Jól építettük meg?” és „A megfelelő dolgot építettük meg?”

03 / TANANYAG

Forgalmi vizsga: jó analógia, de nem tökéletes

A forgalmi vizsga során adott körülmények között figyelik, hogy a vizsgázó teljesíti-e a követelményeket. A szoftvertesztben is előre meghatározott helyzeteket és elvárt viselkedést használunk, eredményt rögzítünk, és az eltéréseket értékeljük. Egyetlen sikeres útvonal vagy tesztfutás azonban nem garantál minden későbbi helyzetben helyes működést.

Az analógiának határai vannak: egy ember tanul és pillanatnyi döntéseket hoz, míg egy szoftver viselkedését kód, adat, környezet és kapcsolódó rendszerek alakítják. A forgalmi vizsga „megfelelt” eredményét nem azonosíthatjuk a szoftver hibamentességével. A vizsgaszituáció arra jó, hogy megértsük a követelmény, a megfigyelés, az elvárt eredmény és a korlátozott mintavétel szerepét.

Ugyanaz a gondolat két helyzetben
  1. 1FeltételekForgalmi útvonal / tesztkörnyezet
  2. 2ElvárásKözlekedési szabály / követelmény
  3. 3MegfigyelésVizsgázó döntése / tényleges eredmény
  4. 4ÉrtékelésMegfelelt? / eltérés, kockázat

Egy sikeres forgalmi vizsga sem bizonyít minden jövőbeli helyzetre hibátlan vezetést; egy sikeres szoftverteszt sem bizonyít általános hibamentességet.

04 / TANANYAG

A tesztelés meghatározása lépésről lépésre

A szoftvertesztelés során előre meghatározott célból vizsgálunk egy munkaterméket, és az eredmény alapján információt adunk a minőségről, illetve az eltérésekről. Munkatermék lehet egy követelmény, terv, programkód, dokumentáció vagy működő alkalmazás. Ha futtatás nélkül átnézünk egy kétértelmű szabályt, statikus vizsgálatot végzünk; ha a programot különböző feltételekkel futtatjuk, dinamikus tesztelés történik.

Egy tesztesetben a kiinduló helyzetet, a bemenetet, a tevékenységet és az elvárt eredményt rögzítjük. A végrehajtás után a tényleges eredményt összevetjük az elvárttal. Ha eltérés van, pontosan leírjuk; ha nincs, az adott esetről kaptunk kedvező információt. Az ellenőrzésnek tehát nem az a célja, hogy a tesztelő találomra kattintgasson vagy előre 'megnyerje' a tesztet.

Példa: Teszt esetén minden szó számít

Kiindulás: aktív kölcsönzés előjegyzés nélkül. Művelet: hosszabbítás. Elvárás: új határidő látható és mentett; a tényből csak ezután állapítható meg, hogy megfelelt-e.

05 / TANANYAG

A tipikus célok nem mindig ugyanazok

Egyik cél lehet hibák feltárása, másik a követelmények teljesülésének vizsgálata. Lehet cél a kockázat csökkentése, a döntéshozók tájékoztatása, a megfelelő lefedettség elérése vagy a bizalom növelése. A tesztelés arra is választ kereshet, hogy a termék tényleg a felhasználó szükségletét elégíti-e ki. Az adott projekt, a tesztszint és az üzleti helyzet szabja meg, melyik cél kap hangsúlyt.

Gondolj két kérdésre: 'A leírt szabály szerint működik?' és 'Ez a szabály valóban segíti a felhasználót?' Az első a meghatározott követelményeknek való megfelelésre, a második a felhasználói igényre irányul. A két szempontot könnyű összekeverni: egy követelményt maradéktalanul teljesítő rendszer is lehet nehezen használható vagy a valódi célra alkalmatlan.

Tanári tipp

Ne csak azt írd a tervbe, hogy 'teszteljük a modult': nevezd meg, milyen döntéshez szeretnél bizonyítékot gyűjteni.

06 / TANANYAG

A forgalmi vizsga analógiája: hasonlóság és határ

Forgalmi vizsgán meghatározott környezetben, előírt szabályok alapján figyelik a vizsgázó vezetését. Vannak előfeltételek, feladatok, megfigyelt események és az eredmény értékelésének szempontjai. Szoftvertesztben hasonlóképpen meghatározzuk a környezetet, a bemeneteket, a követelményt, a lépéseket és az elvárt kimenetet. A hasonlat segít felismerni, hogy nem elég azt mondani: 'ment egy kört' vagy 'lefutott a program'. Azt kell vizsgálni, hogyan teljesült az előre rögzített elvárás.

A különbség legalább ilyen fontos. A vizsgázó ember pillanatnyi állapota és tanulása más jellegű, mint egy szoftver adott verziójának és környezetének viselkedése. A forgalmi vizsga a személy meghatározott helyzetben mutatott teljesítményéről ad mintát; a szoftverteszt a termék meghatározott állapotáról szolgáltat adatot. Egyik vizsga sem modellez minden jövőbeli helyzetet. Az analógia tehát gondolkodási eszköz, nem fogalmi azonosság.

Példa: Hasonlítsd össze

Vizsgán: kereszteződés, elsőbbségi szabály, megfigyelt döntés. Szoftvernél: 18 éves regisztráló, életkori szabály, megfigyelt elfogadás vagy elutasítás. Mindkettőnél rögzíteni kell a konkrét feltételeket.

RÉSZLETES ÓRAI JEGYZET

Fogalmi jegyzet: mit nevezünk szoftvertesztelésnek?

A tesztelés összefüggő tevékenységek folyamata. Része a tervezés, a vizsgálat, az eredmények kiértékelése és a megállapítások közlése.

JEGYZET · 01

A meghatározás részei

A tesztelés az összes szoftverfejlesztési életciklushoz kapcsolódik: nem kell megvárni a kész programot, mert a követelmények és tervek is vizsgálhatók. Statikus vizsgálat esetén nem futtatjuk a szoftvert; ilyen lehet egy dokumentum felülvizsgálata vagy egy elemzőeszköz használata. Dinamikus tesztelésnél a programot meghatározott bemenettel és feltételekkel futtatjuk.

A tesztelés a szoftvertermékek és a hozzájuk kapcsolódó munkatermékek tervezéséhez, létrehozásához és értékeléséhez kötődik. Ide tartozhat a forráskód, a követelmény, a műszaki terv, az oktatási anyag vagy a használati útmutató is. A vizsgálat azt értékeli, hogy teljesülnek-e a megadott követelmények, és a termék alkalmas-e a tervezett célra.

A tesztelés célja a hibák feltárása és az állapotról szóló megbízható információ biztosítása. A tesztelő a megfigyelt eredményt az előre rögzített elvárással hasonlítja össze. Az eltérés dokumentálása és közlése a fejlesztőkkel, a projektvezetővel vagy más érintettekkel a folyamat része.

JEGYZET · 02

A tesztelés tipikus céljai

A tesztelés feltárhat hibákat, ellenőrizheti a követelmények teljesülését, mérsékelheti a termékkockázatot, bizalmat adhat a rendszer állapotáról, illetve információval támogathatja a kiadási döntést. Egyes projektekben szerződéses, jogi vagy iparági előírások is meghatározhatják, milyen ellenőrzésre van szükség.

A verifikáció arra kérdez rá, hogy a termék a meghatározott specifikáció szerint készült-e el. A validáció azt vizsgálja, hogy a termék a tervezett használati környezetben valóban megfelel-e a felhasználó céljának. Mindkét nézőpont fontos: a helyes megvalósítás és a megfelelő termék nem mindig ugyanaz a kérdés.

JEGYZET · 03

A forgalmi vizsga analógiája

A forgalmi vizsga segít megérteni, hogy a vizsgálatnak vannak feltételei, elvárásai, megfigyelhető lépései és értékelési szempontjai. Ugyanígy a szoftvertesztnél is rögzítjük a környezetet, a kiinduló állapotot, a bemenetet, a műveletet és a várt eredményt.

Az analógia korlátozott: sem egy forgalmi vizsga, sem néhány szoftverteszt nem fedi le az összes későbbi helyzetet. A hasonlat a módszeres ellenőrzést szemlélteti, nem a teljes bizonyosságot.

Alapfogalmak

Tesztelés
A szoftverfejlesztési életciklushoz kapcsolódó statikus és dinamikus tevékenységek összessége, amely a szoftvertermékek és kapcsolódó munkatermékek tervezését, vizsgálatát és kiértékelését foglalja magában. Célja a követelmények teljesülésének, a célra való alkalmasságnak és a termékkel kapcsolatos hibáknak a megítélése.
Követelmény
Olyan szükséges feltétel vagy képesség, amely a felhasználó problémájának megoldását vagy céljának elérését szolgálja, és amelyet a rendszernek meg kell valósítania.
Felülvizsgálat
Egy munkatermék vagy projekt állapotának módszeres vizsgálata az eltérések feltárására és a továbblépés támogatására.
Statikus tesztelés
Munkatermék vizsgálata a szoftver futtatása nélkül.
Dinamikus tesztelés
A szoftver futtatásával végzett tesztelés, amely a megfigyelt viselkedést értékeli.
RÉSZLETES ELMÉLETI KIEGÉSZÍTÉS

Hiba, hibás állapot és meghibásodás

A tesztelésben különbséget kell tenni a tévedés, a hiba és a meghibásodás között. A tévedés emberi cselekvés vagy döntés, amely helytelen eredményt hozhat létre. A hiba a termékben vagy dokumentációban lévő hiányosság; futáskor bizonyos feltételek mellett hibás állapotot okozhat. Meghibásodáskor a rendszer viselkedése eltér az elvárt szolgáltatástól.

A lánc nem mindig teljes: egy kódbeli hiba olyan ágon is lehet, amelyet a teszt nem futtat. Ilyenkor nem tapasztalunk meghibásodást, bár a hiba jelen van. Máskor a hibás állapotot egy későbbi művelet teszi láthatóvá. A hibajelentés ezért írja le a környezetet, az előfeltételt, a lépéseket és a reprodukálhatóságot.

Új, iskolai példa

Egy fejlesztő a tanulói jogosultság ellenőrzésénél téves mezőnevet használ. Ez hiba a kódban; a védett jegyek megnyitásakor a jogosultság-ellenőrzés elmaradhat, ami meghibásodásként jelenik meg.

Gondolkodtató gyakorlófeladat

Készíts háromlépéses példát, amely megkülönbözteti a tévedést, a termékhibát és a felhasználó által észlelt meghibásodást.

PRÓBÁLD KI

Órai feladat

A könyvtári alkalmazásban az olvasó megújíthatja a kölcsönzést, ha nincs előjegyzés. Írj egy ellenőrizhető tesztesetet a feltétel igaz és egyet a hamis ágára; mindkettőhöz add meg az elvárt eredményt.

ELLENŐRIZD MAGAD

Melyik tevékenység tartozhat a szoftverteszteléshez futtatás nélkül is?

Amit érdemes megjegyezni

  • A tesztelés tervezésből, vizsgálatból, összehasonlításból és visszajelzésből áll.
  • Verifikáció: megfelelés az előírásnak; validáció: a felhasználói igény teljesülése.
  • Az analógia szemléltet, de egy sikeres teszt nem jelent teljes bizonyosságot.