Hollantilainen Solid Sands on esitellyt SuperGuard-työkalun, joka on keskeisessä roolissa autojen toiminnallisen turvallisuuden varmistamisessa. Työkalu tarkistaa, että autojen ohjelmistojen C-kirjastot täyttävät vaaditut standardit. Tämä on välttämätöntä, sillä nykyisen ajoneuvon järjestelmät koostuvat miljoonista, eri toimittajilta tulevista koodiriveistä.
SuperGuard on C-kirjastojen kvalifioinnin työkalu. Järjestelmän ohjaimilla ladattavien kirjastojen viallisuus johtaa järjestelmän luotettavuuden pettämiseen. Pahimmillaan kyse on yhtä fataalista viasta kuin mekaanisten jarrujen pettämisestä.
Solid Sandsin teknologiajohtaja Marcel Beesterin mukaan testaaminen on periaatteessa helppoa. C-standardi pilkotaan toiminnallisiin vaatimuksiin, jotka tulevat standardista (autoissa ISO 26262, teollisuudessa IEC 61508 ja raideliikenteessä EN 50128). Työkalulla kirjastot testataan, jotta standardin asettamat vaatimukset täyttyvät.
- Kaikkia mahdollisia ohjelmiston tuottamaa arvoa ei ole mahdollista testata. SuperGuardia varten kävimme läpi C-standardin rivi riviltä, jotta löytäisimme kaikki testattavat vaatimukset. Sen jälkeen tarkistimme, löytyykö vaatimukselle testiä. Jos ei löytynyt, kehitimme sellaisen, Beester kuvaa.
Vaatimusten testaaminen jälkeen tärkeä kysymys on testein kattavuus. Onko testeissä testattu kaikki vaatimukset? – Meidän piti verifioida yksityiskohtaisesti, mikä testin kattavuus oli tuotantolaatuisissa kirjastototeutuksissa. Mikäli testityökalu ei laukaissut jotain lauseketta, tarkistimme, johtuiko tämä puuttuvasta vaatimuksesta tai jostain toteutuksen yksityiskohdasta. Työkalua laajennetaan kattamaan mahdollisimman paljon kirjastolausekkeista.
SuperGuard testaa C-kirjastojen vaatimustenmukaisuutta. Autoissa käytetään kuitenkin muutakin koodia. Tekoälykirjastojakin yhä enemmän. Muuttuuko testaaminen jollain tapaa?
- Ei toiminnallisten turvallisuusstandardien näkökulmasta. Ohjelmistojen ja ohjelmistokirjastojen turvalliseen kehittämiseen ja pätevöintiin on määritelty omat prosessinsa. Käytännössä ei kuitenkaan välttämättä ole niin helppoa tehdä tämä ML-kirjastojen osalta. Uskon, että nämä kirjastot ovat korkealaatuisia, mutta monet niistä tulevat avoimen lähdekoodin hankkeista tai akateemisista tutkimusprojekteista, eikä niitä ole suunniteltu turvallisuutta ajatellen. Tämä tarkoittaa, että he eivät noudata turvallisen ohjelmoinnin ohjeita eikä vaatimuksiin perustuvia testipaketteja ole, Beester arvioi.
Hänen mukaansa AI-sovelluksista itsestään puhuminen on monimutkaisempaa, koska hermoverkolle, joka on koulutettu esimerkkitietojoukolla, ei ole muuta määritystä kuin datasarja jolla malli on opetettu. – Kehittäjän täytyy rakentaa määrityksiin perustuvia redundanttisia järjestelmiä ja varmistuksia.
Modernin auton kehittäminen on valtava ohjelmistoprojekti. Järjestelmässä on miljoonia koodirivejä monilta eri toimittajilta ja kehittäjiltä, myös avoimen lähdekoodin ohjelmistoja. - Autonvalmistajan on oltava varovainen jakamalla kyseisen ohjelmiston eri turvallisuusluokkiin, jotta esimerkiksi mediajärjestelmien yleensä Android- ja Linux-pohjaisten ohjelmistojen ei välttämättä tarvitse olla turvallisuuskvalifioituja. Osiointi on vaikeaa, mutta välttämätöntä. Mitä enemmän auton hallintaa ADAS-järjestelmät annetaan, sitä kriittisempiä niistä tulee turvallisuuden kannalta.
Kuva: ISO.org