Test Management Strategy Document Deák Kristóf Lauly Viktória Kunigunda Csiki Norbert Szabó Zoltán
Agenda Bevezetés Ki mit tud statisztika Tesztelési környezet Felelősségek, szerepek és feladatok Tesztelési technikák Teszt eszközök Kommunikáció Célok és az elfogadási, kilépési feltételek Bevezetés Cégünk agilis szoftverfejlesztési módszertant követ, ennél fogva folyamatos együttműködésre van szükség a szoftver követelmények és megoldások fejlesztéséhez. Heti gyakorisággal úgy nevezett meeting -eket tartunk, ahol minden fejlesztő és tesztelő beszámol az előző heti munkájáról, valamit a következő heti terveiről. A következő heti tervek megvalósításáról pedig a következő meeting -en esik szó. A csapat motivációja elsődleges szempont, ehhez szorosan egymás melletti irodákban helyezzük el az egy projekten dolgozókat, vagy akár páros programozást is alkalmazunk, hogy két embernek teljesen ugyanazt a feladatot adjuk. Előtérbe helyezzük a működő szoftvert a dokumentációkkal szemben, hiszen az ügyféllel való kommunikáció során előnyös, ha minél hamarabb látnak egy működő programot, dokumentációk megbeszélése, megmutatása helyett ez hasznosabb, többek között az ügyfél bizalmának megtartása szempontjából. Természetesen az ügyféllel folyamatosan tartjuk a kapcsolatot, hiszen a követelmények időközben változhatnak.
Az elsődleges feladatunk, hogy az ügyfél elégedettségét teljes mértékben fenntartsuk! Ki mit tud statisztika A feladatokat elvégző csapatról összeállítottunk egy ki mit tud statisztikát, megkönnyítve ezzel a teszt menedzser feladatát, hogy kinek milyen feladatokat osszon ki: Tesztelő Tesztelői Tapasztalat (év) Fejlesztői tapasztalat (év) Lexikális tudás Adatbázis ismeretek Megbízhatóság, szorgalom Munkabírás Menedzseri szemléletmód Deák Kristóf 1 1 8 5 8 8 10 Lauly Viktória Kunigunda 0 2 7 6 8 8 6 Csiki Norbert 0 3 7 8 7 9 5 Szabó Zoltán 0 3 7 7 7 9 7 Tesztelési környezet Fontos természetesen, hogy a tesztelői csapatunk számára biztosítsuk a megfelelő környezetet, ahol gond nélkül dolgozhatnak. Ehhez pedig összesítve leírunk egy hardver és szoftver követelményrendszert, amelyeket a dolgozói gépeken a cég rendszergazdáinak biztosítania kell. Minimális (!) hardver követelmények (gépenként): Intel Core i7-4790k 4.4 GHz Processor (4-core) 250 GB SSD 500 GB HDD 8 GB RAM Razer egér Cooler Master, legalább 600 W teljesítményű tápegység
Dual monitor Minimális (!) szoftver követelmények (gépenként): Dual OS (Windows 10 és Linux) Microsoft Office programcsomag Selenium WebDriver (Eclipse) JAVA 8 Eclipse és/vagy NetBeans fejlesztői környezet (esetleges kisebb fejlesztői feladatok ellátására) Felelősségek és szerepek, feladatok 1. Teszt menedzser: Fő Feladata a tesztelési folyamat folyamatos ellenőrzése. Emellett persze számos tevékenységet ellát, mint például állandó kapcsolatban áll a fejlesztőkkel, hogy a tesztelés és fejlesztés párhuzamosan menjen. Dönt arról, hogy a projekt melyik részét melyik tesztelő végzi, és az elkészült munkájukat is ő értékeli. Szükség esetén pedig cserét hajt végre a csapatban, ha nincs megelégedve valamely tesztelő munkájával. Elemzi a riportokat, és statisztikát készít belőlük, dashboard és táblázat formájában. Irányítja, koordinálja az egész tesztelési folyamatot. Az ő feladata tehát az alábbi feladatok elvégzése: Riport elemzés, statisztika készítés Projekt koordinálása, irányítása Tagok kicserélése, új tag(ok) felvétele Projekt folyamatos figyelemmel kísérése (monitorozás) Projekt gyakorlati megvalósítása és a dokumentációban összefoglalt elvárások összehasonlítása, és felügyelete Trainingek szervezése felhasználóknak és/vagy dolgozóknak, ha szükséges Ügyféllel és a fejlesztői csapattal való folyamatos kapcsolattartás
Projekt terv elkészítése, és végrehajtásának biztosítása A projekt gazdasági összetételének (leendő profit kiadás) elemzése, szem előtt tartása 2. Tesztelő: A csapatban ők végzik a gyakorlati munkát. Tényleges teszteseteket írnak, futtatják őket, konstatálják, hogy melyik futott le, abból mennyi volt sikeres, és ezt közlik a teszt menedzserrel. Ők adják a tesztelői csapat magját, az alapvázat. A teszt menedzser feladatokat oszt ki nekik, amelyeket nekik végre kell hajtaniuk, az eredményekről pedig tájékoztatni a menedzsert. Szükség esetén az ügyféllel való kommunikáció elengedhetetlen. Az ő feladatuk tehát az alábbi feladatok elvégzése: Tesztesetek készítése, végrehajtása Eredmények dokumentálása, riportok készítése A menedzser eredményekről való tájékoztatása Adott esetben ügyféllel való kommunikáció A rájuk kiosztott feladatok határidőre való végrehajtása 3. Adminisztrátor: Ők egyfajta biztonsági szerepet töltenek be. Fő feladatuk, hogy a tesztelők számára folyamatosan biztosítsák és karbantartsák a fentebb említett hardver és szoftver környezetet. Adott esetben besegítsenek a teszt menedzser munkájába is, főképp a tervezési fázisban. Összekötő szerepet is betölthetnek a tesztelők és a teszt menedzser között, hiszen többnyire ő napi szintű kapcsolatban van mindkettővel. Az ő feladatuk tehát az alábbi feladatok elvégzése:
Technikai problémák elhárítása Tesztelési környezet karbantartása Napi szintű kommunikáció a tesztelőkkel és a teszt menedzserrel A rendszer biztonságának garantálása Technikai dokumentáció elkészítése Tesztelési technikák A csapatban fontos, hogy mind statikus, mind pedig dinamikus tesztelési módszereket is alkalmazzunk. Ezek persze sokrétűek lehetnek, ezért a vezetőség kiválasztotta a cégünk által preferált technikákat. A statikus tesztelési módszereknél, amikor nem futtatjuk a programkódot, ügyelni kell arra, hogy a review-ek folyamatosak legyenek, valamint a specifikáció analízisre, hogy megnézzük, hogy egyáltalán a követelményrendszerben leírtak megfelelnek-e az ügyfél elvárásainak. A dinamikus tesztelési módszereknél, amikor futtatjuk a programkódot, elsődlegesen a senior tesztelők tapasztalatára hagyatkozunk, a munka gördülékenységének érdekében. Ha ők úgy ítélik meg, hogy egy adott munkát nem érdemes csupán a tapasztalatukra bízni, akkor főként black-box technikákat alkalmazzunk, amelyek specifikáció alapúak, ahol nem nézzük meg a kódot, azaz az implementáció nem ismert. Azért, mert ezek a tesztelési technikák közelebb állnak a felhasználói scenariokhoz. Ha black-box technika nem elegendő, kombináljuk össze a white-box technikákkal, ahol viszont a kódot is látjuk, és ismerjük. Teszt eszközök Verziókövető (kezelő) rendszer: Teszt menedzsment eszköz: GIT Aqua
Teszt specifikáció eszközök: Microsoft office 2010 Teszt végrehajtó eszközök: Platformtó függő, de mindenképp legyen valamilyen eszköz az alábbiakhoz: Tesztesetek végrehajtása Unit-tesztek végrehajtása Tesztek összehasonlítása Biztonság fenntartása Teszt lefedettség mérése Kommunikáció A folyamatos kommunikáció természetesen a sikeres projekt nélkülözhetetlen része, amely a két felet tekintve több formát is ölthet: 1. Tesztelő Tesztelő: Ez talán a legfontosabb forma, hiszen ők a csapat magja, így fontos, hogy tartsák a kapcsolatot, és jó viszonyt ápoljanak, ezzel tulajdonképpen dinamikussá teszik a tesztelési folyamatot. 2. Tesztelő Teszt menedzser: Szintén fontos, hogy a tesztelők folyamatosan riportokat készítsenek a teszt menedzsernek az eredményekről, és tájékoztassák őt az esetleges hibákról, így hamarabb eljut az a fejlesztőkhöz. A fordított irány legalább ilyen fontos, hogy a teszt menedzser folyamatosan egyértelműen specifikált feladatokat osszon ki az egyes tesztelőknek, és irányítsa munkájukat. 3. Teszt menedzser Ügyfél: A kapcsolat szinte napi szintű a menedzser és az ügyfél képviselője között. Fontos, hogy ha az ügyfél meggondolja magát, és változtatna a specifikáción, akkor azt a tesztelői csapat is minél hamarabb megtudja, és időben az új specifikációnak megfelelően kezdjen el dolgozni. Fordított esetben is fontos, hogy a részeredményekről is tájékoztassuk az ügyfelet, ezzel elnyerhetjük a bizalmát, és ő is úgy érzi, hogy kicsit belelát a folyamatba, nem pedig csak egy kész verziót kap, magyarázat nélkül.
4. Tesztelő Ügyfél: Bizonyos esetekben szükség lehet a tesztelő és az ügyfél közötti közvetlen kommunikációra is. Tehát ez esetben nem a teszt menedzseren keresztül kommunikálnak, hanem a tesztelő kezdeményez egy online, vagy telefonos, e-mailes beszélgetést az ügyféllel. Főként akkor jön elő ez a forma, ha egy-egy tesztelőnek nem teljesen érthető a specifikációban leírt követelményeknek azon része, amely az ő feladatára esik, és S.O.S. segítségre van szüksége, így nincs idő a teszt menedzsert bevonni a kommunikációba. Célok és az elfogadási, kilépési feltételek Ezen dokumentum célja, hogy lefektessük a cég tesztelési alapelveit. Ezek pedig irányt mutatnak a tesztelési folyamat végrehajtása közben, megkönnyítve a dolgozók munkáit. A dokumentum alapján mindenki tudja, mi a feladata, és mit várnak el tőle, mik a kötelességei. A célunk tehát a mindenkori ügyfél maximális elégedettsége! Az elfogadási feltételrendszer (Acceptance criteria) az alábbi szempontok alapján áll össze: Magas szintű Független az implementációtól A célt fogalmazza meg, ne a hozzá vezető megoldást A kilépési feltételrendszer (Exit criteria) az alábbi szempontok alapján áll össze: Legalább 77%-os teszt lefedettséget el kell érni (utasítás szintű lefedettségről beszélünk) A futtatott tesztesetek legalább 80%-ának PASSED (SIKERES) státuszt kell eredményeznie Az utolsó verzióban a regressziós tesztekkel már nem találunk hibát A tényleges kiadás előtt mindenképp egy felhasználói béta teszt verziót tegyünk közzé Meggyőződni arról, hogy ügyfelünk elégedett a szoftverrel
Nem futó teszteset nem lehet a projektben Az átvételi teszt (ennél fogva az alacsonyabb szintűek is) sikeresnek kell, hogy legyen Az adatbázis tesztelésének lefedettsége legalább 90%-os legyen