Monday, March 5, 2012

Agilis tesztelés bevezetése a VCC-nél

Mikor 2006 májusában megérkeztem a Virtual Call Center Kft.-hez, akkor kizárólag manuális tesztelés folyt. Hallom, ahogy egy japán kisgyerek kezében kettétörik egy nógrádi ropogós a nagy ijedelemben, ahogy a szaharában 34 méteres cunami tombol és síri csend támadt az amazonasi őserdőben. Így a feszült figyelem középpontjában nem maradt más hátra, mint fejtegetni (vagy magyarázni) az okokat:
  • Nem volt annyi funkcionalitás, hogy ne lehetett volna könnyű szerrel kézzel tesztelni.
  • Nem volt annyi ügyfél, akik jogos felháborodásuk jeleként hibajegyeket generáltak volna a hibajegykezelőbe.
  • Nem volt elég tapasztalatunk a szoftvertesztelés terén.
  • A fenti háromnak is köszönhetően nem is gondoltunk másfajta tesztelésre.
Csakhogy az innovatív ötletek és a lelkes csapat segítségével kialakított a kategóriájában piacvezetővé váló alkalmazás hamar elvette a kényelmességhez hozzászokott kedvünket. Sok ügyfél, megszámlálhatatlan funkcionalitás.  A teszteléssel való lemaradásunkat fokozta, hogy bevezettük az agilis fejlesztést, aminek a részeként az ügyfél igények figyelembevételével zajlott a fejlesztés, ami a funkcionalitások számának még gyorsabb tempóban való növekedéséhez vezetett. Ennek a lemaradásnak az érezhető jelei igen hamar jelentkeztek a fejlesztők egy részénél, ezért kalóz tesztelés vette kezdetét. A fejlesztés felpörgetése miatt aktuálissá vált refaktorok nehezedése miatt is páran elkezdtek unit teszteket írni. Kutatások folytak a felülettesztelés irányában is, de nem igazán volt összeszedett, megmaradt a kalózkodás szintjén. A vezetőség is látta a nem lesz ennek jó végét, így szabad utat kapott a nagyüzemi kutatás, a mégis hogyan kéne azt csinálni címmel.

Elkezdődött a rengeteg könyv olvasása, meetup-okon talán már egy kicsit idegesítően sok kérdés feltevése, valamint az otthoni nyugodt szárnypróbálgatások izgalmas, fejlődést elősegítő programjain vettünk részt és nem utolsó sorban rengeteg problémamegoldó vita arról, hogy mikor mit érdemes és hogyan tesztelni ( Farkas Máté kollégám biztos sokat tudna mesélni a vitáinkról :) ). Az ezekből szerzett ihlet és inspiráció hatására:
  • Minden területen elkezdődtek a unit tesztek írása, a fejlesztés segítésére és a hibajavítás megkönnyítésére.
  • Kialakult a felülettesztelésre alkalmas környezet,  ami számunkra a mozmill-t jelenti.
  • Kialakult az automatizált és manuális biztonsági tesztelés.
  • Szimulátorok készültek komplex hívásfolyamatok stressz- és rendszertesztelésére.
  • Automatikus integration tesztek kerültek megírásra.
  • Felületen történt események rögzítésére majd abból tesztek generálásra alkalmas eszköz készült API tesztelésének céljából.
  • Bevezetésre került az exploratory tesztelés.
Ezekről a tapasztalatokról fogok írni ebbe a blogba folytatásként, először az automatikus API teszt generáló eszközről.

No comments:

Post a Comment