Alapszintű tesztelői tanfolyam Bodrogközi László CEO, Neuron Software
Képzésről Ø A fenti cégek részvételével létrejött a Debreceni Szoftvertesztelő Kerekasztal (DTK) Ø Célok o a szoftvertesztelés fejlesztése a régióban o szoftvertesztelő képzés meghonosítása o szoftvertesztelés, mint szakma helyének tisztázása
Ø A képzés: o 13 előadás és gyakorlat o 3 ZH (5., 9., 13. gyakorlaton) 60% feletti teljesítés az aláírás feltétele o Félév végén szóbeli vizsga
Csapat Ø Ø Ø Ø Ø Ø Ø Ø Ø
Dr. Mihálydeák Tamás – dékán, DEIK Dr. Juhász István (Pici) – nyugdíjas egyetemi oktató, DEIK Gonda László – PhD, DEIK Balla Tibor – tanársegéd, DEIK Pelestyák Henrietta – Test Manager, IT Services Hungary Lázár Gábor – Teams leader, IT Services Hungary Illés Péter – BQA Manager, National Instruments Boda Béla – CTO, Neuron Software Bodrogközi László – CEO, Neuron Software
Tematika Ø International Software Testing and Quality Board (ISTQB)
Ø Hungarian Testing Board (HTB) Ø Certified Tester Foundation Level (CTFL) Syllabus www.hstqb.org Ø Témakörök: o 1 modul: Tesztelés alapjai, tesztelés folyamata (2 előadás) o 2. modul: Tesztelés a szoftver életciklusán át (3 előadás) – ZH o 3. modul: Statikus-, Műszaki teszttervezési technikák (4 előadás) – ZH o 4. modul: Tesztmenedzsment, tesztelési folyamat irányítása (2 előadás) o 5. modul: Eszköztámogatás a tesztelésben (2 előadás) – ZH
ISTQB Certified Tester program
0. Ki az a tesztelő? Egy olyan szakma szakértője, aki azért dolgozik, hogy az Ügyfél elégedett legyen azzal a szoftverrel amit használ. Amikor elégedett az ügyfél: Általában nincs tudatában Amikor nem elégedett ügyfél: Mindig tudatában van
1. Tesztelés alapjai Ø 1.1 Miért szükséges a tesztelés? Ø 1.2 Mi a tesztelés? Ø 1.3 Általános tesztelési alapelvek Ø 1.4 A tesztelés alapvető folyamata Ø 1.5 A tesztelés pszichológiája Ø 1.6 Etikai kódex
1.1 Miért szükséges a tesztelés? Ø 1.1.1 Szoftver, meghibásodás, következmény Ø 1.1.2 A meghibásodások okai Ø 1.1.3 Tesztelés szerepe Ø 1.1.4 A tesztelés és a minőség Ø 1.1.5 Mennyi tesztelés elegendő?
1.1.1 Szoftver, meghibásodás, következménye Ø Szoftverek a világban o Üzleti szoftverek o Vezérlő szoftverek o Játék szoftverek
Ø A szoftverek nem megfelelő viselkedése Ø A meghibásodás következményei
http://youtu.be/JVOZ5Tn9Eg0
1.1.2 A meghibásodások okai (1) Ø Hardverhiba Ø Hálózati hiba Ø Konfigurációs hiba Ø Kezelői hiba Ø Nem megfelelő környezet Ø Adatsérülés
1.1.2 A meghibásodások okai (2) Ø Programhiba
• Emberi tévedés, elírás • • • •
Ismerethiány Segédprogramok hibái Rohammunka Szervezési hiba.
Milyen körülmények segítik az emberi hibákat, tévedéseket? Ø Ø Ø Ø Ø Ø Ø
Szűk határidő, kapkodás Fáradtság, kialvatlanság Túlterheltség Zavaró körülmények, zaj, túl meleg vagy hideg Gyakorlatlanság, pl. új módszer Túl bonyolult feladat Ellentmondásos célok
Mikor nem vezet a programhiba hibás működéshez? Ø Ha nem kerül rá vezérlés Ø Ha a kiváltó feltétel nem teljesül
Minden más esetben igen!
1.1.3 Tesztelés szerepe Ø Használat során fellépő hibák csökkenése Ø Megbízhatóság növelése Ø Szabványoknak, előírásoknak való megfelelés
Ügyfél elégedettség növelése!
1.1.4 A tesztelés és a minőség quality (minőség): Ø az a szint, Ø amikor a komponens, rendszer vagy folyamat megfelel Ø a meghatározott követelményeknek és/vagy Ø a felhasználó/ügyfél igényeinek, elvárásainak. [IEEE 610]
A minőséget befolyásoló szoftverjellemzők Ø Funkcionális o Funkcionalitás
Ø Nem funkcionális o o o o o
Megbízhatóság Használhatóság Hatékonyság Karbantarthatóság Hordozhatóság.
Milyen tevékenységek tartoznak a minőségbiztosításhoz? Ø Fejlesztési szabványok, szabályzatok kialakítása Ø Képzés Ø Tesztelés Ø Hibaelemzés.
1.1.5 Mennyi tesztelés elegendő? Van egy optimum (sáv), aminél kevesebb túl sok hibát hagy benn, a több meg már nem éri meg. risk (kockázat): az a tényező, amely a jövőben negatív következményeket okozhat. Általában, mint hatás és valószínűség jelenik meg.
Áttekintettük: Miért szükséges a tesztelés? Ø 1.1.1 Szoftver, meghibásodás, következmény Ø 1.1.2 A meghibásodások okai Ø 1.1.3 Tesztelés szerepe Ø 1.1.4 A tesztelés és a minőség Ø 1.1.5 Mennyi tesztelés elegendő?
1.2 Mi a tesztelés? Ø 1.2.1 Áttekintés Ø 1.2.2 A tesztelés definíciója Ø 1.2.3 A hibakeresés vs. tesztelés
1.2.1 Áttekintés
1.2.2 A tesztelés definíciója Testing (tesztelés): Ø Az összes fejlesztési életciklushoz kapcsolódó Ø akár statikus, akár dinamikus folyamat amely Ø a szoftvertermékek tervezése, elkészítése Ø kiértékelése során Ø megállapítja, hogy teljesíti-e a meghatározott követelményeket, megfelel-e a célnak Ø A tesztelés felelős a hibák megtalálásáért!
1.2.3 A hibakeresés nem tesztelés debugging (hibakeresés): a szoftver meghibásodás okainak megtalálási, analizálási és eltávolítási folyamata A hibakeresés és a tesztelés két különböző fogalom.
A hibakeresés fejlesztői tevékenység!
Megbeszéltük: Mi a tesztelés? Ø 1.2.1 Áttekintés Ø 1.2.2 A tesztelés definíciója Ø 1.2.3 A hibakeresés nem tesztelés
Bodrogközi László CEO, Neuron Software
[email protected]
1.3 Általános tesztelési alapelvek 1. alapelv – Hibák látszólagos hiánya 2. alapelv – Nem lehetséges kimerítő teszt 3. alapelv – Korai tesztelés 4. alapelv – Hibafürtök megjelenése 5. alapelv – A féregirtó paradoxon 6. alapelv – A tesztelés függ a körülményektől 7. alapelv – A hibamentes rendszer téveszméje
1.4 A tesztelés alapvető folyamata Ø 1.4.1 Teszttervezés- és irányítás Ø 1.4.2 Tesztelemzés és műszaki teszttervezés Ø 1.4.3 Teszt megvalósítása és végrehajtása Ø 1.4.4 A kilépési feltételek értékelése és jelentés Ø 1.4.5 Tesztlezárás
1.4.1 Teszttervezés- és irányítás Ø A tesztelés céljának meghatározása Ø A tesztelési tevékenységek meghatározása Ø Határidők meghatározása Ø Aktuális folyamat összehasonlítása a tervvel Ø Eltérések kiértékelése Ø Szükséges módosítások elvégzése.
1.4.2 Tesztelemzés és műszaki teszttervezés Ø A tesztbázis átnézése Ø Értékelés tesztelhetőség szempontjából Ø A tesztfeltételek meghatározása, priorizálása Ø Tesztesetek megtervezése és priorizálása Ø A tesztadatok meghatározása Ø A tesztkörnyezet megtervezése Ø Nyomonkövethetőség kialakítása.
1.4.3 Teszt megvalósítása és végrehajtása Ø Tesztesetek fejlesztése, priorizálása Ø Teszteljárások fejlesztése és priorizálása Ø Tesztkészletek létrehozása Ø A tesztkörnyezet ellenőrzése Ø A megtervezett sorrend szerinti végrehajtás Ø Naplózás, dokumentálás Ø Kapott és az elvárt eredmények hasonlítása Ø Eltérések issue-ként való jelentése.
1.4.4 A kilépési feltételek értékelése és jelentés Ø A tesztnaplók és a teszttervben foglalt kilépési feltételek összehasonlítása Ø Szükséges-e további teszt? Ø Tesztösszefoglaló jelentés elkészítése.
1.4.5 Teszt lezárás A tervezett átadandók ellenőrzése Az issue jelentések lezárása A rendszer átvételéről szóló dokumentáció elkészítése A testware és a teszt infrastruktúra véglegesítése és archiválása későbbi felhasználásra Ø A testware átadása a karbantartást végző szervezet részére Ø A tapasztalatok feldolgozása a jövőbeni termékekhez vagy projektekhez Ø Az információk hasznosítása a tesztfolyamat érettségének fejlesztéséhez. Ø Ø Ø Ø
Átvettük: A tesztelés alapvető folyamata Ø 1.4.1 Teszttervezés- és irányítás Ø 1.4.2 Tesztelemzés és műszaki teszttervezés Ø 1.4.3 Teszt megvalósítása és végrehajtása Ø 1.4.4 A kilépési feltételek értékelése és jelentés Ø 1.4.5 Tesztlezárás
1.5 A tesztelés pszichológiája Ø 1.5.1 Ki teszteljen? Ø 1.5.2 A függetlenség szintjei Ø 1.5.3 Milyen a jó tesztelő? Ø 1.5.4 A kommunikációs problémák elkerülése
1.5.1 Ki teszteljen? (1) Ø Független tesztelő: • • • •
Más szemlélet, máshol vannak a vakfoltok Nem ellenérdekelt Tesztelési technikák ismerete Többnyire olcsóbb (?)
1.5.1 Ki teszteljen? (2) Ø A szoftver fejlesztője: § § § §
Ismeri a kódot Ismeri a technológiát Ismerni a követelményeket (elvileg) A jó fejlesztő teszteli a munkáját
1.5.2 A függetlenség szintjei Ø A fejlesztők tesztelik a saját kódjukat Ø A fejlesztő csapaton belül van tesztelő Ø Független tesztelő csapat közös vezetés Ø Független tesztelők a felhasználótól Ø Szakosodott tesztelői szakértő Ø Külső tesztelő cég.
1.5.3 Milyen a jó tesztelő? (1) Ø A hibák megtalálásához kell § § § § § § §
kíváncsiság és érdeklődés célorientáltság szakszerű pesszimizmus kritikus szemlélet részletekre való odafigyelés tapasztalat a kommunikációhoz tapasztalat a hibasejtéshez.
1.5.3 Milyen a jó tesztelő? (2) Ø Alapvető követelmények: o Olvasási készség o Jelentések elkészítésének készsége o Megfelelő szintű jártasság • az alkalmazási és üzleti területen • a technológiában • és a tesztelésben.
1.5.4 A kommunikációs problémák elkerülése Ø Együttműködő szándék jelzése Ø A probléma tárgyilagos előadása Ø Meg kell próbálni megérteni a másik felet Ø Ellenőrizzük, hogy értjük-e egymást Ø A jót is jelezzük vissza.
Megbeszéltük: A tesztelés pszichológiája Ø 1.5.1 Ki teszteljen? Ø 1.5.2 A függetlenség szintjei Ø 1.5.3 Milyen a jó tesztelő? Ø 1.5.4 A kommunikációs problémák elkerülése
1.6 Etikai kódex Közérdek, következetesen képviseli Megrendelő és munkaadó, őket a lehető legjobban kiszolgálja Termék, biztosítja, hogy a szabványoknak megfelel Vélemény, fedhetetlen és független Menedzsment, betartja és betartatja az etikai kódexet Szakma, szakma hírneve és fedhetetlensége Munkatársak, korrektül, támogatóan és az együttműködést segítően Ø Személyes, Élete végéig tanul, az etikai kódex a munkája részévé válik Ø Ø Ø Ø Ø Ø Ø
Feldolgoztuk: Tesztelés alapjai Ø 1.1 Miért szükséges a tesztelés? Ø 1.2 Mi a tesztelés? Ø 1.3 Általános tesztelési alapelvek Ø 1.4 A tesztelés alapvető folyamata Ø 1.5 A tesztelés pszichológiája Ø 1.6 Etikai kódex
Bodrogközi László CEO, Neuron Software
[email protected]