5. óra · Szoftvertesztelés alapjai

Miért szükséges a tesztelés?

Minőségbiztosítás, emberi hibák, okok és hatások

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

  • Megkülönbözteted a minőségbiztosítást a teszteléstől.
  • Példán követed a kiváltó ok → tévedés → hiba → meghibásodás láncot.
  • Indokolod, hogyan segíti a tesztelési eredmény a kiadási döntést.

Az óra témái

  • A tesztelés hozzájárulása a sikerhez
  • Minőségbiztosítás és tesztelés
  • Emberi eredetű hibák és meghibásodások
  • Hibák, kiváltó okok és hatások
01 / TANANYAG

Mit ad a tesztelés egy projektnek?

A tesztelés korán felfedezett hibákkal javítási lehetőséget ad, és a termék különböző állapotairól bizonyítékot szolgáltat. A tesztelő a felhasználó szempontjait is képviselheti: nemcsak azt nézi, hogy a rendszer képes-e egy műveletre, hanem azt is, hogy az eredmény használható-e. A tesztelési adatok segítenek a fejlesztési, javítási és kiadási döntésekben.

Ez nem kizárólag a tesztelő munkája. A fejlesztő, az elemző, az üzemeltető és a felhasználói képviselő is hozzájárulhat a minőséghez. Egy jól megfogalmazott kérdés a követelményről gyakran többet ér, mint később sok, rossz feltételezésen alapuló teszt.

02 / TANANYAG

Minőségbiztosítás és tesztelés nem szinonimák

A minőségbiztosítás a munkafolyamatok javítására és a hibák megelőzésére irányul: például egységes követelménysablon, ellenőrzési rend, megfelelő kódáttekintés. A tesztelés a termék és a kapcsolódó munkatermékek minőségéről gyűjt információt, hibákat tár fel, és a minőségellenőrzés fontos formája. Egyik sem váltja ki a másikat.

Ha egy csapatnál sokszor félreérthető követelményekből lesz hiba, a tesztelés megmutatja a következményeket, de a minőségbiztosítás a követelmények megírásának és felülvizsgálatának folyamatát is javítja. A teszteredmények így nemcsak az adott hibajavítást, hanem a későbbi hibák megelőzését is segítik.

Példa: Folyamat és termék

A csapat bevezet egy követelmény-felülvizsgálati listát: ez megelőző folyamatfejlesztés. Egy konkrét regisztrációs teszt kimutatja, hogy a 18 évesek elutasítást kapnak: ez termékre vonatkozó tesztelési eredmény.

03 / TANANYAG

A négy fogalom lánca

Kiváltó ok lehet például a félreérthető követelmény és a felülvizsgálat hiánya. Ennek hatására a fejlesztő tévesen értelmezhet egy szabályt: ez emberi tévedés. A forráskódban hibás feltétel marad: ez hiba. Ha az érintett feltétel egy futás során teljesül, a felhasználó hibás viselkedést tapasztal: ez meghibásodás. Nem minden kódbeli hiba okoz azonnal vagy minden esetben látható meghibásodást.

A hibakeresés az eltérés okát keresi és javítja; a tesztelés utána ellenőrzi, hogy megszűnt-e a megfigyelt probléma. A kiváltó ok elemzése még egy lépéssel hátrébb lép: miért kerülhetett be a hiba, és hogyan csökkenthető a hasonló hibák jövőbeni száma?

Tanári tipp

Hibajegynél a „tapasztalt eredmény” és a „gyanított ok” külön mező legyen: a megfigyelés biztosabb, mint a korai feltételezés.

A probléma lehetséges ok-okozati útja
  1. 1Kiváltó okPéldául félreérthető követelmény
  2. 2Emberi tévedésA szabály rossz értelmezése
  3. 3ProgramhibaHibás feltétel a munkatermékben
  4. 4MeghibásodásA felhasználó rossz eredményt lát

Az utolsó lépés nem szükségszerű minden futásnál: a hiba csak meghatározott körülmények között válhat láthatóvá.

04 / TANANYAG

A tesztelés hozzájárulása: bizonyíték, visszajelzés, javítás

A tesztelés nem maga a hibajavítás. Azzal járul hozzá a sikerhez, hogy feltár egy eltérést, érthetően megmutatja a következményét, és ellenőrizhető információt ad a döntéshozóknak. Ha a hiba korán ismertté válik, a csapat még a nagyobb továbbterjedés előtt javíthatja. A jó teszt nem a tesztelő eredményességét 'bizonyítja', hanem segít megítélni, mennyire megbízható a termék a fontos használati helyzetekben.

A teszteredmény nem csak 'sikeres' vagy 'sikertelen' lehet. Tartalmazhatja a vizsgált verziót, az érintett környezetet, a végrehajtott eseteket, a nem ellenőrzött részeket és a fennmaradó kockázatokat. Ez alapján a csapat dönthet hibajavításról, további tesztelésről vagy a kiadás elhalasztásáról. Ha nem derül ki, mit nem vizsgáltunk, a sikeres eredmény félrevezető lehet.

Példa: Miért számít a jelentés?

'A fizetés tesztelve' kevés. 'Bankkártyás fizetés sikeres két böngészőben; megszakadt kapcsolat után a dupla terhelés ellenőrzése még nyitott' már használható döntési információ.

05 / TANANYAG

Megelőzés és ellenőrzés együtt

A minőségbiztosítás elsősorban arra kérdez rá, hogy milyen munkafolyamatok mellett keletkezik kevesebb hiba: hogyan írjuk a követelményeket, kik véleményezik őket, milyen ellenőrzési szabályok vannak. A tesztelés a konkrét munkatermékből nyer bizonyítékot, például egy űrlap működésének vagy egy dokumentum egyértelműségének ellenőrzésével. Az előbbi megelőzésre, az utóbbi feltárásra és visszajelzésre helyez hangsúlyt.

Ha tíz alkalommal ugyanaz a dátumértelmezési hiba bukkan fel, nem elég a tizedik változatot is kijavítani. A csapatnak érdemes megnézni, hogyan rögzíti a dátumokra vonatkozó követelményeket és hogyan vizsgálja a határokat. A tesztelés ekkor a minőségbiztosításnak is adatot szolgáltat: a visszatérő mintázat a folyamat javításának szükségességét mutatja.

Tanári tipp

Válaszd szét a két kérdést: 'melyik konkrét hiba van a termékben?' és 'milyen folyamat miatt fordulhat elő újra?'

06 / TANANYAG

Hiba, hatás és kiváltó ok: ne állj meg az első tünetnél

Egy online pénztárnál a vevő 20% kedvezményt vár, mégis 2%-ot kap. Ez a megfigyelt hatás. A programban szereplő téves százalékkezelés lehet a hiba, de ezt a kód és az adatok vizsgálata igazolja. Az emberi tévedés lehet a százalékérték félreértése, a mélyebb kiváltó ok pedig az, hogy a követelmény nem rögzítette a tárolt érték mértékegységét. A lánc tagjai tehát különböző kérdésekre válaszolnak.

A hiba nem feltétlenül látszik azonnal. Ha a kedvezményes ágat csak ritkán használják, a hibás kód hosszú ideig rejtve maradhat. Fordítva is előfordulhat: hibás működést külső körülmény, például szolgáltatáskimaradás okoz. Éppen ezért a hibajegyben a tényleges eredményt kell biztos tényként rögzíteni; a gyökérokot vizsgálat után állapítjuk meg. A javítás akkor teljes, ha az eredeti eltérés megszűnik, és a hasonló okot is kezeljük, amennyiben lehetséges.

Példa: Ok és tünet szétválasztása

Tünet: 2% kedvezmény jelenik meg. Lehetséges hiba: rossz átváltás. Lehetséges kiváltó ok: kétértelmű szabály. A 'lehetséges' szót addig őrizd meg, amíg nincs bizonyíték.

RÉSZLETES ÓRAI JEGYZET

Kiegészítő jegyzet: siker, minőségbiztosítás és hibák

A tesztelés akkor támogatja igazán a projekt sikerét, ha a megfelelő technikákat a megfelelő időben, megfelelő szakértelemmel alkalmazzák, és az eredményeket a döntésekhez használják.

JEGYZET · 01

A tesztelés hozzájárulása a sikerhez

A követelmények és a felhasználói történetek korai felülvizsgálata feltárhatja az ellentmondásokat és a nem tesztelhető megfogalmazásokat, még mielőtt hibás funkció épülne rájuk. A tesztelők és tervezők együttműködése tisztázhatja a rendszer működését és a későbbi ellenőrzés szempontjait. A fejlesztőkkel folytatott közös munka csökkentheti a kódban és a tesztekben rejlő félreértéseket.

A kiadás előtti ellenőrzés láthatóvá teszi a fennmaradó hibákat és segíti a kockázat megítélését. A hiba kijavítása után a tesztelés megerősíti, hogy a korábban tapasztalt eltérés megszűnt-e. Az ilyen információ növeli annak esélyét, hogy az átadott termék megfelel a követelményeknek és az érintettek igényeinek.

JEGYZET · 02

Minőségbiztosítás és tesztelés

A minőségmenedzsment a szervezet minőséggel kapcsolatos irányítását és szabályozását jelenti. A minőségbiztosítás elsősorban a megfelelő folyamatok kialakítására és követésére összpontosít, hogy megelőzze a hibákat és bizalmat építsen a minőségi működésben. Ilyen intézkedés lehet a követelmények szakmai felülvizsgálata vagy az egységes ellenőrzési eljárás.

A tesztelés a termékről és a kapcsolódó munkatermékekről gyűjt bizonyítékot: működik-e az adott funkció, és van-e eltérés az elvárástól? A tesztelés és a minőségbiztosítás kapcsolódik egymáshoz, de nem azonos. A tesztelés eredményei a folyamatok javítását is segíthetik, a jobb folyamatok pedig megelőzhetik a hibák egy részét.

JEGYZET · 03

A tévedéstől a meghibásodásig

Az ember hibázhat a követelmény értelmezésekor, a terv készítésekor vagy a programkód megírásakor. Az emberi tévedés munkatermékben lévő hibát eredményezhet; a hibás kód futtatásakor pedig meghibásodás jelentkezhet. A lánc nem automatikus: egy adott hiba csak bizonyos bemenet vagy előfeltétel mellett válhat láthatóvá.

A lehetséges emberi okok közé tartozik a szoros határidő, a tapasztalat vagy képzés hiánya, a nem megfelelő kommunikáció, a feladat vagy technológia összetettsége, a rendszerkapcsolatok félreértése és az új, ismeretlen technológia. Meghibásodást emellett környezeti tényező is okozhat, például elektromágneses hatás vagy hardverprobléma.

A váratlan teszteredmény önmagában még nem bizonyít termékhibát. Hibás tesztadat, rossz környezet vagy a teszt hibás végrehajtása hamis pozitív jelzést okozhat. Hamis negatív esetén a teszt nem találja meg azt a hibát, amelyet fel kellett volna tárnia. Mindkét esetben a teszteljárás és a környezet ellenőrzése is szükséges.

Alapfogalmak

Minőségbiztosítás
A minőségmenedzsment azon része, amely a folyamatok megfelelő működésére összpontosít, és a minőségi célok elérésébe vetett bizalmat támogatja.
Hibakeresés
A meghibásodás vagy tesztelt eltérés okának megkeresése és elemzése; a hibajavítás a feltárt ok megszüntetésére irányul.
Hamis pozitív teszteredmény
Olyan tesztjelzés, amely hibát jelez, miközben a tapasztalt eltérést valójában a teszt, a tesztadat vagy a környezet hibája okozza.
Hamis negatív teszteredmény
Olyan teszteredmény, amely nem jelez hibát, noha az ellenőrzésnek fel kellett volna tárnia azt.
RÉSZLETES ELMÉLETI KIEGÉSZÍTÉS

A tesztelés alapelvei a gyakorlatban

A tesztelés megmutathatja hibák jelenlétét, de nem bizonyítja azok teljes hiányát. A kimerítő tesztelés a legtöbb nem triviális rendszernél lehetetlen, ezért kockázat alapján választunk mintákat. A tesztet érdemes korán elkezdeni, mert a félreértett követelmény javítása a későbbi fázisokban sokkal több munkát okozhat.

A hibák gyakran néhány, összetett területre koncentrálódnak; a teszteket ezért rendszeresen a problémás részekhez kell igazítani. A tesztelés ismétlése önmagában nem garantál új hibák megtalálását: a tesztkészletet karban kell tartani, és új kockázatokhoz kell igazítani. A megfelelő megközelítés a termék céljától és környezetétől függ, azonos módszer nem lesz minden rendszerre optimális.

Új, iskolai példa

Ha az előző tanévben a fájlfeltöltésnél volt több hiba, a következő kiadás teszttervében erre a területre külön ellenőrzések kerülhetnek, miközben a többi funkció minimális regressziós ellenőrzést kap.

Gondolkodtató gyakorlófeladat

Mind a hét alapelvhez írj egy rövid példát egy iskolai digitális felületről.

PRÓBÁLD KI

Órai feladat

A kedvezmény 20% lenne, de a számlán 2% jelenik meg. A specifikációban csak „20” szerepelt mértékegység nélkül. Rendezd sorba a kiváltó okot, a tévedést, a hibát és a meghibásodást.

ELLENŐRIZD MAGAD

Melyik példa inkább minőségbiztosítási, megelőző intézkedés?

Amit érdemes megjegyezni

  • A tesztelés javítási és döntési információt ad.
  • A minőségbiztosítás elsősorban megelőző, folyamatközpontú tevékenység.
  • A kiváltó ok, a tévedés, a hiba és a meghibásodás összefügg, de nem azonos.