Programtesztelés
Hibák keletkezésének okai nem egyértelmű vagy hiányos kommunikáció fejlesztés közben maga a szoftver bonyolultsága programozói (kódolási) hibák folytonosan változó követelmények határidők szorítás és fokozott versenyhelyzet emberek vagyunk
Programtesztelés fajtái Cél szerint: - Statisztikai tesztelés - a rendszer terhelésének és megbízhatóságának vizsgálata - Hibatesztelés - rendszer hibáinak és hiányosságainak felderítése Módszer szerint: - Átfogó tesztelés - minden elem együttes újratesztelése - Inkrementális tesztelés - az előző teszteredmények figyelembe vétele
Programtesztelés fázisai Komponensek tesztelése: egyedi egységek valamint modulok vizsgálata Integrált tesztelés: részrendszerek és az egész rendszer vizsgálata Alfa és béta tesztelés: felhasználó átvétel
Tesztelés tervezése tesztfázisok körvonalazása rendszerspecifikációnak megfelelő teszt kialakítása tesztelendő elemek meghatározása tesztelési ütemterv kialakítása tesztelési eredmények rögzítésének és elemzésének módja a tesztelés hardver és szoftverkövetelményeik meghatározása teszteléshez használt erőforrások allokálása
Tesztelési stratégiák Lefelé irányuló stratégia - felső szint tesztelése az alsóbb szintek szimulálásával Felfelé irányuló stratégia - alsó szintű tesztelt elemek összeépítése Láncszerű stratégia - összetett folyamatok lánconkénti vizsgálata Terheléses stratégia - maximális feldolgozási határ megállapítása
Funkcionális tesztelési módszerek fekete doboz módszer - ismeretlen a forráskód programspecifikáció vezérelt tesztelés inputtér ekvivalencia-osztályokba sorolása reprezentáns elemek kiválasztásának módszere I/O adatok ok-okozati elemzése valós idejű tesztelés
Strukturális tesztelési módszerek fehér doboz módszer - ismert a forráskód végrehajtási utak tesztelése ciklometrikus komplexitás tesztelés helyesség ellenőrző feltételekkel adaptív tesztelés nyelvtan alapú tesztelés adatfolyam alapú tesztelés szimbolikus végrehajtás
Maradványhibák becslése program mutációs tesztelés véletlenszerű tesztelés
Dinamikus tesztelés eszközei csak a forráskód ismeretében alkalmazhatóak program instrumentor - extra információk fűzése a kódhoz monitorok - animátorok és lépésenkénti futtatás profilerek - kritikus részek megkeresése optimizátorok - maximális sebesség vs. minimális memóriaigény
Statikus tesztelés eszközei tesztgenerátorok fájl összehasonlító eszközök verzió követő rendszerek szimulátorok - felhasználói tevékenység szimulálása - számítógépes környezet szimulálása