Regisztráció és bejelentkezés

Mutációs tesztelés alkalmazása biztonságkritikus beágyazott rendszerek tesztelésében

A biztonságkritikus beágyazott rendszerek változatos területeken – például a közlekedésiparban, az energiaellátásban vagy az egészségügyben – látnak el kulcsfontosságú feladatokat. Egy potenciális meghibásodás számos ember életét követelhetné vagy hatalmas anyagi kárt okozhatna, ezért zökkenőmentes működésüket többek között szabványok által előírt szigorú teszteléssel biztosítják.

Mindezek ellenére felmerül a kérdés: Quis custodiet ipsos custodes? – Ki őrzi az őröket? Honnan tudjuk, hogy a tesztkészletünk lefed minden működést és kiküszöböltünk minden lehetséges hibát? Ugyan bizonyos biztonsági szinteken előírt a forráskód teljes lefedettsége a tesztek által, de ez bizonyítottan nem biztosíték arra, hogy minden hibát kiküszöböltünk és megfelelő mennyiségű és minőségű teszttel ellenőriztük kódunk megbízható működését.

A fenti problémára nyújt megoldást a mutációs tesztelés, mely a forráskód apró változtatásainak hatását vizsgálja a tesztek eredményeire. Amennyiben megfelelő tesztkészlettel rendelkezünk, a megváltoztatott, úgynevezett mutáns kód jelenlétét mindenképpen jelezni fogja. Ugyan a módszer elvi hátterét közel öt évtizede dolgozták ki, és azóta is jelentős tudományos munka alanya volt, az ipari térnyerés azonban csak az elmúlt 10-15 évben kezdődött meg, és most sem mondható széles körben elterjedtnek. Ez részben a laboratórium kereteken túllépő, ipari komplexitású kód feldolgozásának nehézségei, részben pedig a módszert jellemző, ipari környezetben szintén fokozódó számítási kapacitásigénynek köszönhető.

Egy ipari esettanulmány kapcsán biztonságkritikus beágyazott rendszerek – vasúti fékrendszerek – tesztelésével foglalkoztam. Megvizsgáltam a mutációs tesztelés bevezetésének lehetőségét, azonban az elérhető eszközök közül egyik sem volt kompatibilis az adott környezeten belül használt szoftverekkel. Így egyértelművé vált, hogy saját szoftver fejlesztésére lesz szükség.

Munkám során egy olyan programot hoztam létre, mely alkalmas az ipari léptékű C kód feldolgozására és a cég által használt tesztszoftverekkel integrált mutációs tesztelésére, emellett rendelkezik a fejlesztői és tesztelői igényekhez szabható funkcionalitással és optimalizációs lehetőségekkel.

Az elkészített szoftver az elérhető nyílt forráskódú szoftverekkel összemérhető funkcionalitású: hasonló mennyiségű és típusú mutációra képes. Működését előbb kisebb, nyilvánosan elérhető forráskódokon és a hozzájuk generált teszteken, majd egy korábbi ipari projekt tesztkészletén értékeltem ki. Összehasonlítottam a generált, illetve a külső és belső dolgozók által írt tesztek minőségét, illetve megvizsgáltam, hogy elkülöníthetők-e hatékonyabb operátorok vagy jellegzetes hibák a kapott eredmények alapján.

A későbbiekben az eredmények a tesztelési és fejlesztési folyamatok javítására használhatóak, a mutációs tesztelés integrációja ezekben a folyamatokban előreláthatólag emeli majd a megírt tesztek minőségét és mennyiségét is.

szerző

  • Serban Andrada Alexia
    Villamosmérnöki szak, alapképzés
    alapképzés (BA/BSc)

konzulensek

  • Dr. Micskei Zoltán
    egyetemi docens, Méréstechnika és Információs Rendszerek Tanszék
  • Rozgonyi Péter
    Test Coordinator, Knorr-Bremse Vasúti Jármű Rendszerek Hungária Kft. (külső)

helyezés

III. helyezett