A tesztelés újragondolása a modern szoftverfejlesztéshez
A tradicionális szoftverfejlesztés a vízesés modell mentén, mérföldkövekre szedve folyt évtizedeken keresztül. Az Agile alapjait több, mint egy évtizede letették. Az Agile a fejlesztés álmodozásain alapul. Az új fejlesztések a piaci igények alapján gyorsabban készülnek, mint eddig valaha. A szoftverfrissítések hibátlan kiadásának olyan gyorsnak kell lennie, amilyen gyors csak lehet. A felhő napról napra hihetetlen mértékben fejlődik, a mobil technológia is nagy hatással van arra, hogy hogyan történjen a szoftverek fejlesztése a jövőben. A végfelhasználók visszajelzései hatással vannak a fejlesztésre és a dizájnra. A dokumentáció és a tervezés csak mellékes, a fontos a rugalmasság és a sebesség. Ez egy trend, amely a mobil alkalmazások fejlődésével érkezett, és a fejlesztésre fókuszált, a tesztelést háttérbe szorítva.
Szakítsunk a múlttal
Az újabb kiadások gyorsan és csőstül jönnek manapság. Sokkal szigorúbb erőforrás- és eszközbecslést követel a tesztelés tekintetében a kezdetektől fogva. Ha képesek vagyunk egy pontos becslést megfogalmazni, az perceken belül lehet, hogy idejétmúlttá válik. Ez megvalósíthatatlan kis, fix számú csapatokkal az Agile projektekben. Ahogy minden sprint újabb és újabb bővítményeket tartalmaz, úgy a munka is időről-időre növekszik. A tesztelésnek az új funkciók mellett a feltárt hibák javítását is ellenőrizni kell. Ha nem tudjuk a csapatot a fejlesztésnek megfelelően hangolni, illetve automata tesztekkel csökkenteni a humán ráfordítást, a dolgok kicsúsznak a kezünkből.
Egy új megközelítés felépítése
Az Agile gondolkodásmód a fejlesztői közösségekben számtalan új metodológia megszületését jelentette, melyekhez szakmai könyvek és támogató szoftverek jelentek meg. A tesztelés oldalán az elmélet és a gyakorlat között nagy szakadék tátong, amelyen változnia kell. A tesztelőknek a munkájukhoz eszközökre van szükségük. A tesztmenedzsmentnek a tesztelés egész életciklusát támogatni kell. Egy projektmenedzsment eszköz bővítménye nem fogja ezeket a problémákat megoldani.
Az Agile korszak olyan képzett teszt szakembereket követel, akik megfelelő teszteszközökkel rendelkeznek, amelyek képesek lépésről-lépésre rögzíteni a teszteket, a tesztesetekhez user story-kat kapcsolni és automatizált teszteket létrehozni, amennyiben az szükséges. Hibákat tudnak exportálni és importálni és ezek segítségével átlátják az egész tesztelési folyamatot.
A felfedező tesztelési képességek fejlesztésével és az automatizálás bevezetésével ahol van értelme a tesztelők felnőnek a modern szoftverfejlesztés kihívásaihoz.
Használjunk automatizált tesztelést, ha van értelme
Az igazi értéke a tesztelőknek, hogy tesztelni tudják az új kiadásokat és meg tudják határozni, hogy mi a hiba. Senkinek nincs kedve folyamatosan regressziós teszteket futtatni és az ezerszer megtalált hibákkal foglalkozni. Ez csak plusz munkát és unalmat jelent a tesztelőnek. Másrészről pedig a tesztelési erőforrásaink nem lesznek teljes mértékben kihasználva.
Az automatizált regressziós teszt segít a tesztelőknek azokra a területekre fókuszálni, amik a projekt számára fontosak. Az automatizált teszt nem könnyű, de ha meg van tervezve, akkor jól tud működni és hasznos lehet. A tesztesetek és tesztszkriptek nem készülhetnek el, amíg nincs működő kód. Amit tudunk tenni, hogy felvesszük azokat a tesztfolyamatokat, amelyeket a tesztelők futtatnak az új szoftverkiadásokon, majd a rögzített lépéseket felhasználva generálunk teszteseteket, melyek a következő szoftverkiadás automata tesztelésének alapját fogják képezni.
Tesztelő és felhasználó
A vízesés modell idején a tesztelők kiterjedt dokumentációkkal és követelményekkel dolgoztak, hogy részletes teszt tervet tudjanak készíteni. Az összes teszteset az új kiadás megérkezésekor futtatható kellett, hogy legyen. Ez nem lehetséges az Agile-ban . Amennyiben a fejlesztők magukévá tették az Agile szemléletet, a tesztelőknek is ezt kell tenniük.
A felfedező tesztelés arra szolgál, hogy ellenőrizze az összes új funkciót az új kiadásban. A tesztelők felveszik a munkájukat, majd szerkesztik a felvett anyagot, hogy létrehozzanak egy szilárd alapot a regressziós teszteknek. A regressziós tesztek magja teljesen automatizált. Úgy kell kialakítani ezt az automata részt, hogy a lehető legnagyobb hozzáadott értéket adja és a lehető legjobban informálja a tesztelőket a fejlesztők által adott csomagokról.
Ennek érdekében a tesztelőket minél hamarabb és minél gyakrabban be kell vonni a fejlesztési folyamatba. Ott kell lenniük a scrum meetingeken, érteniük kell a user story-kat, együttműködés és kérdések várhatók el tőlük. A tesztelőknek természetesen sokat kell tanulniuk a fejlesztőktől a projekttel kapcsolatban, de ugyanakkor képeseknek kell lenniük kérdéseket feltenni üzleti oldalon. Ha igazi érdeklődést mutatnak a szoftver és a projekt iránt, sokkal hatékonyabb és eredményesebb végeredményre számíthatunk a munka végeztével.
Változásra fel!
Ha elfogadjuk, hogy a fejlesztés visszafordíthatatlanul megváltozott, akkor arra fókuszálhatunk, hogyan fejlesszük a tesztelőket ennek érdekében. Az Agile gondolkodás elsajátítása a tesztelés szempontjából, új folyamatok és eszközök megismerése – amelyek igazán segítenek az eredmények elérésében – és a tesztelőkkel való együttműködés igazi értéket adhat a projekthez.
Az egymással való kommunikációra való sarkallás és a projekt minél mélyebb megértése, valamint a tesztelők és a végfelhasználók minél életszerűbb emulálása segít az ügyfelek igényeinek minél pontosabb kielégítésére. A modern fejlesztés kibontakozóban van, és ehhez a modern tesztelésnek is kéz a kézben kell kibontakoznia.
Forrás: http://dotnet.sys-con.com/node/3035974
Szerző: Vu Lam
A szerző
- Vu Lam villamosmérnökként a Purdue Egyetemen szerzett diplomát 1995-ben. Jelenleg a QASymphony cég alapítója és igazgatója, ahol olyan hibakereső szoftvereket fejlesztenek, amelyek képesek a felhasználók interakcióit nyomon követni és a hibákat felismerni. Korábban a First Consulting Group-nál dolgozott, amely a vietnami offshore IT-s cégek úttörő képviselője volt.