7. óra · Szoftvertesztelés alapjai

Tesztelési alapelvek

Hét támpont a jó teszttervezéshez és a teszteredmények értelmezéséhez

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

  • Saját szavaiddal elmagyarázod mind a hét alapelvet, és nem kevered össze őket.
  • Konkrét helyzethez megfelelő tesztelési alapelvet és gyakorlati következményt rendelsz.
  • Megindoklod, miért nem bizonyítja a sikeres tesztsorozat a hibamentességet vagy a felhasználói sikert.

Az óra témái

  • Tesztelési alapelvek

A következőkben a tesztelés hét alapelvét részletesen megismerheted.

01 / TANANYAG

1. A tesztelés a hibák jelenlétét mutatja ki

Ha egy teszt hibát tár fel, bizonyítékot kapunk arra, hogy a vizsgált munkatermékben probléma van. Ha sok tesztben nem találunk hibát, az jó hír a kipróbált helyzetekről, de nem bizonyítja, hogy minden lehetséges bemenetben, állapotban és környezetben helyes a működés. A tesztelés csökkentheti a rejtve maradó hibák kockázatát, teljes bizonyosságot azonban nem ad.

Képzeld el, hogy egy regisztrációs űrlapot három életkorral próbálunk: 17, 18 és 19 évvel. Mindhárom eredmény megfelelő. Ettől még lehet hiba hiányzó dátum, rossz formátum vagy eltérő időzóna esetén. A pontos megfogalmazás tehát nem az, hogy 'a regisztráció hibátlan', hanem hogy 'ezekben az ellenőrzött esetekben nem figyeltünk meg eltérést'.

Példa: Mit állíthatsz felelősen?

Öt sikeres fizetési teszt után: az öt vizsgált forgatókönyvben a fizetés eredménye megfelelt az elvártnak. A megszakadt hálózati kapcsolat kockázatát ettől még külön vizsgálni kell.

Tanári tipp

A 'nem találtunk hibát' állításhoz mindig tedd hozzá, melyik verziót, adatot és környezetet ellenőrizted.

02 / TANANYAG

2. Teljes körű tesztelés általában lehetetlen

Egy egyszerűnek látszó űrlapnál is sokféle bemenet, böngésző, jogosultság, időpont és hálózati állapot kombinálódhat. Ha mindent mindennel kipróbálnánk, a vizsgálandó esetek száma gyorsan kezelhetetlenné válna. Kivételek lehetnek egészen apró, véges rendszerek, de valódi alkalmazásoknál általában választanunk kell. Ezért nem az a kérdés, hogy 'teszteltünk-e mindent?', hanem hogy az időnkben a legfontosabb esetekre koncentráltunk-e.

A választást a kockázat, a funkció használatának gyakorisága, a hiba lehetséges hatása és a teszttervezési módszerek segítik. Egy online jelentkezésnél érdemes elsőként a határidő körüli beküldést, a mentést és az ismételt küldést vizsgálni. A kevésbé fontos kozmetikai eltérések is rögzíthetők, de nem feltétlenül előzik meg az adatvesztés ellenőrzését. A kiválasztott mintáról és a nem vizsgált részekről is tudni kell beszámolni.

Példa: Kombinációk

Ha 4 böngészőt, 3 szerepkört, 5 adatkészletet és 2 hálózati állapotot vizsgálnánk együtt, az már 120 kombináció. Válassz tudatosan, és dokumentáld, mi maradt ki.

03 / TANANYAG

3. A korai tesztelés időt és költséget takaríthat meg

Nem kell megvárni a kész programot. Egy követelmény vagy képernyőterv áttekintése is feltárhat hiányt: pontosan kit tekintünk jogosultnak, mi történik hibás bemenetnél, hogyan jelezzük a sikert? Ha ezeket a kérdéseket még a megvalósítás előtt tisztázzuk, kevesebb hibás feltételezés kerülhet tovább a tervekbe, a kódba és a tesztesetekbe. A korai ellenőrzés lehet statikus, tehát a program futtatása nélkül végzett vizsgálat.

Tegyük fel, hogy a követelmény szerint 'az előfizető kedvezményt kap', de nem mondja meg a kedvezmény mértékét és a jogosultság kezdetét. Ha ezt a tesztelő a tervezéskor jelzi, a csapat pontosíthatja a szabályt. Ha a kérdés csak kiadás előtt merül fel, több egymásra épülő rész módosulhat: árképzés, számlázás, üzenetek és meglévő tesztek. Az alapelv nem számszerű garancia minden projektben, hanem gyakorlati ok arra, hogy minél korábban kérdezzünk.

Példa: Korai kérdés

A 'gyors keresés' helyett rögzítsünk mérhető elvárást: mekkora adathalmazban, milyen környezetben, mennyi idő alatt jelenjen meg az eredmény?

Tanári tipp

Olvasd át a követelményt úgy, mintha holnap konkrét tesztesetet kellene írnod belőle.

04 / TANANYAG

4. A hibák csoportosulnak

A felfedezett hibák gyakran nem egyenletesen oszlanak el: egyes összetett vagy gyakran változó részekben több probléma jelentkezik. A korábbi hibajegyek, a módosítások és az üzemeltetés tapasztalatai ezért segítenek meghatározni, mely részeket vizsgáljuk alaposabban. Az alapelv nem azt állítja, hogy egy konkrét rendszerben mindig ugyanaz a modul hibás, vagy hogy a többiben nem lehet gond.

Ha egy kedvezményrendszerben több eltérés van a kupon és az áfa együttes számításában, érdemes közeli eseteket keresni: kerekítés, visszatérítés, több kupon, eltérő pénznem. A tesztterv így a megfigyelt kockázatra válaszol. Ugyanakkor egy új funkció vagy átalakított modul később más területre helyezheti a hangsúlyt; a hibacsoportokat időről időre újra kell értékelni.

Példa: Tesztterv-módosítás

Az öt megtalált hibából négy a kosár végösszegéhez kötődik. Tervezz új teszteket a kapcsolódó árképzési esetekre, de a többi fontos folyamatot se hagyd ellenőrizetlenül.

05 / TANANYAG

5. A tesztek idővel veszíthetnek hibafeltáró erejükből

Ha változatlan tesztadatokkal és lépésekkel sokszor ismételjük ugyanazt az ellenőrzést, az új hibák megtalálásában egyre kevesebb segítséget adhat. A termék közben fejlődik, új szabályok és új használati szokások jelennek meg. Az eredeti teszteket ezért célszerű felülvizsgálni, új adatokkal kiegészíteni, és szükség esetén új teszteseteket írni. Az alapelvet olykor 'peszticidparadoxonként' is említik, de a lényeg a tesztek megújítása.

Fontos kivétel: egy stabil automatikus regressziós tesztet továbbra is érdemes újra és újra futtatni. Az ilyen teszt gyorsan észreveheti, ha egy már ismert működés elromlik egy változtatás után. A 'tesztek kopnak' tehát nem azt jelenti, hogy a régi tesztek értéktelenné válnak; azt, hogy önmagukban nem feltétlenül találnak meg minden új problémát.

Példa: Megújított teszt

A kuponos rendelés régi tesztje marad regressziós védelemnek. Mellé új eset készül lejárt kuponnal és második felhasználási kísérlettel.

Tanári tipp

Tartsd meg a hasznos regressziós tesztet, és kérdezd meg: melyik új szabályra nincs még esetünk?

06 / TANANYAG

6. A tesztelés környezetfüggő

Nincs minden helyzetben ugyanolyan jó tesztelési recept. A rendszer célja, a felhasználók, a kockázatok és az elfogadható következmények határozzák meg, milyen ellenőrzés szükséges. Más szempontok lesznek elsődlegesek egy egyszerű iskolai eseménynaptárban, mint egy banki átutalást kezelő rendszerben. A két szoftvernél egyaránt számít a helyesség, de a hiba hatása és a szükséges bizonyíték mélysége eltér.

A környezethez tartozik a használt eszköz, a kapcsolódó szolgáltatás és a felhasználói folyamat is. Egy tanári tananyagtárnál fontos lehet a mobil olvashatóság, a keresés és a fájlletöltés. Egy sürgősségi rendszerben emellett különösen nagy súlyt kaphatnak a biztonsági és rendelkezésre állási kérdések. Az alkalmazott tesztek kiválasztását mindig a konkrét célhoz indokoljuk.

Példa: Két eltérő prioritás

Iskolai kvíznél az elveszett válasz és a helytelen pontszám fontos kockázat. Pénzügyi rendszerben az ismételten elküldött tranzakció miatti dupla terhelés kiemelten kritikus lehet.

07 / TANANYAG

7. A hibák hiánya nem garantálja a hasznos terméket

Egy rendszer teljesítheti az összes leírt követelményt, és a tesztekben mégsem találnak eltérést, miközben a felhasználó alapvető szükségletét nem oldja meg. Lehet, hogy maga a követelmény hiányos, elavult vagy rosszul értelmezett. A követelmények teljesülésének ellenőrzése mellett ezért a felhasználói igény és az üzleti cél teljesülését is vizsgálni kell. Ezt az alapelvet a hibamentesség téves következtetésének is nevezik.

Például egy időpontfoglaló rendszer pontosan ment minden előírt mezőt, de nem engedi a foglalás módosítását, pedig a felhasználók számára ez nélkülözhetetlen. A 'minden teszt zöld' ebben az esetben csak azt mutatja, hogy a megírt tesztek és a leírt szabályok összhangban vannak. A termék sikeréhez a megfelelő célt is ellenőrizni kell: egyeztetés a felhasználókkal, valódi használati helyzetek kipróbálása és a követelmények szükség szerinti módosítása.

Példa: Hasznos-e a termék?

A rendszer hibátlanul számol útvonalat, de nem támogat akadálymentes útvonalat a célközönségnek. A számítás helyessége és a valós igény teljesülése két külön kérdés.

A hét alapelv egy teszttervben
  1. 11. JelenlétHibát kimutathatunk; a hiányát nem bizonyítjuk.
  2. 22. KiválasztásMindent nem próbálhatunk ki; rangsorolunk.
  3. 33. KoraiságA követelményt is ellenőrizzük, még a kód előtt.
  4. 44. CsoportosulásA talált hibák megmutathatják a kockázatos részeket.
  5. 55. MegújításAz új szabályokhoz új tesztek és adatok kellenek.
  6. 66. KörnyezetA cél és a kockázat alakítja az ellenőrzést.
  7. 77. Valódi igényA zöld tesztek mellett a használhatóság is számít.

Az ábra tanulási segédlet: az alapelvek együtt vezetnek jobb döntéshez, nem egymást kizáró lépések.

08 / TANANYAG

Hogyan dolgoznak együtt az alapelvek?

Vegyünk egy online kurzusfelvételi rendszert. A követelmény átnézésével már korán rákérdezünk a létszámkorlátra (korai tesztelés). A jelentkezések minden lehetséges sorrendjét nem tudjuk kipróbálni, ezért a megtelt és majdnem megtelt kurzust előre vesszük (teljes körű tesztelés lehetetlensége). Ha sok hiba a várólistán jelentkezik, ott több esetet vizsgálunk (hibák csoportosulása). Ezek nem külön versengő szabályok, hanem ugyanannak a teszttervezésnek más-más szempontjai.

Kiadás után új előjegyzési szabály érkezik: frissítjük a teszteket, miközben a korábbi beiratkozási ellenőrzések tovább futnak (a tesztek megújítása). A diákok többsége telefonon jelentkezik, ezért mobilon is vizsgáljuk a fő folyamatot (környezetfüggőség). A sikeres tesztek sem fedhetnek le mindent (hibák jelenlétének elve), és külön megkérdezzük, hogy a diák számára átlátható-e a várólista (a hibák hiánya nem elég).

Példa: Egy mondatban

A hét alapelv azt segít eldönteni, mire figyeljünk, mit jelentenek az eredmények, és milyen kérdést kell még feltennünk.

09 / TANANYAG

Gyakori félreértések és pontos megfogalmazások

'Nem találtunk hibát, tehát nincs hiba' – ezt nem állíthatjuk: csak a vizsgált esetek eredményéről van bizonyíték. 'Mindent teszteltünk' – legfeljebb a megállapodott, véges esethalmazt futtattuk le. 'Csak a kész programot lehet tesztelni' – egy követelményt vagy tervet is ellenőrizhetünk. 'Minden modulra ugyanannyi teszt kell' – a kockázat és a korábbi hibák eltérő mélységet indokolhatnak.

'Ha a tesztek kopnak, a régieket ki kell dobni' – a régi regressziós tesztek védhetik a jól működő részeket; új kockázat mellé új esetet írunk. 'Egy minden projektre kész tesztlista elég' – a felhasználók és a körülmények mások. 'Ha nincs nyitott hiba, a felhasználó biztosan elégedett' – az igények teljesüléséről külön visszajelzésre van szükség. Ezeket a kijelentéseket a saját feladatodon is próbáld helyes, bizonyítható mondatokká alakítani.

Tanári tipp

Dolgozatban az alapelv neve mellé mindig írj egy mondatot arról, mit változtatnál meg a konkrét teszttervben.

RÉSZLETES ÓRAI JEGYZET

Összefoglaló fogalomtár és tanulási célok

Ezek a fogalmak segítenek összekapcsolni a 2–7. lecke témáit. A definíció után mindig próbálj saját példát is mondani, hogy lásd, érted-e a fogalmat a gyakorlatban.

JEGYZET · 01

A témakör végére elérendő tudás

Meg tudod indokolni, miért van szükség tesztelésre, és példát tudsz mondani arra, hogyan hathat egy programhiba az egyénre, egy szervezetre vagy a környezetre. Meg tudod különböztetni az emberi tévedést, a munkatermékben lévő hibát és a megfigyelt meghibásodást.

El tudod magyarázni, hogyan ad a tesztelés információt a minőségről, hogyan kapcsolódik a minőségbiztosításhoz, és miért nem bizonyítja néhány sikeres teszt a hibamentességet. A fogalmakat tesztesetek, hibajegyek és kiadási döntések példáin is alkalmazni tudod.

  • Tudsz kockázat alapján tesztelési prioritást indokolni.
  • Elválasztod a tesztelést a hibakereséstől és a javítástól.
  • Megnevezed a tesztelés általános céljait.
  • A hét tesztelési alapelvet helyzetekben is felismered.

Alapfogalmak

Kockázat
Egy bizonytalan esemény lehetséges kedvezőtlen következménye; a valószínűségét és hatását együtt mérlegeljük.
Meghibásodás
A komponens vagy rendszer megfigyelhető eltérése az elvárt eredménytől vagy szolgáltatástól.
Minőség
Annak mértéke, hogy a termék mennyire felel meg a követelményeknek és a felhasználói, illetve ügyféligényeknek.
Programhiba
A szoftverben lévő hiba, amely bizonyos körülmények között az elvárt viselkedéstől való eltérést okozhat.
Kimerítő tesztelés
Az összes lehetséges bemenet és előfeltétel-kombináció vizsgálata; általában nem megvalósítható, ezért prioritásokat kell választani.
Követelmény
A felhasználó céljához vagy problémájának megoldásához szükséges feltétel vagy képesség, amelyet a rendszernek teljesítenie kell.
Felülvizsgálat
Munkatermék vagy projekt állapotának vizsgálata az eltérések feltárására és a továbblépés támogatására.
Hibakeresés
A talált eltérés okának megkeresése és elemzése; a tesztelés feladata az eltérés feltárása és ellenőrzése.
Tesztelési cél
Az a konkrét eredmény vagy kérdés, amelyhez a tesztelés bizonyítékot és információt gyűjt.
Teszteset
Előre meghatározott előfeltételek, bemenetek, műveletek és elvárt eredmények együttese egy adott tesztcél ellenőrzésére.
FogalomMire válaszol?Példa
Emberi tévedésMilyen emberi döntés vagy cselekedet volt helytelen?A szabály félreértelmezése.
ProgramhibaMi a hibás a munkatermékben?A kódban 18 helyett 19 éves korhatár szerepel.
MeghibásodásMit tapasztalt a felhasználó vagy tesztelő?A 18 éves jelentkezőt elutasítja a rendszer.
Kiváltó okMiért válhatott lehetővé a hiba?A követelményből hiányzott a határérték tisztázása.
RÉSZLETES ELMÉLETI KIEGÉSZÍTÉS

A tesztelés pszichológiája és együttműködése

A tesztelés célja a termékkel kapcsolatos bizonytalanság csökkentése, nem a fejlesztő teljesítményének minősítése. A hibák tárgyszerű, együttműködő közlése segíti a javítást. A személyes hibáztatás védekezést vált ki, és csökkenti annak esélyét, hogy a csapat megossza a kockázatokról szerzett információkat.

A megerősítési torzítás miatt hajlamosak vagyunk az elvárásainkat igazoló jeleket keresni. A tesztelő tudatosan próbáljon ellenpéldákat keresni, többféle nézőpontot képviselni, és a tényeket különválasztani a feltételezésektől. A fejlesztő és a tesztelő együtt tisztázhatja a követelményeket, miközben a független ellenőrzés továbbra is értékes.

Új, iskolai példa

A „rosszul írtad meg” helyett a hibajegy azt rögzíti: „A 2026. október 12-i környezetben, tanulói szerepkörrel, a 4. lépés után a felület másik tanuló jegyét mutatja.”

Gondolkodtató gyakorlófeladat

Alakíts át egy indulatos hibajelzést semleges, reprodukálható hibajeggyé.

PRÓBÁLD KI

Órai feladat

Egy új iskolai jelentkezési felület 40 régi automatikus tesztje mind sikeres. A 18 évesek mégsem tudnak regisztrálni; a felületet telefonon nehéz használni. Ráadásul nemrég bevezettek új jogosultsági szabályt, amelyre nincs teszt. Nevezz meg legalább négy ideillő tesztelési alapelvet, és mindegyikhez írj egy konkrét következő lépést.

ELLENŐRIZD MAGAD

Melyik állítás írja le helyesen a tesztek idővel csökkenő hibafeltáró erejét?

Amit érdemes megjegyezni

  • A tesztelés hibát találhat, de hibamentességet nem bizonyíthat; minden esetet sem tudunk kipróbálni.
  • Érdemes korán vizsgálódni és a hibásabb részekre figyelni; a tesztkészletet a változásokhoz igazítjuk.
  • A jó tesztelési stratégia a konkrét környezettől és a felhasználó valódi céljától függ.