17. óra · Szoftvertesztelés alapjai

Karbantartási teszt

Változások kiváltó okai, hatáselemzés és regressziós ellenőrzés

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

  • Felsorolod a karbantartási teszt tipikus kiváltó eseményeit.
  • Egyszerű hatáselemzéssel kijelölöd az érintett részeket.
  • Elválasztod az új működés ellenőrzését a regressziós vizsgálattól.

Az óra témái

  • Hatáselemzés és regressziós teszt
  • Karbantartási tesztet kiváltó események
01 / TANANYAG

Miért kell a működő rendszert újra tesztelni?

Karbantartási tesztet a már működő rendszer módosítása vagy környezetének változása válthat ki. Például hibajavítás, új funkció, frissített külső szolgáltatás, operációs rendszer vagy böngésző verziója, adatátvitel, illetve egy funkció megszüntetése. A vizsgálat célja, hogy a változás megfelel az új elvárásnak, és a megőrzendő régi működés is helyes marad.

Nem minden változás azonos kockázatú. Egy szövegjavítás kevesebb kapcsolódó működést érinthet, mint a jogosultsági szabály vagy a közös adatmodell módosítása. Még kis változtatásnál is érdemes megnézni, a módosított részt hol használják. A korábbi teszteredmények fontos kiindulópontok, de az új változatot és környezetet külön kell ellenőrizni.

Példa: Külső kiváltó ok

Az iskola portálján semmi sem változik a forráskódban, de a böngésző frissítése után nem nyílik meg egy párbeszédablak. A környezet változása is indokolhat karbantartási tesztet.

02 / TANANYAG

Hatáselemzés: mit érinthet a módosítás?

A hatáselemzés a módosítás várható és lehetséges következményeit térképezi fel. A férőhelyszámítás javítása érintheti a foglalás létrehozását, a várólistát, az értesítést, a kimutatásokat és a lemondást. Az érintett követelményeket, hívásokat, adatmezőket és korábbi hibákat összevetve kiválaszthatók a szükséges tesztek. Ez nem bizonyosságot ad, hanem megalapozott tesztelési területet.

A vizsgálat mélységét a változás terjedelme és a hiba lehetséges következménye befolyásolja. Központi jogosultsági módosításnál szélesebb regresszió indokolt lehet, mint egy elszigetelt megjelenítési javításnál. Dokumentáld, milyen függőségeket néztél meg, milyen teszteket futtatsz, és mi marad kívül a vizsgálaton. Ha a hatás nem ismert, előbb a kapcsolatokat kell feltárni.

Tanári tipp

A közvetlenül módosított rész mellett keress közös adatot, közös szolgáltatást és olyan másik képernyőt, amely az eredményt felhasználja.

03 / TANANYAG

Megerősítő teszt és regresszió karbantartáskor

Hibajavítás után először reprodukáld az eredeti helyzetet: megszűnt-e az eltérés? Ez a megerősítő teszt. Ezután válassz regressziós eseteket a közeli és függő részekhez: működik-e még a normál foglalás, a lemondás és a várólistáról előrelépés? Új funkció esetén az új szabályt célzó tesztek mellett ugyanígy szükség lehet régi funkciók ismételt vizsgálatára.

Az automatizált regressziós készlet segít gyorsan újrafuttatni a gyakori ellenőrzéseket, de frissíteni kell, ha az elvárás jogosan változott. A régi teszt mechanikus futtatása félrevezető lehet, ha már elavult szabályt kér számon. A tesztelési eredmény végén mindig jelezd a verziót és a fennmaradó, nem vizsgált kockázatot.

Példa: Javított sorrend

Eredeti hiba: a várólista második tagja kap értesítést. Megerősítő: ugyanazokkal az adatokkal most az első jogosult kapja. Regresszió: lemondás és új jelentkezés után is helyes a sorrend, és nem küld a rendszer duplán értesítést.

04 / TANANYAG

Karbantartási forgatókönyv lépésről lépésre

Tegyük fel, hogy a rendszer frissíti a diák jogosultsági szabályát: csak aktív jogviszonnyal lehet jelentkezni. Először pontosítsd az új szabályt és a hatálybalépést. Utána keresd meg az érintett felületeket és szolgáltatásokat: jelentkezés, várólista, már létező foglalások, adminisztrátori módosítás. Készíts új teszteket aktív, inaktív és hiányzó jogviszonnyal, majd nézd meg a korábban működő jogosultsági eseteket is.

Az ellenőrzést ne szűkítsd a felület zöld üzenetére. Vizsgáld meg, mit tárol a rendszer és mit lát a diák később; az adminisztrátor mit lát ugyanarról az esetről; mi történik, ha az állapot két lépés között változik. Ha egy kapcsolódó külső rendszer adja a jogviszonyt, az adatátadás és a szolgáltatás elérhetősége is része lehet a hatáselemzésnek. A leírt tesztkör akkor teljes, ha a kiválasztás és a kihagyott részek indoka is világos.

Példa: Hatáslista

Módosult szabály → jelentkezési ellenőrzés → várólista → meglévő foglalás → ügyintézői nézet. Mindegyik nyíl lehetséges adat- vagy folyamatfüggőséget jelöl, amelyet ellenőrizni kell.

Egy módosítás hatásának követése
  1. 1VáltozásÚj jogosultsági szabály
  2. 2Közvetlen részJelentkezési ellenőrzés
  3. 3Függő részekVárólista, foglalás, adminisztráció
  4. 4TesztkészletÚj szabály, megerősítés, regresszió

Az ábra egy lehetséges függőségi út. A tényleges rendszer kapcsolatait a projekt adatai alapján kell feltérképezni.

05 / TANANYAG

Változást kiváltó események rendszerezése

Egy karbantartási kör kezdődhet tervezett új funkcióval vagy javítással, de egy külső változás is elindíthatja: például a böngésző, adatbázis vagy más szolgáltatás frissítése. Adatmigrációkor nem biztos, hogy az alkalmazás szabálya változik, mégis ellenőrizni kell a meglévő rekordok elérhetőségét és jelentését. Funkció kivezetésekor azt vizsgáljuk, nem maradt-e váratlan függőség a megszűnő részre.

Más kérdés, hogy egy hiba kijavítását kell-e igazolni, vagy egy új szabály helyességét. Előbbinél az eredeti hibajegy megerősítő esete adott kiindulópont; utóbbinál új teszteseteket írunk. Mindkettőnél felmerülhet regresszió a függő részekben. A módosítás indoka, az érintett verzió és a környezet egyértelmű rögzítése nélkül a tesztjelentés nehezen értelmezhető.

Példa: Kivezetett funkció

Megszűnik a régi export. Az adminisztrációs riport továbbra is hívja: a hatáselemzésnek ezt az indirekt kapcsolatot is fel kell tárnia.

06 / TANANYAG

Célzott regresszió és annak határa

A teljes tesztkészlet minden változás utáni futtatása néha túl lassú; egy egészen szűk ellenőrzés viszont elmulaszthat fontos mellékhatást. A hatáselemzés középutat ad: a módosított szabályon túl a hívókat, a közös adatmezőket és a felhasználói folyamatokat tekinti át. A magas kockázatú, széles körben használt részhez nagyobb regressziós kör indokolható.

A kiválasztott eseteket időnként felül kell vizsgálni. Ha egy régi teszt a megváltoztatott szabály miatt vár jogosan más eredményt, nem szabad pusztán zöldre módosítani anélkül, hogy az új elvárást ellenőriznénk. A változás hatásának elemzése a tesztkészletre is kiterjed: melyik eset marad, melyik frissül, és milyen új próba hiányzik.

Tanári tipp

A kihagyott fontos tesztkört is dokumentáld; ez a fennmaradó kockázat része.

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

Karbantartási tesztelés változtatás után

A karbantartási tesztelés a már használatban lévő rendszer módosítását vizsgálja. Kiváltó ok lehet hibajavítás, új igény, környezeti változás, adatbázis-frissítés, biztonsági javítás vagy a rendszer kivonása. A változás hatókörének és függőségeinek elemzése segít megállapítani, mely területeket kell újratesztelni.

A regressziós kockázat nemcsak a módosított kód körül jelenik meg: érintett lehet a konfiguráció, az adatátalakítás, az interfész és az üzemeltetési folyamat is. Kiadás előtt a tesztkészletet a változás mértékéhez igazítjuk, és megőrizzük a javítás előtti viselkedéshez szükséges bizonyítékot.

Új, iskolai példa

Az iskola új naptárszolgáltatóra vált. A naptármegjelenítés mellett tesztelni kell az időzónát, értesítéseket, régi események átvételét és a jogosultságokat.

Gondolkodtató gyakorlófeladat

Készíts hatáselemzést egy mobilalkalmazás bejelentkezési könyvtárának frissítésére.

PRÓBÁLD KI

Órai feladat

Új szabály szerint az inaktív jogviszonyú diák nem foglalhat szabad helyet. Írj rövid hatáselemzést, egy új szabályt ellenőrző tesztet és három regressziós esetet! Nevezz meg még két másik karbantartási tesztet kiváltó eseményt.

ELLENŐRIZD MAGAD

Mi a hatáselemzés célja karbantartási teszteléskor?

Amit érdemes megjegyezni

  • Karbantartási tesztet módosítás, átállás vagy környezeti változás is kiválthat.
  • A hatáselemzés kijelöli a közvetlen és közvetett tesztelendő részeket.
  • A változás helyes működését és a korábbi működés megőrzését külön ellenőrizzük.