A white-box teszttervezési technika lényege [link1][link2], hogy tesztelés alatt ismerjük a tesztelni kívánt szoftver forráskódját, belső struktúráját. A tesztelő feladata annak ellenőrzése, hogy a bemenetek és a kimenetek hogyan működnek a programban. Legtöbbször alacsonyabb szintű tesztfolyamatoknál alkalmazzuk, például komponens-, vagy integrációs/ API teszteknél. Magasabb szinten, end-to-end/ UI tesztelésnél, amikor általában nem ismert maga a kód és a belső felépítés, a black-box tesztelési technika az elterjedtebb.
Az alább bemutatott white-box technikák lehetővé teszik, hogy lefedettségi kritérium szerint vizsgáljuk a tesztobjektumot.
Nyilatkozati lefedettség
Ez a technika megköveteli, hogy a kód minden lehetséges állítását legalább egyszer tesztelni kell a szoftverfejlesztés tesztelési folyamata során (folyamatábrában a node-ok). A lefedettséget megkapjuk, ha tesztek által végrehajtott utasítások számát osztjuk a tesztobjektumban lévő végrehajtható utasítások számával.
Döntési lefedettség
Olyan teszttechnika, ahol a tesztesetek a döntési eredmények végrehajtására szolgálnak. Majdnem minden esetben megegyezik az áglefedettséggel, mivel az ágakat és a döntési eredményeket ugyanazokkal a tesztekkel le lehet fedni. Egyedül akkor különböznek, ha a vizsgált kódban nincs döntés. A döntés nélküli programok esetében a döntési lefedettség definíciója 0/0 lefedettséget eredményez, ami nem definiálható, függetlenül attól, hogy hány tesztet futtatnak, míg az egyetlen elágazás a belépési ponttól a kilépési pontig (egy belépési és kilépési pontot feltételezve) 100%-os áglefedettséget eredményez.
A 100%-os döntési lefedettség elérése garantálja a 100%-os nyilatkozati lefedettséget (de fordítva nem igaz).
Módosított feltétel / döntés lefedettség
Míg a döntési tesztelés a teljes döntést, mint egészet veszi figyelembe, és értékeli az IGAZ és HAMIS eredményeket, a módosított feltétel/döntési tesztelés figyelembe veszi, hogyan épül fel egy döntés, ha több feltételt tartalmaz. Minden döntési predikátum egy vagy több atomi feltételből áll, amelyek mindegyike egy Boole-értéket értékel ki. Ezek logikusan kombinálva határozzák meg a döntés kimenetelét. Ez a technika ellenőrzi, hogy az egyes atomi feltételek egymástól függetlenül és helyesen befolyásolják-e az átfogó döntés kimenetelét. A módosított feltétel/döntés teszteléséhez olyan tesztpárokra van szükség, amelyek azt mutatják, hogy egyetlen atomi feltétel változása függetlenül is befolyásolhatja a döntés eredményét. N egyedi, egymástól független atomi feltétel esetén, a módosított feltétel/döntési lefedettség egy döntéshez általában N+1-szeres döntés gyakorlásával érhető el.
Ezt a technikát a repülőgépiparban és az autóiparban, valamint más biztonságkritikus ipari ágazatokban használják olyan szoftverek tesztelésekor, ahol egy hiba katasztrófát okozhat.
Több feltételes lefedettség
Ritka esetekben szükség lehet az atomi feltételek összes lehetséges kombinációjának tesztelésére, amelyet egy döntés tartalmazhat. N egyedi, egymástól független atomi feltételt feltételezve egy döntés teljes többszörös feltételes lefedettsége 2^N-szeri gyakorlásával érhető el.
Ezt a technikát nagy kockázatú szoftverek és beágyazott szoftverek tesztelésére használják, ahol elvárt a hosszú távú megbízható működés meghibásodás nélkül.
Források:
- https://hu.education-wiki.com/4229407-white-box-testing
- https://www.istqb.org/downloads/send/77-advanced-level-technical-test-analyst-v4-0/361-istqb-ctal-tta-syllabus.html
- https://hu.wikipedia.org/wiki/Feh%C3%A9rdobozos_tesztel%C3%A9s
- https://hu.csstricks.net/8222588-what-is-white-box-testing-techniques-example-and-types