19. óra · Szoftvertesztelés alapjai

Statikus tesztelési technikák

Munkatermékek vizsgálata futtatás nélkül; statikus és dinamikus tesztelés

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

  • Megnevezed a statikusan vizsgálható munkatermékeket és a vizsgálat két fő módját.
  • Összehasonlítod a statikus és dinamikus tesztelés tárgyát és eredményét.
  • Konkrét követelményben ellentmondást és ellenőrizhetetlen állítást azonosítasz.

Az óra témái

  • Statikus technikák és tesztelési folyamat
  • Statikusan vizsgálható munkatermékek
  • A statikus tesztelés előnyei
  • A statikus és dinamikus tesztelés különbségei
01 / TANANYAG

Mit nevezünk statikus tesztelésnek?

Statikus teszteléskor a munkaterméket nem futtatjuk. A követelmény, terv, forráskód vagy teszteset tartalmát vizsgáljuk meg, és eltéréseket, ellentmondásokat, hiányokat vagy fejlesztendő részeket keresünk. Az egyik módszer a felülvizsgálat, amelyben emberek olvassák és értékelik a munkaterméket; a másik a statikus elemzés, amelyben eszköz vizsgálja például a kód vagy modell egyes tulajdonságait futtatás nélkül.

Egy online vizsgarendszer leírásában ez áll: „A dolgozatot a határidő után nem lehet beadni”, máshol pedig „A késedelmes beadást a rendszer elfogadja, és megjelöli”. Már a dokumentum olvasásakor látszik az ellentmondás. Ezt a kész alkalmazás tesztelése előtt tisztázni lehet. A felülvizsgálat nem csak kész szövegre vonatkozhat: a követelmény finomodása közben adott korai visszajelzés is segíthet.

Példa: Futtatás nélkül talált eltérés

Egy követelmény 23:59-es határidőt ír, de nem rögzíti az időzónát. A tesztelő pontosító kérdést tesz fel; még egyetlen sort sem kell futtatnia.

02 / TANANYAG

Milyen munkatermékeket lehet vizsgálni?

A vizsgálható munkatermékek köre tág: üzleti igény, felhasználói történet, elfogadási feltétel, rendszerterv, folyamatábra, adatmodell, programkód, tesztterv, teszteset, használati útmutató vagy akár szerződéses leírás is lehet. A kérdés mindig az, hogy van-e értelmezhető elvárás, amelyhez a munkaterméket összevetjük. A követelmény egyértelműségét és teljességét, a kód következetességét, a teszteset végrehajthatóságát más-más szemponttal ellenőrizzük.

Ha a kurzusjelentkezéshez készült tesztesetben csak „próbáld ki a jelentkezést” szerepel, hiányzik a kiinduló kurzusállapot, a szerepkör és a helyes eredmény. Az ilyen hiány is statikusan észrevehető. A korán kijavított hiba megakadályozhatja, hogy a félreértés továbbkerüljön a tervbe, a kódba, a tesztadatba és végül a felhasználói működésbe.

Tanári tipp

Mindig nevezd meg a vizsgált munkaterméket: követelményt, kódot vagy tesztesetet vizsgálsz?

03 / TANANYAG

Felülvizsgálat és eszközös statikus elemzés

Felülvizsgálatnál a résztvevők a szöveg vagy terv jelentését is meg tudják kérdőjelezni. Például a „gyors keresés” nem mérhető; egy ügyintéző pedig azt is jelezheti, hogy a leírásból hiányzik a várólistás jelentkezés kezelése. A felülvizsgálat lehet informális vagy előre szervezett; a részletes folyamatot a 20. órában tanuljuk. A visszajelzést lehetőleg tárgyszerűen, a munkatermék konkrét helyéhez kötve adjuk.

A statikus elemző eszköz például jelölhet nem használt változót, gyanús kódszerkezetet vagy meghatározott szabály megsértését. Az eszköz által jelzett figyelmeztetés nem feltétlenül valódi programhiba; embernek kell értékelnie a kontextust. Fordítva is igaz: az eszköz nem tudja bizonyítani, hogy a leírt üzleti cél valóban helyes, és nem lát meg minden hiányzó felhasználói igényt.

Példa: Kétféle eredmény

Felülvizsgálat: hiányzik, mi történik kettős kattintáskor. Statikus kódelemzés: egy hibakezelő ágban nem használt változót jelez. Mindkettő további tisztázást igényelhet.

04 / TANANYAG

Statikus és dinamikus vizsgálat összevetése

Dinamikus tesztelésben a futó rendszert adott bemenettel és környezetben használjuk, majd a tényleges viselkedést összevetjük az elvárttal. Statikus vizsgálatban a munkatermékben lévő problémát találhatjuk meg a futás előtt. Egy kétértelmű követelményt felülvizsgálattal tisztázunk; egy jelentkezés kétszeri beküldésekor létrejövő dupla foglalást futó rendszerben vizsgálunk. A két tevékenység együtt erősebb bizonyítékot ad.

A statikus vizsgálat észlelhet közvetlenül egy hibás megfogalmazást vagy kódrészletet, amely dinamikus próba során csak bizonyos feltételekkel okozna megfigyelhető meghibásodást. Ugyanakkor a valós teljesítményt, időzítést vagy több szereplő egyidejű működését általában futtatás közben tudjuk megfigyelni. Az egyik sikeréből nem következik a másik fölöslegessége.

Példa: Ugyanaz a szabály két nézőpontból

Statikusan: az életkori határ 18 vagy 19 év? Dinamikusan: a futó regisztráció milyen választ ad egy 18 évesnek a rögzített szabály alapján?

Két út ugyanannak az elvárásnak az ellenőrzésére
  1. 1KövetelményMelyik szabályt írtuk le?
  2. 2Statikus vizsgálatEgyértelmű, teljes és ellenőrizhető?
  3. 3Megvalósított rendszerA pontosított szabály alapján készült?
  4. 4Dinamikus tesztA futó rendszerben teljesül a szabály?

Az ábra két egymást kiegészítő vizsgálatot mutat; nem kötelező megvárni a teljes megvalósítást a statikus visszajelzéssel.

05 / TANANYAG

Miért ér többet a korai visszajelzés?

Ha a dolgozat beadási szabályában a „határidő után nem fogadunk el munkát” mellett mégis „késedelmes feltöltés megjelölése” szerepel, a fejlesztő nem tud egyértelmű döntést hozni. A tesztelő kérdése még a terv elkészítése előtt tisztázhatja a szabályt. Így nem kell később az űrlapot, az adatbázist, az e-mailt és az addig írt teszteseteket is átírni. Ez lehetőség a ráfordítás csökkentésére, nem minden helyzetben előre garantált összeg.

A korai felülvizsgálat javítja a közös megértést is. Az üzleti képviselő megerősítheti, milyen kivétel elfogadható; a tesztelő konkrét határhelyzetet írhat; a fejlesztő jelezheti, milyen állapot hiányzik a leírásból. A termék későbbi működését ettől még dinamikusan ellenőrizni kell: a tiszta követelmény nem bizonyítja a kész kód helyességét.

Példa: Pontosítás eredménye

A döntés szerint a helyi idő szerinti 23:59:59-ig elfogadott beküldés teljes értékű; ezután elutasított. A határérték dinamikus tesztje már erre épülhet.

06 / TANANYAG

Hogyan olvass tesztelőként egy követelményt?

Keresd a kétértelmű szavakat: gyors, megfelelő, egyszerű, biztonságos. Ellenőrizd a szerepköröket, a hiányzó vagy hibás adatokat, a határértékeket, az időzónát és a hibás művelet utáni állapotot. A dokumentum különböző pontjait is hasonlítsd össze, mert az ellentmondás gyakran nem egy mondaton belül van. Az észrevételt pontos helyhez és visszakérdezéshez kösd.

A statikus vizsgálat eredménye lehet hiba, kérdés vagy javaslat is. Ne írj bizonyított meghibásodásról, ha a rendszer még nem futott, és ne keverd össze a kétértelmű leírást azzal, hogy a program biztosan hibás. Ha a szabályt javítják, az új követelményből készülő tesztesetet is nézd át: van-e egyértelmű elvárt eredménye?

Tanári tipp

Próbáld meg minden mondatból kitölteni ezt a négy mezőt: szereplő, előfeltétel, művelet, elvárt eredmény.

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

Statikus tesztelés: korai minőségellenőrzés

A statikus tesztelés a tesztobjektum futtatása nélkül keres hibákat. Vizsgálható a követelmény, felhasználói történet, architektúra, kód, tesztterv és dokumentáció. A korai ellenőrzés különösen értékes, mert a félreérthető vagy ellentmondásos elvárás még a megvalósítás előtt tisztázható.

A statikus ellenőrzés lehet informális olvasás, strukturált felülvizsgálat vagy eszközös elemzés. Az eszköz például formázási hibát, gyanús mintát vagy lehetséges biztonsági problémát jelezhet, de az eredményeket embernek kell értelmeznie. A statikus módszer nem mutatja meg a tényleges futási viselkedést, ezért dinamikus tesztekkel egészül ki.

Új, iskolai példa

A „gyorsan betöltődő oldal” követelmény mérhetővé válik, ha a csapat rögzíti: a fő tartalom tipikus hálózati körülmények között legfeljebb két másodperc alatt jelenjen meg.

Gondolkodtató gyakorlófeladat

Javítsd egy homályos iskolai alkalmazáskövetelmény megfogalmazását úgy, hogy ellenőrizhető legyen.

PRÓBÁLD KI

Órai feladat

A követelmény szerint: „A tanuló gyorsan feltöltheti a feladatát. A határidő után nincs feltöltés. A késői feltöltés automatikusan megjelölve jelenik meg.” Találj legalább három statikusan vizsgálható problémát, és írj két későbbi dinamikus tesztet!

ELLENŐRIZD MAGAD

Melyik állítás helyes?

Amit érdemes megjegyezni

  • Statikus teszteléskor munkaterméket vizsgálunk futtatás nélkül.
  • Felülvizsgálat és eszközös statikus elemzés különböző módszer.
  • A dinamikus tesztelés a futó rendszer megfigyelt viselkedését ellenőrzi; a két nézőpont kiegészíti egymást.