10. óra · Szoftvertesztelés alapjai

Agilis fejlesztési modell

Tesztelés egy életcikluson belül, rövid fejlesztési körökben

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

  • Leírod, hogyan változtatja meg a rövid iteráció a tesztelési munkát.
  • Megfogalmazol ellenőrizhető elfogadási feltételeket egy felhasználói igényhez.
  • Külön választod a gyors automatikus visszajelzést és a felderítő vizsgálatot.

Az óra témái

  • Tesztelés egy életcikluson belül
01 / TANANYAG

Rövid ciklus, közös cél

Agilis megközelítésben a csapat rövid munkaszakaszokban készít értékelhető eredményt, majd a visszajelzés alapján módosítja a következő feladatokat. A tesztelés nem külön végső állomás: a követelmény tisztázása, a megvalósítás és az ellenőrzés gyakran egymással párhuzamosan zajlik. A tesztelő, a fejlesztő és az üzleti szereplő közösen tudja megbeszélni, milyen viselkedést várnak a kész résztől.

Az agilis munkát nem egyetlen kötelező ceremónia vagy eszköz határozza meg. A lényeg itt az, hogy a változó igényekről időben érkezzen visszajelzés, és minden elkészült rész ellenőrizhető állapotba kerüljön. Ha a csapat csak az iteráció utolsó óráiban kezdi a tesztelést, a hibákra és a javítások ellenőrzésére már kevés idő marad.

Példa: Egy hét munkája

Hétfőn pontosítják a kurzuskeresés feltételeit; szerdán elkészül a kereső első változata; közben készülnek tesztesetek, csütörtökön próbák és javítások következnek; pénteken a felhasználói visszajelzés alapján döntik el a következő lépést.

02 / TANANYAG

Példák és elfogadási feltételek

Egy felhasználói történet önmagában lehet túl tág: „Diákként szeretnék kurzust keresni, hogy könnyen megtaláljam a megfelelőt.” A tesztelhetőséghez tisztázni kell, mi számít találatnak, mi történik üres keresésnél, látható-e a betelt kurzus, és hogyan kezeljük az ékezeteket. Az elfogadási feltételek konkrét, megfigyelhető eredményt fogalmaznak meg; ezek tesztet inspirálnak, de nem feltétlenül fednek le minden kockázatot.

Jó közös munka, ha a három nézőpont – üzleti igény, fejlesztői megvalósítás és tesztelhetőség – még a kódolás előtt példákat ír. Például: ha a keresett szó „adat”, csak azok a kurzusok kerülnek az eredménybe, amelyek neve megfelel az elfogadott keresési szabálynak. A példák közben gyakran kiderül, hogy a „megfelel” szó pontosítása még hiányzik.

Tanári tipp

Egy elfogadási feltételhez mindig kérdezd meg: milyen bemenetnél, milyen kiinduló állapotból, pontosan mit lát a felhasználó?

03 / TANANYAG

Tesztelés az iteráción belül és az iterációk között

A fejlesztő gyors komponenstesztjei visszajelzést adhatnak a belső logikáról. Az integrációs tesztek ellenőrizhetik, hogy a kereső megfelelő adatot kap a tárolóból. A felületi próbák az egész folyamatot vizsgálhatják. A tesztelő felderítő tesztelése különösen hasznos ott, ahol az ismert példák mellett váratlan állapotok is előjöhetnek. Az automatizálás segíthet a gyakori ismétlésben, de nem dönt önmagában az elvárás helyességéről.

Ha új szűrőt vezetnek be, a korábbi keresési és jogosultsági eseteket is érdemes ismét ellenőrizni. Ez regressziós vizsgálat, amelynek mélységét a változás kockázata határozza meg. Egy kör végén a csapat azt is áttekinti, hogyan működött a közös tesztelés: időben voltak-e tesztadatok, érthető volt-e az elvárás, és melyik hiányt kell a következő ciklusban megszüntetni.

Példa: Közös vizsgálat

A kereső új ékezetkezelése működik az „ár” szóra, de felderítő próbán az üres keresés 500-as hibát ad. Az új esetet rögzítik, javítják, és hozzáadják a megfelelő ismételhető ellenőrzéshez.

Egy rövid fejlesztési kör ellenőrizhető lépései
  1. 1Igény és példákKinek, milyen helyzetben, milyen eredmény kell?
  2. 2Megvalósítás és gyors próbákKis részekről gyors visszajelzés
  3. 3Összekapcsolás és felfedezésKapcsolatok, váratlan használati helyzetek
  4. 4Bemutató és visszajelzésÚj döntés és következő tesztek

Az ábra nem egyetlen kötelező agilis módszer menetrendje; azt mutatja, hol keletkezhet hasznos tesztelési visszajelzés.

04 / TANANYAG

Az ellenőrizhetőség közös felelősség

Tegyük fel, hogy a csapat feladata a diákoknak elérhető szabad helyek megjelenítése. A felhasználó képviselője tudja, melyik helyet számítják szabadnak; a fejlesztő látja, milyen adatok tárolódnak; a tesztelő azt kérdezi, milyen eredménynek kell látszania két egyidejű jelentkezés után. Az egyeztetés eredménye lehet pontosabb szabály és több megelőző teszt, mielőtt a kód elkészül.

Egy jól megfogalmazott elfogadási példa meghatározott kiinduló helyzetből indul ki. Például 20 férőhelyből 19 foglalt, és egy jogosult diák sikeresen jelentkezik. Ezután 0 szabad hely látszik. A példa az ismert működést rögzíti, de külön kérdés, hogy mi történik, ha ugyanabban a pillanatban ketten jelentkeznek. Az utóbbit kockázat alapján kell hozzáadni.

Példa: Közös kérdés

Mit jelenítsünk meg, ha a foglalás sikeres, de az értesítő szolgáltatás nem válaszol? Az üzleti szabály tisztázása előzi meg a 'helyes' tesztválaszt.

05 / TANANYAG

Melyik visszajelzés jön mikor?

A fejlesztő által futtatott kis tesztek gyorsan észreveszik a számolási hibát. Az API ellenőrzése a részek közti adatátadást vizsgálja, a böngészős próba pedig a teljes felhasználói folyamatot. Ezek eltérő felbontású visszajelzések; az egyik sikeréből nem következik automatikusan a másik sikere. A tesztelő felderítő munkája olyan helyzetet tárhat fel, amire a rögzített példák nem gondoltak.

Az iteráció végén érdemes megnézni, melyik visszajelzés érkezett túl későn. Ha a tesztadat csak a bemutató előtt állt rendelkezésre, a következő körben korábban kell előkészíteni. Az ilyen folyamatjavítás nem maga a termék hibajavítása, de segít abban, hogy a következő inkrementum gyorsabban és biztosabban értékelhető legyen.

Tanári tipp

Minden új funkcióhoz legyen egy pozitív példa, egy fontos hibaút és egy kapcsolódó korábbi működésre vonatkozó ellenőrzés.

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

Agilis fejlesztés: közös felelősség és folyamatos tesztelés

Az agilis munka kis, értékelhető lépésekben szállít értéket. A tesztelés nem egy különálló, kizárólag a végére hagyott fázis: a csapat a követelmények tisztázásától a kiadásig közösen építi be a minőséget. A rendszeres egyeztetés, a rövid visszajelzési ciklus és az automatizált regressziós ellenőrzés segít korán észrevenni az eltéréseket.

A felhasználói történethez elfogadási feltételek tartoznak, amelyekből konkrét tesztek készíthetők. A késznek tekintett munka fogalma tartalmazhatja a kódellenőrzést, a szükséges tesztek sikerét, a dokumentálást és a bemutathatóságot. Az agilis működés nem jelenti a tervezés vagy dokumentálás hiányát; ezek a munka céljához igazodnak.

Új, iskolai példa

„Diákként szeretném látni a következő heti órarendemet” történethez feltétel: ha nincs még órarendi adat, a rendszer ezt érthetően jelzi, és nem hibás üres táblát mutat.

Gondolkodtató gyakorlófeladat

Írj egy felhasználói történetet és három ellenőrizhető elfogadási feltételt egy iskolai alkalmazáshoz.

PRÓBÁLD KI

Órai feladat

A történet így szól: „Diákként látni akarom a szabad helyeket.” Írj három ellenőrizhető elfogadási feltételt, és egy olyan felderítő kérdést, amelyre a történet még nem válaszol!

ELLENŐRIZD MAGAD

Mikor kezdődik az agilis csapatban a tesztelési gondolkodás?

Amit érdemes megjegyezni

  • Rövid ciklusokban az ellenőrzés és a fejlesztés szorosan együtt halad.
  • A konkrét elfogadási példák segítik a közös értelmezést.
  • Az ismételhető automatikus és a felderítő tesztek más-más visszajelzést adnak.