Példa a teszt stratégiára
A teszt stratégia egy terv (amely létezhet projekt, program, szervezet, vagy akár csoport szinten is), ami leírja, hogyan tudjuk a meglévõ erõforrásokkal a tesztelési célokat hatékonyan teljesíteni. Ha létezik teszt stratégiád, akkor egyszerûen tudod azonosítani a legfontosabb tesztelési folyamatokat. Sõt, világossá teszi a tesztelés fontosságát a megrendelõk, tulajdonosok számára is.Korábban már beszéltem az eredményes tesztelési stratégia kialakításáról, a web analitikák, értelmezhetõség megvilágításában. Legtöbb olvasóm példákat várt a teszt stratégia dokumentumra, ami nem minden projekt esetében osztható meg.Ezért megkértem Varsha-t, aki tapasztalt tesztelõként tagja a Softver Testing Space közösségnek, hogy készítsen egy példát egy hipotetikus agile projektre. Alább megtalálható az eredmény, a dokumentum, amely remélhetõleg nagy információtartalommal bír.A kiegészítések dõlten vannak szedve. Abban reménykedek, hogy a példa dokumentum segítséget nyújt majd számodre egy igazán hatékony teszt stratégia létrehozásában. Elõször érdemes megnézni egy videót: http://youtu.be/vm5kGy6URjM, aztán a dokumentumot.
Bevezetés az Agile-ba
Az agile egy iteratív és inkrementális megközelítés a szoftverfejlesztésben, amely a csoporttagok egy kontrollált környezetben történõ erõs kooperációján/együttmûködésén alapul. A magas minõségû alkalmazások általában kis fejlesztõi csoportok együttmûködésének az eredménye, akik a folyamatos fejlesztés és tesztelés elve alapján gyors visszajelzésekkel és változtatásokkal dolgoznak. Az agile ember középpontú, a fejlesztés és a tesztelés integrálva van. Az önszervezõdõ munkacsoportok minden esetben a legjobb megoldásra törekszenek, és a felhasználó kulcsfontosságú szerepet játszik, továbbá a projekt életciklust a végtermék követelményei határozzák meg.
Mi a különbség az agile és a vízesés modell között?
- Jobb együttmûködés
- Rövidebb fejlesztési idõ és állandó visszajelzések
- Elfogadott változtatások
- Nagyobb rugalmasság
- Nagyobb fegyelem
- A cél a minõség, nem csak a sebesség
- A megrendelõ nagyobb rálátása a munkára
- A tapasztalatok nagyobb skálája
- Többet és gyorsabban csinálni
- Bátorság/kitartás
- Bizalom a tervezésben
A dokumentum célja
A teszt stratégia dokumentumot azért készítjük el, hogy egy mindenki által érthetõ leírást adjunk a célokról, feladatokról, eszközökrõl és a tesztelés ütemezésérõl. Célunk a magasabb minõség elérése, valamint a projektre fordítandó idõ, többlet energia csökkentése, gyakoribb teljesítés, szorosabb munka a megrendelõ és a csapat között, folyamatos integráció, rövidebb visszajelzési utak és gyakoribb funkció változtatások a minõség érdekében. A teszt stratégia egy kalauz az akadályok leküzdéséhez. A tesztelési munka a követelmények felderítésével kezdõdik és azzal, hogy a felhasználói sztorik segítségével különbözõ nézõpontokból kiderítsük, mit akar a megrendelõ valójában. A tesztelés egy folyamatos és integrált folyamattá válik, ahol minden szereplõ bevonásra kerül.
Irányadó szabályok
- Szabály Leírás.
- Megosztott felelõsség: A csapat minden tagja felelõs a minõségért.
- Adatkezelés: Az adatok ellenõrzése a tesztekben való felhasználás elõtt.
- Tesztmenedzsment: Tesztesetek, kódok, dokumentumok és adatok ugyanolyan fontosak, mint az éles rendszerben.
- Automatizálás: Odafigyelés az összes automata tesztre (unit, funkcionális, regressziós, teljesítmény, biztonság).
Követelmény stratégia
- Mindig a legfontosabb elemek implementálásával kezdjünk. Minden elem, feladat priorizálása és kiosztása a termékfelelõs feladata.
- Minden feladat vagy munkafolyamat bármikor újraütemezhetõ.
- Egy bonyolultabb modul minden esetben magasabb prioritást élvez, mint egy egyszerûbb.
Minõségi és tesztelési célok
A tesztelés területe (üzleti és technológiai szempontból is)
Terület: Azonosítani kell, hogy mit tartalmazzon a tesztelés az adott projekten. Nézzük meg mi az új, mi változott és mi a javított az elõzõ verzióhoz képest.
- (Automatizált) unit tesztelés
- Kód analízis (statikus és dinamikus)
- Integrációs tesztelés
- (Automatizált) tulajdonság és funkció tesztelés
- Adatkonverzió tesztelése
- Rendszerteszt
- (Automatizált) biztonsági tesztelés
- A környezet tesztelése
- (Automatizált) performancia tesztelés
- (Automatizált) regressziós tesztelés
- Elfogadási tesztek
Nem feladatunk: Annak az azonosítása, hogy mit nem tartalmaz a tesztelés az adott projekten.
Tesztelési típusok
Teszteset tervezés stratégia
- Specifikáció alapú / Fekete-dobozos technika (ekvivalencia osztályok, határérték ellenõrzés, döntési tábla, állapot traszformáció és használati eset teszt)
- Struktúra alapú / Fehér-dobozos technika (utasítás lefedettség, döntési lefedettség, feltétel lefedettség, feltételrendszer lefedettség)
- Tapasztalat alapú tesztelés (Hibatalálgatás és felfedezés)
Teszt környezet stratégia
Teszt futtatási stratégia
A tesztelõk a következõ szempontokat tartsák szem elõtt:
- Az agile tesztelés iteratív.
- Nincsenek komplett specifikációk a teszteléshez.
- A tesztelõ legyen flexibilis.
- A tesztelõk legyenek függetlenek és hatákonyak.
- Legyenek általános specialisták.
- A tesztelõk dolgozzanak szorosan együtt a fejlesztõkkel.
- Az értékes munkán legyen a hangsúly.
- Rugalmasak legyenek.
- Fókuszáljunk a mit-re a hogyan helyett.
- A tesztelõ az agile csapat tagja kell, hogy legyen.
- Úgy segítsen a csapatnak, ahogy csak tud.
- Legyen felkészült specialista egy vagy több témában.
- Rövid visszajelzési idõ.
- Egyenesen, érthetõen kommunikáljon.
- A felfedezõ tesztelésen legyen a hangsúly.
- Határozzuk meg, mit jelent, ha valami kész. Mikor számít valami befejezettnek?
- Határozzuk meg, mikor lehet folytatni, illetve mikor kell megállni a teszteléssel a szállításoknál. Mely kritériumok szerint haladjanak (idõ, lefedettség, minõség) és hogyan.
Továbbá, ebben a részben leírhatjuk a futtatandó tesztek lépéseinek típusait. A következõ fontos csoportokat különböztetjük meg:
- A rendszer felépítésének lépései.
- Az automata tesztek futtatásának lépései.
- A referencia adatok környezetbe való betöltésének lépései.
- A tesztfuttatások és kód mérõszámok elõállításának lépései.
Teszt adat menedzsment stratégia
Ez a fejezet a teszt adatok azonosítására és kezelésére használható. Az alábbi irányelveket használhatjuk:
- Rendszer- és felhasználói elfogadás tesztek az éles adatok egy részhalmaza használható tesztadatként.
- Teljesítményteszt és rendelkezésre állási teszt az éles környezeten lévõ adatmennyiségnek megfelelõ adatot célszerû a teszteknél használni.
Teszt automatizálási stratégia
Válasszunk egy tervezett megközelítést az automata tesztek fejlesztéséhez. Növeljük az automata tesztek minõségét. A következõk figyelembevételével válasszunk teszteseteket az automatizáláshoz:
- Kockázat
- Milyen hosszú ideig tart a tesztek manuális futtatása?
- Mi a költsége az automatizálásnak?
- Mennyire egyszerû az automatizálás?
- Hányszor várható a tesztek futtatása?
Test Management
Célszerû a teszt tervet, a teszteseteket és hibákat ugyanabba a rendszerbe rögzíteni. Minden agile eszközt ott kell használni, ahol a tesztesetek, sztorik és teszt tervek vannak tárolva.
Kockázatok
A kockázatokkal és feltételezésekkel a napi stand-upokon kell foglalkozni (a csapattagokkal és a scrum masterrel közösen), melyeket a bejelentést követõen azonnal rögzítünk.
Hibakezelési stratégia
Ideális esetben a hibákat csak akkor kell rögzíteni, ha azok azonnal nem javíthatóak ki. Ilyenkor a reprodukáláshoz pontosan rögzíteni kell a körülményeket és a hiba súlyosságát, hogy az könnyen reprodukálható legyen.
Hiba osztályozás
- Kritikus: Kritikus hiba az, ami blokkolja az alkalmazás mûködését.
- Súlyos: A súlyos hiba a mûködésre nincs kihatása, megkerülhetõ, de túlmunkával jár.
- Csekély: Elenyészõ túlmunkával a mûködést nem befolyásolja.
- Triviális: Kozmetikai hiba, a mûködést és a kényelmet egyáltalán nem befolyásolja.
Hiba életciklus
- Hiba azonosítása: Ha a hiba reprodukálható, vegyük fel a hibakezelõ rendszerbe.
- Hiba priorizáció: A hiba súlyosságától függõen priorizáljuk a backlog-ban.
- Analízis: Elemzés az elfogadási kritériumok és az implementáció alapján.
- Megoldás: A változás implementálása és/vagy a hibás tesztek javítása.
- Ellenõrzés: Futtassuk a tesztet, hogy ellenõrizzük a hiba megoldását és felfedezzük az esetleges regressziót.
- Lezárás: A hiba lezárása a rendszerben.
Definiáljuk a hibakezelõ alkalmazást!Megjegyzés: Ez a példa Varsha Tomarral együttmûködve lett kialakítva. Varsha 9 éves tapasztalattal rendelkezik mind a manuális mind az automatikus tesztelésben. Ma a Vinculum Solutions-nál dolgozik, mint szenior tesztvezetõ. A szoftvertesztelés, az automatizálás, a tréningek, a tesztelési módszertanok és a felfedezõ jellegû tesztelés is az érdeklõdési körébe tartoznak.
Forrás: http://inderpsingh.blogspot.hu/2013/03/ExampleTestStrategy.html#more
Szerző: Inder P. Singh
A szerző
-
Inder P. Singh nagy gyakorlattal bíró tesztmenedzser. Gazdag tapasztalatokkal rendelkezik a magas minőségű szoftvertesz- telésben. Specialitásai közé tartozik a teljes pre-sales szakmai támogatás, teszt stratégiák definiálása, auto- matizált tesztelési keretrendszer kialakítása, a termék automatizált és manuális tesztelése, mentorálás és profi tesztelők oktatása. Jelenleg Inder minőségbiztosítási menedzser az Oracle-nél.
Ez a pozíció magába foglalja az Argus Safety alkalmazás teljes automatizált és manuális tesztelési élet- ciklusának menedzselését nagyobb cégeknél. Inder szenvedélyesen közreműködik a szoftvertesztelői közösségekben is. Ő működteti az 500-nál is több taggal rendelkező Software Testing Space csoportot a LinkedInen. Inder az utóbbi években aktív tagja a Microsoft MSDN fórumoknak és moderátora az ottani szoft- vertesztelési fórumnak.
Többet olvashatsz tőle a blogján: http://inderpsingh. blogspot.com