Szoftverellenőrzési technikák

Senior Lecturer: 
István Majzik
Instructors: 
István Majzik
Instructors: 
Zoltán Micskei
Instructors: 
Zoltán Ujhelyi

Aktuális információk

A tárgy célkitűzése

A tárgy célja megismertetni a hallgatókat azokkal a technikákkal, eszközökkel és folyamatokkal, amelyek alkalmasak az informatikai rendszerek hibamentességének ellenőrzésére a tervezés, megvalósítás, az integrálás és az üzembehelyezés során. A tárgy az eljárások és eszközök ismertetése során figyelembe veszi a nagy rendelkezésre állású illetve biztonságkritikus rendszerek tervezési szabványaiban megjelenő előírásokat is.

A tárgy részletesebb tematikája

  • A fejlesztési folyamathoz kötődő ellenőrzések áttekintése: Életciklus modellek, a verifikáció és validáció szerepe az egyes fejlesztési folyamatokban. A fejlesztési szabványokban megjelenő előírások.
    • Esettanulmányok: Az IEC 61508 által előírt verifikációs technikák. V&V tervezése a fejlesztési folyamatban (eszközláncok).
    • Gyakorlat: Mintapéldák.
  • A követelményspecifikáció ellenőrzése: Követelménykezelő eszközök használata, a követelmények közötti kapcsolatok, a követhetőség biztosítása. A specifikáció teljességének és ellentmondás-mentességének vizsgálata.
    • Esettanulmány: UML modell alapú teljesség és ellentmondás-mentesség ellenőrzés (pl. IAR VisualState).
    • Gyakorlat: Követelménykezelés.
  • Ellenőrzések a tervezési fázisban: A tervek ellenőrzése átvizsgálással. Modell alapú verifikáció (helyességbizonyítás) és szimuláció. Kapcsolat a teszt tervezéssel.
    • Esettanulmány: Modell ellenőrzés UML állapottérkép modellek alapján.
    • Gyakorlat: Részletes tervek ellenőrzése.
  • A forráskód verifikáció technikái: A vezérlési struktúra és az adatfolyam statikus ellenőrzésének lehetőségei. Az absztrakt interpretáció. Kód komplexitási mértékek.
    • Esettanulmány: A MISRA szabvány előírásai és ezek ellenőrzése. Statikus forráskód analízis eszközök (pl. PolySpace).
    • Gyakorlat: Forráskód ellenőrzés (pl. FindBugs, PMD).
  • Tesztelési módszerek és folyamatok: A funkcionális (fekete doboz) és a struktura alapú (fehér doboz) tesztelés szerepe. Funkcionális tesztek tervezése. Teszt fedettségi metrikák a struktura alapú tesztelés során. A modell alapú tesztgenerálás lehetőségei. A szoftver-hardver integrációs tesztelés szisztematikus technikái. A tesztek végrehajtásának tervezése és menedzselése. A tesztek dokumentálása.
    • Esettanulmányok: Automatikus tesztelési környezetek és eszközök (pl. Cantata++, Rational Test Suite). Az UML tesztelési profil használata. A DECOS Test Bench. Biztonságkritikus kezelőfelület tesztelése.
    • Gyakorlatok: Funkcionális tesztelés (pl. JUnit, JMock). Integrációs tesztelés. GUI tesztelése (pl. Selenium).
  • Validáció: A validáció módszerei, terhelés és robusztusság tesztelés, hibainjektálás, szolgáltatásbiztonsági benchmarkok.
    • Esettanulmányok: Robosztusság tesztelési technikák. A hibainjektálás megvalósítási lehetőségei.
  • Az életciklust átfogó előírások: Hibajelentő és hibakezelő eszközök használata, a hibák elemzése, regressziós tesztelés. A verifikáció és a validáció szervezeti rendje, a dokumentálás folyamata, a költségek tervezése és a szoftver minőség becslése. Értékelés és tanúsítás biztonságkritikus rendszerekben.