Ki látott olyat, aki már halott róla, aki már beszélt róla….
Azt tapasztaljuk, hogy a tesztelők[link1][link2] nagy része szimplán tapasztalat alapján ír teszteseteket. Hiába az ISTQB vizsga, hiába tanítják egyes egyetemek egyes kurzusain a szoftvertesztelést, nem nagyon találkozunk olyan tesztelővel, aki használna valamilyen teszteset tervezési módszert. Elgondolkodtató, hogy miért van ez így, de azon is el lehetne gondolkodni, hogyan lehetne ezen változtatni. A cikk arra tesz kísérletet, hogy azon elmélkedjünk, miért lenne jó, ha használnának a tesztelők ilyen technikákat.
Mi történik tehát jelenleg?
Ha nem használunk teszttervezési technikákat, akkor lényegében a tesztelői tapasztalatra hagyatkozunk. Csak. A tesztelői tapasztalat nem rossz dolog, de azt rögtön beláthatjuk, hogy egy juniornál ez nem sok támpont. Pedig a junior is a nem létező tesztelői tapasztalatát használja teszteset tervezéshez.
Egyébként el kell ismerni, hogy a tesztelői tapasztalat alapú teszteset tervezés egy létező technika valójában.
Mesterré válás
Miért tudja legyőzni a sakk nagymester azokat a játékosokat, akik nincsenek a szintjén?
Sokan gondolják, hogy mert több lépést számol előre. Ez nem igaz. A sakk nagymesterei sem számolnak előre átlag 2-4 lépésnél többet. A trükk más.
- 1. „trükk”: Egyrészt egy mesternek nagyon nagy a tapasztalata. Sokat játszott és sok sémája van. Ezekre a sémákra támaszkodva játszik.
- 2. „trükk”: Másrészt nagyon sokat tanult. Megnyitáselméletet, végjáték elméletet, középjáték stratégiákat.
Bármilyen szakmáról beszélünk, ugyanezt a két trükköt kell alkalmazni, ha mesterek szeretnénk lenni. Sok elméletet, technikát, módszert kell tanulni és sokat kell gyakorolni. Nincs ez másképpen a szoftverteszteléssel sem.
Oké, de mit adnak nekünk teszttervezési technikák?
Rendben, kell valami módszer vagy technika, de pontosan mi is a célja a teszttervezési technikáknak?
1. Nagyobb tesztlefedettség
A teszttervezési technikák használata több tesztesetet „dob ki”, mint a szimpla tapasztalat alapú tesztelés. Több tesztesettel viszont nagyobb lesz a tesztlefedettségünk is.
Bár Gödel nemteljeségi tételei óta tudjuk, hogy teljes tesztlefedettség nem érhető el, de azért érdemes a minél nagyobb lefedettségre törekedni.
(Megjegyzés: Kurt Gödel a feje tetejére állította a matematikát. Lényegében bebizonyította, hogy bármely megfelelően komplex rendszerben van „hiba”. A jogi rendszerben mindig van kiskapu, egy kapcsolatban mindig lesz konfliktus, a szoftverekben mindig marad hiba.)
A lefedettség növelése azért cél, mert minél jobban lefedjük tesztekkel a követelményeket, annál kevesebb hiba marad az alkalmazásban.
2. Minőség
A teszttervezési technikák segítségével átgondoltabb, rendszerezettebb teszteset készletet kapunk. Az átgondolás, a rendszer hozzáadása a munkához minőségibb munkafolyamatot eredményez. A minőségibb munkafolyamat következménye a minőségibb termék.
3. A technikák tanításai
A technikák nemcsak módszert, algoritmust adnak a kezünkbe, hanem rávilágítanak szemléletmódokra is. Például az ekvivalencia osztályozás mező szintű teszteset tervezésekhez remek, az ok-hatás analízis viszont folyamat alapú megközelítés. A két különböző megközelítés két különböző szemléletet, két különböző tesztelési szintet is mutat. A technikák megértése egy jobb és „bölcsebb” tesztelői hozzáállást eredményezhet.
Hogyan alkalmazzuk a technikákat?
Nem esztelenül! 🙂
Bővebben? Ésszel!
- A legtöbb technika olyan, hogy kis gyakorlás után már majdhogynem fejben is megy. Ugyanakkor egy gyors papír vagy Exceltáblázat alapú tervvázlat elkészítése nem lesz időpocsékolás.
- A technikák alkalmazása gyakran túl sok esetet eredményez. (Túl sok: nincs idő megírni, nincs idő lefuttatni, üzletileg felesleges esetek, technikailag felesleges esetek…) Ilyenkor valahogy csökkenteni kell az esetek számát:
- Értelemszerűen: Az üzletileg vagy technikailag felesleges esetek elhagyhatók
- Szűkebb tesztadathalmazzal: Például a határérték elemzés egy intervallumhoz 7 esetet határozz meg. Gyakorlatban elég lehet 4 eset is: A két végpontra, amik már az intervallumon pont bent vannak és a két végponton picivel túli értékekre.
- Kockázatok elemzésével
- Tapasztalatok alapján
- A technikákat általában érdemes keverten alkalmazni. Például a határértékek a legtöbb technikán belül vizsgálhatók.
- Használj a tervezéshez segédeszközt. Például: táblázatkezelő, Microsoft PICT (adatvariációk, páronkénti értékek), diagram rajzoló.
- Ha egy módszer alapján több lehetőséged van, akkor általában mindegy melyiket választod, a lényeg, hogy legyél következetes!
- A tervezés is csapatmunka! Kérj segítséget, ha elakadsz! A terveket osszátok meg egymással és vitassátok meg! (Persze ha egyedül vagy egy projekten tesztelő, akkor erre nem lesz módod.)
Összefoglalás
A teszttervezési technikák elég jó algoritmusokat adnak a tesztelők kezébe a tesztesetek tervezéséhez. A használatukkal minőségibb, szakmaibb, rendezettebb munkát lehet végezni. Sajnos mégsem eléggé alkalmazzák ezeket a technikákat. Ezen a blogon már volt szó ilyen technikákról:
Kombinatorikus 1.: https://passed.hu/2021/blog-cikkek/kombinatorikus_teszttervezes/
Kombinatorikus 2.: https://passed.hu/2021/blog-cikkek/kombinatorikus_teszttervezes-2/
Határérték-elemzés és ekvivalencia osztályozás: https://passed.hu/2021/blog-cikkek/teszttervezesi_technikak_1/
Ok-hatás analízis: https://passed.hu/2021/blog-cikkek/teszttervezesi_technikak_2/
Állapotátmenet: https://passed.hu/2021/blog-cikkek/teszttervezesi_technikak_3/
Jó teszteset tervezést! Hajrá! 😊