Test Strategy Tartalomjegyzék Tartalomjegyzék Bevezetés Beosztások, hatásköri leírások Projekt Menedzser Teszt Menedzser Projekt Asszisztens Tesztelő Emberi erőforrások kezelése Alkalmazottak és kompetenciáik Kommunikáció Fejlődés Tesztelési környezet Hardveres minimális specifikáció Teszteléshez szükséges szoftverek Verziókövetés Tesztelési módszertanok Statikus teszteléshez Dinamikus teszteléshez Acceptance kritérium Exit kritérium
Bevezetés Társaságunknál megszokott a hatékony munkavégzés, feladatok, felhasználói/megrendelői kérések kiszolgálása, a határidők precíz betartása. Projektjeink magas minőségét és a gyorsan változó követelmények betartását agilis szoftverfejlesztési módszertanok követésével érjük el. Az általunk alkalmazott módszertan leginkább a Scrum hoz hasonlítható. Futamokban gondolkozunk, melyekben a projekt/termék önállóan funkció képes részeit valósítjuk meg, majd teszteljük le. Futamaink elején egy tervező megbeszélést tartunk, menet közben, naponta, rövid és az aktuális állapotot összefoglaló beszélgetést ütemezünk, majd a futam végeztével további két ülést is tartunk. Ezek közül az első a megrendelők bevonásával történik, amikor a futam eredményeit prezentáljuk, a második megbeszélés szigorúan csak az alkalmazottak számára ad lehetőséget magának a futamnak a véleményezésére. Ezen a megbeszélésen elhangzott visszacsatolásokkal a menedzsment fejleszti a tesztelési/fejlesztési folyamatokat. Tudjuk, hogy a dokumentáció kifejezetten a nagyon pörgősen ütemezett projektek esetében jelentős overhead tud lenni. Viszont, azt is tudjuk, hogy munkánk tökéletességéhez hozzá tartozik a folyamatok (legyen szó tesztelési, fejlesztési, tervezési, menedzsmenti feladatokról) alapos, az adott projekthez igazított részletességű dokumentálás is. Nem tudjuk elégszer hangsúlyozni, elsődleges célunk, hogy ügyfeleink teljes mértékben elégedettek legyenek azzal a termékkel/projekttel, melynek elkészítésére/elvégzésére minket bíztak meg. Ennek érdekében igyekszünk minden tőlünk telhetőt megtenni.
Beosztások, hatásköri leírások Projekt Menedzser Leírás A Projekt Menedzser a vezetőség egy képviselője, aki közvetlenül a fejlesztési munkálatok irányításáért felelő, de a fejlesztéshez kapcsolódó tesztelési csoport nagy vonalakban történő irányítása is a hatáskörébe tartozik. A vállalat vezetői megbeszéléseken ő képviseli a projekten dolgozó összes alkalmazottat. A Teszt Menedzser neki jelent. Feladatok (tesztelői csoporttal kapcsolatban) Megbeszélések ütemezése Kommunikáció támogatása a tesztelői csoport, a fejlesztők, valamint a vezetőség között Teszt mendzsertől származó jelentések áttekintése, azokra válasz, valamint vezetőség felé történő továbbítás Jóváhagyási tesztelési szint további feladatai (pl termék kipróbálása) Teszt Menedzser Leírás A Teszt Menedzser az, aki közvetlenül irányítja a tesztelői csapatot. Az ő felelőssége, hogy a futam számára előírt feladatok elkészüljenek, tehát az egyes feladatok ütemezését végzi. A kommunikáció jelentős része rajta keresztül valósul meg, szervezi, moderálja, koordinálja a megbeszéléseket. Folyamatosan képben kell lennie a tesztelési folyamat állapotával. A tesztelési projekttel kapcsolatos kérdésekben dönt, magasabb szintű kérdések döntését előkészíti a tesztelői beszámolók, számított mutatók elemzésével. Ő állítja össze az adott tesztelési projekten dolgozó csapatot. Feladatok Folyamatos monitorozás Validálás (specifikációk implementációk összhangban vannak e?) Továbbképzések szervezése Folyamatos kapcsolattartás Projekt irányítása, tervezése, szervezése Projekt gazdasági hatásainak vizsgálata Tesztelői jelentések, eredmények elemzése, kiértékelése Csoport eredményeinek prezentálása
Projekt Asszisztens Leírás A Projekt Asszisztens gyakorlatilag a vállalkozás rendszergazdája, aki az infrastruktúra működtetését, karbantartását, igény szerinti bővítését, hiba esetén javítását végzi. Elsődleges feladat a projektek haladását gátló problémák elhárítása. Mivel nincs rá állandó jelleggel igény, így több munkacsoport munkáját is támogatja. Feladatok Eszközbeszerzések Konfiguráció Help Desk szolgáltatás a vállalkozók számára Rendszerek és hálózatok biztonságának garantálása Technikai jelentések készítése Tesztelő Leírás A tesztelés gyakorlati feladatait ők végzik. Teszt eseteket terveznek, implementálnak és futtatnak, az automatizált tesztelés esetén a rendszer felállítását, ütemezését, végzik, kezelik. A menedzser közvetlen beosztottjai, akiknek kötelességük a menedzser által számukra kiosztott/önkéntesen elvállalt feladatokat határidőre elvégezni. Adott esetben, demó megbeszélések alkalmával tájékoztathatják a megrendelőket bizonyos technikai kérdésekről. Feladatok Teszt esetek kezelése (tervezéstől a futtatásig) Tesztelési eredmények dokumentálása Eredmények rendszeres jelentése a menedzser számára Határidők betartása Folyamatos kommunikáció
Emberi erőforrások kezelése Alkalmazottak és kompetenciáik Antal Gábor Mustoha Mátyás Schliszka Soma Wittmann Balázs Ádám Tesztelői tapasztalat (év) Fejlesztői tapasztalat (év) Elemzői képesség (0 5) Tesztelési technikák ismerete (0 5) Adatbázis ismeretek (0 5) Fejlesztői képességek (0 5) Önálló munkavégzés (0 5) Monotonitás tűrés (0 5) Menedzsment ismeretek (0 5) 1 0 0 2 4 4 4 4 2 4 2 4 4 2 2 3 4 4 5 4 5 5 4 5 5 5 3 5 2 5 4 3 3 1 1 1 Kreativiás (0 5) 5 5 5 5 Kommunikációs képességek (0 5) 4 4 4 4
Kommunikáció A nagy mértékű ütemezés és effektív munkavégzés komoly kommunikációs és csapatjátékos kompetenciákat igényel alkalmazottainktól. Fontos, hogy a megrendelő elvárásait teljesítsük, így gyakran a őket is bevonjuk a kommunikációba. Az alábbi formákat használjuk: Tesztelő Tesztelő: napi szintű, nélkülözhetetlen része a feladatok hatékony megoldásának. Tesztelő Teszt Menedzser: eredmények/munka/projekt/futam állapotának elsődleges információs csatornája, fontos a rendszeres és a megfelelő részletes tájékoztatás és tájékozódás. Teszt Menedzser/Tesztelő Adminisztrátor : minden olyan jellegű információnak el kell jutnia az adminisztrátorhoz, ami akadályozza/javíthatja a projekt végrehajtását, a többi csatornához képest viszonylag ritkán használt. Ügyfél Teszt Menedzser: menedzsment és a megrendelők közötti kommunikáció alapja minden munkának és feladatnak, kiemelt jelentőségű minden szervezési kérdés tekintetében Ügyfél Tesztelő: általában az eredmények prezentálásakor van direkt kommunikáció, amikor az ügyfelet a részletek is érdeklik. Fejlődés Társaságunk további célja (a megrendelői elégedtség maximalizálása mellett) egy olyan fejlesztői/tesztelői közösség kialakítása és fenntartása, amelyben minden alkalmazottuk maximálisan otthon érzi magát, és egyéni kompetenciáiban is folyamatosan fejlődik. E célok megvalósítása érdekében, a futamok közötti rekreációs időszakban (ha van ilyen) belső szemináriumokat tartunk. Továbbá, minden alkalmazott számára biztosítjuk, hogy félévente egy, általa választott, szakmához köthető továbbképzésen részt vehessen.
Tesztelési környezet Hardveres minimális specifikáció Feladataink elvégzéséhez az alábbi minimális specifikációnak kell megfelelni: Alkalmazottak számára egyéni munkaállomás biztosítása Egy munkaállomás a következők egységekből áll: 16 Gb RAM 1 Tb HDD 256 Gb SSD Intel Core i5 negyedik generációs processzor Szélessávú internet hozzáférés Megfelelő input perifériák LCD Monitor 24 Szerverek a vállalati információk centrális tárolásához, kezeléséhez Az adott szerverek specifikációi nem képezik részét e dokumentumnak Teszteléshez szükséges szoftverek Statikus kódelemző szoftverek, például PMD, Checkstyle Modellező eszközök, például ArgoUML Teszt specifikáció és eltervező szoftver, például Microsoft Office 2010 Platformfüggő tesztvégrehajtó szftver Platformfüggő unit test framework Teszt lefedettség változását követő eszköz Dashboard Teljesítmény és terheléstesztelő szoftverek Biztonsági eszközök Verziókövetés Cégünk mind a fejlesztési, tesztelési és dokumentálási munkafolyamatok végzéséhez verziókövető rendszert alkalmaz. A különböző feladatok aktuális állapotának nyomonkövetése, esetenként visszaállítása nélkülözhetetlen részét képezi egy modern alapokon működő fejlesztési/tesztelési tevékenységet végző vállalkozásnak. A dokumentációkban (fejlesztési, tesztelési, kiadási, stb...) mindenhol pontosan jelezni kell, hogy az adott anyag pontosan melyik verzióra vonatkozik. Projektjeink nagy részénél Git verziókövető rendszerek használunk. Külső cégekkel, speciális megrendelők esetében más rendszerekkel is tudunk együttműködni.
Tesztelési módszertanok Munkánk során fontosnak tartjuk, hogy mind statikus, mind dinamikus tesztelési módszertanokat alkalmazzon. A feladataink elvégzéséhez főként az alábbi eszközöket használjuk: Statikus teszteléshez kódelemző eszközök UML, specifikáció analízis Folyamatos kód review Dinamikus teszteléshez tapasztalat alapú tesztelési döntések black box tesztelés szükség esetén white box tesztelés Acceptance kritérium Cégünk célja a megrendelőink teljeskörű elégedettsége, így fontosnak tartjuk a jól meghatározott elfogadási kritériumok definiálását. Jellemzően ezek implementációtól független, magas szintű feltételek, amelyek céljainkat tartalmazzák. A projektünket csak mindezen feltételek teljesülés után nevezhetjük késznek. Exit kritérium Exit kritériumainkhoz az alábbi feltételeket vesszük alapul: a megrendelőnk megelégedettsége nincs súlyos jelentőségű hiba a szoftverben sikeres átvételi teszt minimum 70% os teszt lefedettség a lehető legmagasabb teszt lefedettség a kritikus komponensekben a tesztesetek háromnegyede sikeres