Szoftverellenőrzési technikák

A tantárgy angol neve: Software Verification Techniques

Adatlap utolsó módosítása: 2010. március 11.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
 

 Mérnök informatikus szak, MSc képzés  
Szolgáltatásbiztos rendszertervezés szakirány  

 
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIMIM148 2 2/1/0/v 4  
3. A tantárgyfelelős személy és tanszék Dr. Majzik István,
4. A tantárgy előadója
Név: Beosztás: Tanszék, Int.:
dr. Majzik István egyetemi docens MIT
Micskei Zoltán ügyvivő szakértő MIT
5. A tantárgy az alábbi témakörök ismeretére épít

Alapvető programozási (Java és C) és UML modellezési ismeretek.

6. Előtanulmányi rend
Kötelező:
NEM ( TárgyEredmény( "BMEVIMIMA01" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIMIMA01", "FELVETEL", AktualisFelev()) > 0)

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:

Tematikaütközés miatt a tárgyat csak azok vehetik fel, akik korábban nem hallgatták illetve egyidejűleg nem veszik fel a következő tárgyakat: Szoftvertesztelés (VIIIM142)

7. A tantá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.

8. A tantárgy részletes 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 DECOS fejlesztési folyamatban.

A követelmény-specifiká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).

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. A SCADE által biztosított verifikációs technikák.

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).

Tesztelési módszerek és folyamatok: A funkcionális (fekete doboz) és a strukturális (fehér doboz) tesztelés szerepe. Funkcionális tesztek tervezése. Teszt fedettségi metrikák a strukturális 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.

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.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

Előadás és előadótermi gyakorlat.

10. Követelmények

-          A szorgalmi időszakban: A félévvégi aláírás feltétele egy, a tárgy anyagához kapcsolódó házi feladat (otthoni feladat) megfelelő színvonalú elkészítése. A házi feladatok kiadása a 4. oktatási héten, beadása pedig a 10. oktatási héttől a szorgalmi időszak végéig történik.

-          A vizsgaidőszakban: A hallgatók a tárgyból szóbeli vizsgát tesznek. A félévközi házi feladat (otthoni feladat) értékelése 30% súllyal számít bele a vizsgajegybe. A vizsga feltétele az aláírás megszerzése, a megszerzett aláírás 3 évig érvényes.

-          Elővizsga: Nincs.

11. Pótlási lehetőségek

A házi feladat (otthoni feladat) határidőn túl a pótlási héten adható be, a vizsgaidőszakban pótlás már nem lehetséges.

A vizsga egyszeri javítására minden hallgató jogosult, ekkor az érvényes eredmény a legutolsó alkalommal elért osztályzat.

12. Konzultációs lehetőségek

A házi feladattal kapcsolatban a félév során egy konzultációs lehetőséget biztosítunk.

13. Jegyzet, tankönyv, felhasználható irodalom

Óravázlatok elektronikusan hozzáférhető formában (tantárgy web lapon).

Ajánlott irodalom:

  1. Sziray J., Majzik I., Benyó B., Pataricza A., Góth J., Kalotai L., Heckenast T., Nagy N.: Szoftver rendszerek minőségbiztosítása és verifikálása. Elektronikus jegyzet, 2000.
  2. G. G. Schulmeyer, G. R. MacKenzie: Verification and Validation of Modern Software-Intensive Systems. Prentice Hall, 2000.
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra42
Félévközi készülés órákra0
Felkészülés zárthelyire0
Házi feladat elkészítése30
Kijelölt írásos tananyag elsajátítása0
Vizsgafelkészülés48
Összesen120
15. A tantárgy tematikáját kidolgozta
Név: Beosztás: Tanszék, Int.:
dr. Majzik István egyetemi docens MIT