Szoftver- és rendszerellenőrzés

A tantárgy angol neve: Software and Systems Verification

Adatlap utolsó módosítása: 2022. június 8.

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

Mérnökinformatikus szak

MSc képzés 

Kritikus rendszerek főspecializáció 

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIMIMA01 2 2/1/0/v 4  
3. A tantárgyfelelős személy és tanszék Dr. Micskei Zoltán Imre,
A tantárgy tanszéki weboldala http://inf.mit.bme.hu
4. A tantárgy előadója

Dr. Majzik István, egyetemi docens, MIT

Dr. Micskei Zoltán Imre, egyetemi docens, MIT 

5. A tantárgy az alábbi témakörök ismeretére épít Alapvető programozási (Java, C és C#) és UML modellezési ismeretek
6. Előtanulmányi rend
Kötelező:
NEM ( TárgyEredmény( "BMEVIMIM148" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIMIM148", "FELVETEL", AktualisFelev()) > 0
VAGY
TárgyEredmény( "BMEVIMIMA29", "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIMIMA29", "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ó.

7. A tantárgy célkitűzése

A tantárgy célkitűzése, hogy megismertesse a hallgatókat a teljes szoftver- és rendszerfejlesztési életciklus során alkalmazható különböző ellenőrzési technikákkal. Ilyen ellenőrzési technikákra manapság már nem csak a kritikus rendszerek esetén van szükség (ahol ezek alkalmazását legtöbbször szabvány írja elő), hanem minden alkalmazás esetén elvárás, hogy jó minőségű rendszert fejlesszünk.

A tantárgy teljesítése után a hallgatók átlátják a teljes ellenőrzési folyamatot, és ismerik, hogy az egyes fejlesztési fázisokban mely technikák alkalmazása javasolt. Ismerik a különböző statikus ellenőrzési technikákat, és képesek terveket és specifikációkat ellenőrizni, valamint statikus ellenőrző eszközöket használni forráskódok átvizsgálására. Megismerik a szoftvertesztelés szintjeit és módszereit, és képesek alkalmazni a specifikáció és struktúra alapú teszttervezési technikákat. Ismerik az extrafunkcionális jellemzők ellenőrzésére használható módszereket (pl. megbízhatóság modellezése és vizsgálata). Ismerik a futásidőbeli verifikáció alkalmazási lehetőségeit.

8. A tantárgy részletes tematikája
Az előadások tematikája 
 
Áttekintés 
1. Kritikus rendszerek elvárásai, szolgáltatásbiztonság jellemzői
2. Ellenőrzési módszerek helye a fejlesztési folyamatban
 
Statikus ellenőrzési technikák
3. Követelmények ellenőrzése (ellenőrzési szempontok, teljesség és ellentmondás-mentesség, követelménykezelő eszközök)
4. Tervek ellenőrzése (részletes tervek ellenőrzése átvizsgálással, modell alapú verifikáció)
5. Forráskód ellenőrzése (ajánlások és előírások, vezérlési struktúra és adatfolyam ellenőrzése, ellenőrzési eszközök)
 
Tesztelés 
6. Tesztelési szintek és módszerek (tesztelési megközelítések és célok, tesztek a fejlesztési folyamat egyes fázisaiban)
7. Specifikáció és struktúra alapú teszttervezés (fekete és fehér doboz technikák, összetettebb lefedettségi kritériumok)
8. Tesztautomatizálás (build folyamatok, folytonos integráció, regressziós tesztelés)
9. Modell és kód alapú tesztgenerálás (tesztgenerálási algoritmusok, modell ellenőrzők és kényszermegoldók használata, dinamikus szimbolikus végrehajtás)
 
Szolgáltatásbiztonság vizsgálata 
10. Extrafunkcionális követelmények ellenőrzése (extrafunkcionális követelmények fajtái, terhelés és robusztusságtesztelés, hibainjektálás)
11. Kvalitatív és kvantitatív analízis (a biztonsági analízis módszerei: hibafa, eseményfa, ok-következmény analízis, hibamód és -hatás analízis)
12. Megbízhatóság modellezése (modell alapú megbízhatósági analízis)
13. Futásidőbeli verifikáció (követelmény alapú monitorozás és monitor szintézis)
 
14. Esettanulmány / Vendégelőadás
 
A gyakorlatok tematikája
 
1. Incidenskezelő eszközök használata. HF tájékoztató
2. Követelmények ellenőrzése. Követelménykezelő eszköz kipróbálása
3. Részletes tervek verifikálása.  Statikus ellenőrző eszköz használata
4. Modultesztelés eszközeinek használata (automatikus tesztfuttatás, izoláció)
5. Teszttervezési technikák használata egyszerűbb mintapéldákon
6. Automatikus tesztgeneráló eszköz használata
7. Biztonsági analízis módszereinek gyakorlása
9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás és gyakorlat
10. Követelmények

A szorgalmi időszakban:

  • A félévvégi aláírás feltétele a tárgy anyagához kapcsolódó több fázisból álló csoportos otthoni feladat megfelelő színvonalú elkészítése.
  • Az otthoni feladat minden fázisát teljesíteni kell, az adott fázisra kapható pontok legalább 40%-át el kell érni.

A vizsgaidőszakban:

  • A hallgatók a 20 fő alatti kurzus létszám esetén szóbeli, egyéb esetben írásbeli vizsgát tesznek.
  • Az írásbeli vizsga két részből áll. Az elégséges vizsgához mindkét rész külön-külön min. 40%-os teljesítése szükséges.
  • A félévközi otthoni feladat értékelése 50%-os súllyal számít bele a vizsgajegybe.

Elővizsga: Nincs.

11. Pótlási lehetőségek
  • Az otthoni feladat jellege nem teszi lehetővé a sikeres otthoni feladat ismétlését. [TVSZ 122. § (3)].
  • Az otthoni feladat minden fázisa beadható késedelmesen az eredeti határidő utáni legfeljebb egy hétben. Egy adott fázis késedelmes leadása miatt az adott fázisra kapható pontok 20%-nak megfelelő levonás jár az adott fázisra.
12. Konzultációs lehetőségek Igény szerint az előadókkal egyeztetve.
13. Jegyzet, tankönyv, felhasználható irodalom

G. G. Schulmeyer, G. R. MacKenzie. Verification and Validation of Modern Software-Intensive Systems. Prentice Hall, 2000.

N. G. Leveson: Safeware: System Safety and Computers. Addison Wesley, 1995 

G. J. Myers, C. Sandler. The Art of Software Testing. John Wiley & Sons, 2004.

M. Broy, B. Jonsson, J.-P. Katoen, M. Leucker, A. Pretschner. Model-Based Testing of Reactive Systems: Advanced Lectures (Lecture Notes in Computer Science). Springer-Verlag, 2005.

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontaktóra
42
Készülés előadásra
7
Készülés gyakorlatra
7
Házi feladat
32
Vizsgafelkészülés
32
Összesen120
15. A tantárgy tematikáját kidolgozta

Dr. Majzik István, egyetemi docens, MIT

Dr. Micskei Zoltán Imre, egyetemi docens, MIT