150 likes | 355 Views
Tesztelé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 .
E N D
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.
Statikus 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.
Statikus 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.
Dinamikus 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.
Dinamikus tesztelési módszerek „Fekete 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.
Dinamikus tesztelési módszerek „Fekete 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.
Dinamikus tesztelési módszerek „Fehé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.
Dinamikus tesztelési módszerek „Fehé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.
Dinamikus tesztelési módszerek „Fehé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!
Dinamikus tesztelési módszerek Speciá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?
Dinamikus tesztelési módszerek Speciá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?
Dinamikus tesztelési módszerek Speciá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.