3. óra · Szoftvertesztelés alapjai

A tesztelés szerepe a szoftverek fejlesztésében, karbantartásában és működtetésében

Tesztelés és minőség – mennyi elég?

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

  • Felismered a tesztelés szerepét egy termék teljes életében.
  • Megkülönbözteted a követelménynek való megfelelést a felhasználói igény teljesülésétől.
  • Kockázatok alapján indokolsz tesztelési prioritást és leállási döntést.

Az óra témái

  • Tesztelés és minőség
  • Mennyi tesztelés elegendő?
01 / TANANYAG

A tesztelés a fejlesztés elején kezdődhet

A tesztelő nemcsak a kész alkalmazást futtatja. Már egy követelmény, felhasználói történet vagy képernyőterv átnézésekor felteheti a kérdést: egyértelmű-e a szabály, ellenőrizhető-e az eredmény, mi történik érvénytelen bemenet esetén? Az ilyen korai visszajelzés még a megvalósítás előtt megakadályozhat félreértéseket.

Fejlesztés közben a részeket külön és együtt is vizsgálni kell. Amikor a rendszert karbantartják – hibát javítanak, új funkciót adnak hozzá, környezetet frissítenek –, a változtatást ellenőrizni kell, és meg kell nézni, nem romlott-e el más működés. Az üzemeltetésből érkező hibajelzések pedig új tesztesetek alapjául szolgálhatnak.

Példa: Kis módosítás, nagy hatás

Egy webshopban megváltozik a szállítási díj számítása. Az új díj helyessége mellett érdemes ellenőrizni az összesítést, az áfát, a fizetésre átadott összeget és a visszaigazoló e-mailt is.

02 / TANANYAG

Mit jelent itt a minőség?

A minőség nem egyetlen hibaszám. Fontos, hogy a rendszer megfelel-e a leírt követelményeknek (verifikáció), de az is, hogy a valós használatban megoldja-e a felhasználó problémáját (validáció). Egy oldal teljesítheti a specifikációt, miközben a felhasználó a fontos műveletet nem találja meg rajta.

A tesztelési eredmény döntési információ: milyen hibák maradtak nyitva, mely funkciókat próbálták ki, milyen környezetekben, és mekkora a fennmaradó kockázat? A „sikeresen lefutott 100 teszt” önmagában kevés, ha egy fontos fizetési útvonalat egyszer sem vizsgáltak.

Tanári tipp

A tesztjelentésben a puszta darabszámok mellé mindig tedd oda a lefedett üzleti folyamatokat és a nyitott kockázatokat.

03 / TANANYAG

Mikor elég a tesztelés?

Tökéletes bizonyosság általában nem érhető el: az idő, a költség, az adatkombinációk és a környezetek száma korlátozza a vizsgálatot. A leállás ezért tudatos döntés a megállapodott célok, a végrehajtott tesztek, a hibák súlyossága és a hátralévő kockázat alapján.

Ha egy oktatási alkalmazásban a fő feladatsor mentése időnként elveszik, a rendszer nem tekinthető késznek attól, hogy a színek és a kereső jól működnek. Ha viszont a kiadás előtt csak egy alacsony hatású elírás marad, a kiadás vállalható lehet – a döntésnél számít a környezet és a célközönség is.

Visszacsatolás a szoftver életében
  1. 1FejlesztésKövetelmény és megvalósítás
  2. 2KarbantartásVáltoztatás és regresszió
  3. 3MűködtetésValós használat és jelzések

Az üzemeltetésből érkező tapasztalat új követelményhez vagy tesztesethez vezethet; ez nem egyszeri, lezárt folyamat.

04 / TANANYAG

Tesztelés a fejlesztés különböző pontjain

A projekt elején a tesztelés segíthet tisztázni a követelményt: mit jelent pontosan az, hogy 'gyors' vagy 'egyszerűen használható'? Az ellenőrizhetetlen mondat helyett mérhető elvárás kell. Később vizsgálhatjuk az egyes részek működését, a részek kapcsolatát és a teljes felhasználói folyamatot. Nem egyetlen 'tesztelés' nevű pillanat van a kiadás előtt, hanem egymáshoz kapcsolódó megfigyelések és visszajelzések.

Például egy könyvtári rendszer követelményében ez áll: 'a lejárt kölcsönzés nem hosszabbítható meg'. Már itt érdemes megkérdezni, hogy az esedékesség napján 23:59-kor még hosszabbítható-e, és melyik időzóna számít. Ha ez tisztázatlan marad, a fejlesztés, a teszteset és a felhasználói elvárás három különböző értelmezésre épülhet.

Példa: Korai visszajelzés

A 'gyors keresés' helyett például: '10 000 rekord mellett az eredmény 3 másodpercen belül megjelenik a megadott tesztkörnyezetben'.

05 / TANANYAG

Miért kell karbantartás és működtetés közben is tesztelni?

Karbantartás nem csak hibajavítás lehet. Új szolgáltatás, biztonsági frissítés, operációsrendszer-váltás vagy adatbázis-migráció is módosíthatja a működést. Egy kijavított helyzetre megerősítő ellenőrzés kell, de azt is nézni kell, hogy a változás nem rontott-e el korábban működő folyamatokat. Ezt nevezzük regressziós vizsgálatnak. A legfontosabb útvonalak – például bejelentkezés, mentés, fizetés – ismételt ellenőrzése kiemelten értékes.

A működtetés során a felhasználók olyan adatokat, eszközöket és folyamatokat hozhatnak, amelyekre a csapat nem gondolt. Egy ügyfélszolgálati jelzés ezért nem egyszerűen 'panasz': megfigyelés a valós környezetről. A jelzésből előbb reprodukálható esetet, majd szükség esetén új tesztet készítünk, és visszacsatolunk a követelményekhez. Így tanul a termék és a csapat.

Tanári tipp

Változtatás után két kérdést tegyél fel: működik-e az új rész, és megmaradt-e a régi, fontos működés?

06 / TANANYAG

Mennyi tesztelés elegendő: döntés, nem bűvös százalék

A tesztelés mennyisége a cél, a kockázat, a rendszer használata és a rendelkezésre álló erőforrások szerint változik. Egy tanulói kvíznél és egy betegellátást támogató rendszernél nem ugyanaz a hibák lehetséges következménye. A döntéshez nézni kell, mely követelményekre vannak tesztek, milyen adatokat és környezeteket próbáltunk, milyen súlyos hibák nyitottak, valamint ki vállalja a fennmaradó kockázatot. A tesztek száma önmagában nem alkalmas a minőség bizonyítására.

Hasznos előre megfogalmazni a befejezés feltételeit: például a kritikus folyamatok lefutottak, nincs ismert blokkoló hiba, és az ismert kisebb eltérésekre van tudatos döntés. Ez nem jelenti a hibamentességet; azt jelenti, hogy a résztvevők ismert bizonyítékok és korlátok alapján döntenek. Ha egy kulcsfolyamat hibás, a sok sikeres, mellékes teszt nem ellensúlyozza automatikusan a veszélyt.

Példa: Döntési példa

200 sikeres felületi teszt és egy reprodukálható adatvesztés nem '99,5% készültség'. Az adatvesztés hatását külön kell értékelni, majd javítani és újratesztelni.

RÉSZLETES ÓRAI JEGYZET

Kiegészítő jegyzet: minőség és a tesztelés szerepe

A tesztelés fejlesztés, karbantartás és működtetés alatt is támogatja a döntéseket. Nem pusztán hibaszámot állít elő: azt segít megítélni, mennyire felel meg a termék az elvárásoknak, és milyen kockázatok maradtak.

JEGYZET · 01

Tesztelés az életciklus különböző pontjain

A tesztelő már a követelmények és a tervek áttekintésekor kérdéseket tehet fel: egyértelmű-e a megfogalmazás, tesztelhető-e az elvárt viselkedés, és leírták-e a kivételes helyzeteket? A fejlesztés során a komponensek és az összekapcsolt folyamatok ellenőrzése következik. Karbantartáskor a módosított funkciót és a kapcsolódó működéseket is vizsgálni kell.

A használat során érkező hibajelzések új tesztesetekhez vezethetnek. Ha például egy frissítés után a számla végösszege hibásan jelenik meg, ellenőrizni kell a javítást, majd a kedvezményeket, adókat, fizetést és a bizonylatot is, mert ugyanaz a változtatás több funkcióra hathat.

JEGYZET · 02

A tesztelés bizonyítékot ad, nem abszolút garanciát

A tesztelési eredmény megmutatja, hogy a megadott verzió, környezet és adatok mellett milyen viselkedést figyeltünk meg. A sikeres teszt nem bizonyítja az összes lehetséges helyzet hibátlanságát. A sikertelen teszt viszont fontos jelzés lehet: eltérést tár fel, amelynek okát és súlyosságát meg kell vizsgálni.

A tesztelés mennyiségét az idő és a költség korlátozza, ezért rangsorolni kell. A befejezési döntésnél a tesztcélok teljesülése mellett figyelembe vesszük a nyitott hibákat, azok hatását, a még nem ellenőrzött területeket és a fennmaradó kockázatot. Egyetlen százalékos mutató nem helyettesíti ezt az értékelést.

  • Mely felhasználói folyamatokat vizsgáltuk?
  • Milyen környezeteket és adatokat használtunk?
  • Milyen súlyos hibák maradtak nyitva?
  • Milyen kockázatot fogadunk el a kiadásnál?
JEGYZET · 03

Kiváltó ok keresése

Ha egy hiba ismétlődik, nem elég minden alkalommal csak az egyedi tünetet kijavítani. A kiváltóok-elemzés azt vizsgálja, milyen korábbi feltételek vagy folyamatok tették lehetővé a probléma kialakulását. Egy nyomtatási gond közvetlen oka lehet a kifogyott papír, a hibás illesztőprogram vagy a túlmelegedés; a mélyebb ok lehet a karbantartási felelősség, a készletellenőrzési rend vagy a figyelmeztetés hiánya.

A tanulság szoftveres rendszerekben is alkalmazható. A hibajegy megmutathatja, mi történt; az ok elemzése pedig feltárhatja, hogy a követelmény, a felülvizsgálat, a tesztadat vagy a környezet miért nem akadályozta meg a hibát. A folyamat javítása csökkentheti a hasonló problémák újbóli megjelenését.

Alapfogalmak

Minőség
Annak mértéke, hogy egy komponens, rendszer vagy folyamat mennyire felel meg a meghatározott követelményeknek és a felhasználók, illetve ügyfelek igényeinek.
Kimerítő tesztelés
Minden lehetséges bemenet és előfeltétel-kombináció vizsgálata; a gyakorlatban a legtöbb nem triviális rendszer esetén nem megvalósítható.
Kiváltóok-elemzés
A hiba kialakulásához hozzájáruló alapvető okok feltárása, hogy a hasonló hibák jövőbeni előfordulását csökkentsük.
RÉSZLETES ELMÉLETI KIEGÉSZÍTÉS

A tesztelés fogalma és bizonyítékai

A tesztelés tervezett tevékenységsorozat: megértjük az elvárást, kiválasztjuk az ellenőrzendő feltételeket, tesztadatokat készítünk, végrehajtjuk a tesztet, majd összevetjük a tényleges és az elvárt eredményt. A folyamat a tesztelt objektumtól függően lehet dokumentum-ellenőrzés, kódvizsgálat, kézi használat vagy automatizált futtatás.

A dinamikus teszt során a programot működés közben vizsgáljuk. A statikus vizsgálatnál a program futtatása nélkül keressük a problémákat például követelményben, tervben vagy forráskódban. Egyik sem helyettesíti a másikat: másféle hibák válnak láthatóvá. A megfigyeléshez tesztadat, végrehajtási környezet és előre meghatározott elvárt eredmény szükséges.

Új, iskolai példa

A könyvtári kölcsönző rendszer tesztjénél a bemenet egy tanulói azonosító és egy kiválasztott könyv. Az elvárt eredmény a kölcsönzés rögzítése és a határidő megjelenése; a tényleges eredményt ezekhez hasonlítjuk.

Gondolkodtató gyakorlófeladat

Válaszd szét egy online órarend-alkalmazás ellenőrzésénél a bemenetet, a tesztlépést, az elvárt eredményt és a tényleges eredményt.

PRÓBÁLD KI

Órai feladat

Egy időpontfoglaló alkalmazás kiadás előtt áll. A 80 automatikus ellenőrzésből 78 sikeres, de néha ugyanarra az időpontra két foglalás jön létre. Kiadható-e csak a 97,5%-os sikerarány alapján? Írj három indokot.

ELLENŐRIZD MAGAD

Miért nem bizonyítja a hibamentességet a sok sikeres teszt?

Amit érdemes megjegyezni

  • A követelmények vizsgálata is tesztelési tevékenység lehet.
  • A módosításokat és az üzemeltetés tapasztalatait is vissza kell csatolni.
  • A tesztelés befejezését kockázat és cél alapján indokoljuk, nem puszta százalékkal.