T ESZTELÉS
C ÉLJA Minél több hibát találjunk meg! Ahhoz, hogy az összes hibát fölfedezzük, kézenfekvőnek tűnik a programot az összes lehetséges bemenő adattal kipróbálni. Akkor tudunk a tesztelés eredményéről bármit is mondani, ha van elképzelésünk arról, hogy adott bemenő adatra milyen eredményt várunk. Teszteset: a be- és kimeneti adatok, és a feltételek együttes megadása.
A TESZTELÉS ALAPELVEI A jó teszteset az, ami nagy valószínűséggel egy még felfedetlen hibát mutat ki a programban. A teszteset nem csak bemenő adatokból, hanem a hozzájuk tartozó eredményekből is áll. (A későbbi felhasználás miatt célszerű feljegyezni.) A meg nem ismételhető teszteseteket kerüljük! A tesztelést az érvényes és az érvénytelen adatokra is el kell végezni. Minden tesztesetből ki kell „bányászni” a legtöbb információt. Fontos megállapítani, hogy miért nem valósít meg a program valamilyen funkciót amit elvárunk tőle, és azt is, hogy miért végez olyan tevékenységet is, amit nam feltételeztünk róla. A program tesztelését csak a program írójától különböző személy képes hatékonyan elvégezni.
S TATIKUS TESZTELÉSI MÓDSZEREK Azok a módszerek, amikor csak a kódot vizsgáljuk. Kódellenőrzés: A program szövegének megvizsgálása. Az algoritmus logikáját kell a programban végigkövetni, s megfigyelni, hogy a kettő eltér-e egymástól. Formai ellenőrzés: Kereszthivatkozási táblázat: adatnév, típus, hivatkozási helyek azonosítása. A program minden utasítását végre kell hajtani legalább egyszer.
S TATIKUS TESZTELÉSI MÓDSZEREK Tartalmi ellenőrzés: Ellentmondás-keresés. A tartalmi hibák a formailag helyes programokban fordulnak elő, de felismerhetők formális eszközökkel. A programba valószínűleg elírás, figyelmetlenség miatt kerültek bele. Felhasználatlan objektum, vagy változóérték. Érték nélküli változó, függvény, vagy operátor. Nem változtató értékadás. Azonosan igaz (hamis) logikai formulák. Konstans értékű kifejezések. Végtelen ciklus. Mellékhatással rendelkező függvény, vagy operátor.
D INAMIKUS TESZTELÉSI MÓDSZEREK A programot végre is hajtjuk. „Fekete doboz” módszer: Adatvezérelt tesztelés. A tesztelő nem veszi figyelembe a program belső szerkezetét, hanem a teszteseteket a feladat meghatározás alapján választja meg. A cél az összes hiba megtalálása a programban. Ez elvileg lehetséges, a programot ki kell próbálni az összes lehetséges bemenő adatra. Ezzel a módszerrel mennyiségi akadályokba ütközhetünk. Kimerítő bemenet tesztelés.
D INAMIKUS TESZTELÉSI MÓDSZEREK „ F EKETE DOBOZ ” MÓDSZER : Ekvivalencia osztályok keresése. Minden tesztesetnek annyi bemeneti feltételt kell kielégítenie, amennyit csak lehetséges azért, hogy ezzel a lehetséges tesztesetek számát csökkentsük. A bemeneti tartományt valamilyen módon részekre kell osztani, és ezekre a részekre jellemző teszteseteket kell választani. Ezekre a részekre (osztályokra) legyen igaz, hogy: ha egy ilyen osztályból választunk egy tesztesetet, és ezzel hibát találunk a programban, akkor az osztály más elemét választva is nagy valószínűséggel hibát találnánk. Ekvivalencia osztályokat nem csak az érvényes, hanem az érvénytelen adatokra is létre kell hozni, és a programot azokkal is ki kell próbálni.
D INAMIKUS TESZTELÉSI MÓDSZEREK „F EKETE DOBOZ ” MÓDSZER : Határeset elemzés. Az előzőnek bizonyos szempontból kiegészítő módszere. Az ekvivalencia osztály kiválasztott elemének a „határokon” lévő elemeket választjuk. Nem csak a bemeneti, hanem a kimeneti ekvivalencia osztályt is figyelembe kell venni.
D INAMIKUS TESZTELÉSI MÓDSZEREK „F EHÉR DOBOZ ” MÓDSZER : A tesztelést a programszöveg ismeretében végezzük. A cél a program minél alaposabb tesztelése (kimerítő út tesztelés). Az összes lehetséges utat végigjárjuk, azaz annyi tesztesetet hozunk létre, hogy ezt elérhessük. Probléma: viszonylag kis programok esetén is nagy lehet a tesztelési utak száma (pl. a ciklusok miatt), illetve a hiányzó utakat nem lehet felderíteni.
D INAMIKUS TESZTELÉSI MÓDSZEREK „F EHÉR DOBOZ ” MÓDSZER : Utasítások egyszeri lefedésének elve. A program-gráf csomópontjainak lefedése. Olyan teszteseteket választunk ki, amelyek alapján minden utasítást legalább egyszer végrehajthatunk. Döntéslefedés elve. A program-gráf éleinek lefedése. Minden egyes elágazás ‘igaz’, illetve ‘hamis’ ágát legalább egyszer be kell járni a tesztelés során.
D INAMIKUS TESZTELÉSI MÓDSZEREK „F EHÉR DOBOZ ” MÓDSZER : Részfeltétel-lefedés elve. Olyan teszteseteket kell készíteni, amelyhez a döntésekben szereplő minden részfeltételt legalább egyszer ‘hamis’, illetve legalább egyszer ‘igaz’ eredménnyel értékelünk ki. Speciális tesztesetek elve. Az előző elvek mellett válasszunk az egyes utakhoz speciális teszteseteket is!
D INAMIKUS TESZTELÉSI MÓDSZEREK S PECIÁLIS TESZTEK : Elfogadhatósági teszt. Annak vizsgálata, hogy a specifikáció ellentmondásmentes-e, tartalmaz-e hiányosságokat, stb. Funkció teszt. Szerepel-e az összes funkció, amit meg akarunk valósítani? A kívánt eredmények mindegyike megjelenik-e?
D INAMIKUS TESZTELÉSI MÓDSZEREK S PECIÁLIS TESZTEK : Biztonsági teszt. A program ellenőrzi-e a felhasználótól kapott adatokat? Hibás adatokkal meg lehet-e zavarni a működést? Stressz teszt. Mi történik, ha az adatok nagy sebességgel érkeznek? Volumen teszt. Mi történik, ha sok adatot kell kezelnie a programnak?
D INAMIKUS TESZTELÉSI MÓDSZEREK S PECIÁLIS TESZTEK : Hatékonysági teszt. Megfelelő-e a végrehajtási idő, valamint a változók helyfoglalása? Modulteszt. Az önálló modulok egyenkénti tesztelése a többitől függetlenül. Összeépítési teszt. Az önálló modulok összeépítésének ellenőrzése.
K ÖSZÖNÖM A FIGYELMET !