Unrestricted
MIÉRT KELL TESZTELNI?
MIÉRT KELL TESZTELNI? A termékminőség fejlesztése...hogy megtaláljuk a hibákat, mert azok ott vannak...
MIÉRT KELL TESZTELNI? Hogy felderítsük, mit tud a szoftver
MIÉRT KELL TESZTELNI? Rövidebb termék életciklus
MIÉRT KELL TESZTELNI? A minőség mérhetővé tétele
MIÉRT KELL TESZTELNI? A bizalom erősítése
MIÉRT KELL TESZTELNI? Az ügyfél elvárásainak biztosítása
Validáció vs verifikáció Példa: kávéskanna tervezése Olyan kávéskannát szeretnék, amelynek segítségével kényelmesen tudok kávét tölteni a csészébe anélkül, hogy megégetném magam Author Date Page 10
WHY TO TEST? - Validáció vs verifikáció A kiöntő képes legyen 1 liter folyadék tárolására Legyen fedele, aminél fel lehet emelni és bele lehet tölteni a folyadékot Legyen füle, aminél fogva vinni lehet Legyen kiöntője, amin keresztül távozni tud belőle a folyadék Author Date Page 11
WHY TO TEST? - Validáció vs verifikáció A verifikáció sikeres, de a validálás nem! Author Date Page 12
WHY TO TEST? A standardoknak való megfelelés
MIT JELENT A MINŐSÉG?
MIT JELENT A MINŐSÉG? Transzcendens ( nagyon szeretem ezt a programot ) Felhasználó-alapú (megfelel a felhasználás céljának) Érték-alapú (idő-költség-scope háromszög) Gyártás-alapú (a specifikációknak való megfelelés) Termék-alapú (minőségi karakterisztikák)
MIT JELENT A MINŐSÉG? - TERMÉK-ALAPÚ MINŐSÉG
MILYEN A JÓ TESZT?
MILYEN A JÓ TESZT? Hatásos a gyakori use case-eket tesztel fontos/kritikus use case-eket/függvényeket tesztel a tesztkészlet a lehető legnagyobb tesztlefedettséget biztosítja Hibákat talál minél súlyosabbat minél többet minél korábban Hatékony a teszt(készlet) rövid idő alatt lefut a lehető legkevesebb erőforrást használja fel Stabil, robosztus az eredmény független a tesztkörnyezettől determinisztikus a teszt eredménye Beszédes név konvenciók, commentek visszaadja a lényegi információt az eredményről/hibáról A tesztelés minősége mérhető!
A TESZT HATÁSOSSÁGA - KOCKÁZAT ÉS TESZTELÉS Kockázat: potenciális probléma, ami előfordulhat Két tényezője van: bekövetkezésének esélye (valószínűség) hatása (mekkora kárt okoz) Két típusú kockázat van: Projektkockázat: projekt célok elérését veszélyeztetik Termékkockázat: termékhez közvetlenül kapcsolódó kockázat kezelése: kockázat-alapú teszteléssel milyen technikával mennyit milyen prioritások mentén és mit teszteljünk
TESZTELÉSI ALAPFOGALMAK
ALAPFOGALMAK: BLACK-BOX VS. WHITE-BOX TEST Black box white box Black box : nem ismerjük a kód szerkezetét (pl felhasználói, vagy UI teszt) White box : ismerjük a kód szerkezetét, célzottan tesztelünk
ALAPFOGALMAK: BLACK-BOX VS. WHITE-BOX TEST...de miért kell white box teszt? minden variációt nem lehet UI-on/interface-en keresztül tesztelni időben hamarabb tudunk kódközeli teszteket elvégezni könnyebb redesign-t igénylő hibákat találni egyszerűbb megtalálni a hiba okát lefedettségmérés egyszerűbb
ALAPFOGALMAK: STATIKUS VS DINAMIKUS TESZT Statikus dinamikus teszt Statikus teszt: a szoftver product futtatása nélküli teszt code review documentation review statikus kód analízis Dinamikus teszt: a szoftver product (egy részének) futtatása szükséges lehet kézi, vagy automatikus
ALAPFOGALMAK: STATIKUS VS DINAMIKUS TESZT
ALAPFOGALMAK: TESZTLEFEDETTSÉG Lefedettség vizsgálat (coverage) Teszt coverage: a tesztkészletünk végrehajtása által a tesztelendő szoftver hány százalékát teszteljük jellemzően line, illetve function coverage-et mérünk ökölszabály: 70% LC, 90% FC Requirement coverage: a tesztelendő követelmények hány százaléka van letesztelve V-modell alapján általában 100% az elvárás automatikus ellenőrzés (tracing)
ALAPFOGALMAK: TESZTLEFEDETTSÉG
ALAPFOGALMAK: REGRESSZIÓS TESZT Regressziós teszt: egy korábban már tesztelt program módosítást követő tesztelése annak biztosítása érdekében, hogy a módosítás nem okozott hibát a szoftver nem módosított részeiben
ALAPFOGALMAK: DDP Defect Detection Percentage (DDP): a hibák hány százalékát találták meg egy adott teszszinten / egy adott szervezetben
ALAPFOGALMAK: PARETO-ELV Pareto-elv Pareto-elv: a hibák 80%-át a modulok/függvények 20%-a okozza.
ALAPFOGALMAK: PARETO-ELV
PROJEKTMENEDZSMENT MODELLEK
PROJEKTMENEDZSMENT MODELLEK Előnyök: Stabil követelményeknél, kevésbé komplex projekteknél Feszes ellenőrzést könnyen érthető mérföldkövek Hátrányok: Nehézkes reagálás a változásokra, problémákra -> magas költség- és időigény Az ügyfél csak a folyamat végén látja rendszert Big bang integráció a folyamat végén Minden egyes fázis az előző fázis teljes befejezésére épít, ami tovább növeli a kockázatokat A tesztelés a projekt kései szakaszában kezdődik el, így a hibák sokáig rejtve maradhatnak Túlzott túlzott dokumentálási követelmények Nincs lehetőség a rendszer kisebb részekre osztására
PROJEKTMENEDZSMENT MODELLEK Előnyök: Egyszerű a használata A tesztelés már a kódolás előtt elkezdődik ->korai és költséghatékony hibajavítás A felmerült hibát javítják az adott fázisban, nem gyűrűzik tovább Kis projektek számára praktikus, ahol a követelmények jól ismertek Hátrányok Túlságosan merev, nem rugalmas modell A kódolás az implementációs fázisban történik (a folyamat vége felé), ezért nem készül korai prototípus Ha menet közben bármilyen változás történik, minden dokumentációt frissíteni kell
PROJEKTMENEDZSMENT MODELLEK Iteratív fejlesztési modell: A teljes projektet időben feldaraboljuk iterációkra Minden iteráció egy kis projekt Iterációk végén van kiszállítható termék Inkrementális fejlesztési modell: Minden iterációban egy kis részt hozzáadunk a korábbi verzióhoz Minden iteráció egy kis projekt Prioritás dönti el, mit adunk hozzá A regressziós teszt ellenőrzi, hogy az új fejlesztések rontják-e el a régieket
MIK A NAPI TESZTELÉSI FELADATOK?
MIK A NAPI TESZTELÉSI FELADATOK? Free teszt Átvételi teszt Minőség mérése Test design Dokumentáció Teszt stratégia készítése Rizikóanalízis Követelmény review Regressziós tesztelés UT/IT írás Code review
MI A TESZTELŐ SZEREPE A SZERVEZETBEN?
MI A TESZTELŐ SZEREPE A SZERVEZETBEN Tesztelni mindenki tud Elvárt képességek: Domain tudás Soft skill-ek A termék ismerete Felhasználói ismeretek, karakterisztikák A konkurencia ismerete Ügyfélkozpontú(bb) gondolkodás
MI A TESZTELŐ SZEREPE A SZERVEZETBEN Független tesztelés (QA = Quality Assurance, vagy Qualified Annoyer?) ++ Tesztelői tudás Teszt technikák ismerete Teszt tool-ok ismerete Soft skill-ek Kommunikáció Szenvedély Monotonitás tűrés Szakmailag destruktív, emberileg konstruktív Prezentáció, reportálás
MI A TESZTELŐ SZEREPE A SZERVEZETBEN A teszt (automatizáló) mérnök IT tudás ++ Szoftverfejlesztés Tervezési, ütemezési képességek
MI A TESZTELŐ SZEREPE A SZERVEZETBEN A tesztelő/tesztelés a csapaton belül ++ Tesztelői tudás soft skillek (Agilis tesztelési technikák) Teszt menedzsment képességek Tesztelői szempontok a megbeszéléseken IT tudás Requirement Engineering
MI A TESZTELŐ SZEREPE A SZERVEZETBEN A tesztelő a minőségügyi evangelista Soft skillek ++ Leadership Governance->Guidance-> Coaching Stratégiai gondolkodás Preventív gondolkodás