Vil avsløre kostbare feil i tide

Komplekse datasystemer omgir oss på alle kanter. Feil i software kan gi enorme sosiale og økonomiske effekter. Kan det lønne seg med automatisert kontroll?

Denne artikkelen er over ti år gammel og kan inneholde utdatert informasjon.

Da Ariane 5 eksploderte skyldes det svikt i programvare.
Da Ariane 5 eksploderte skyldes det svikt i programvare.

– Forskning på amerikanske forhold viser at feil i programvare koster det amerikanske samfunnet nesten 60 milliarder dollar årlig.

– Det er åpenbart at å investere i pålitelighet og kvalitet i programvare vil lønne seg, sier forsker Leon Moonen ved Simula Research Laboratory.

Blant de dyrere programvare-feilene er den som forårsaket at Ariane 5-raketten eksploderte.

10 års konstruksjonsarbeid og 7 milliarder dollar gikk fløyten mindre enn ett minutt etter oppskytingen, alt pga et program som forsøkte å få plass til et 64-bits tall, som indikerte hastighet, i et 16-bits register.

16-bits-registeret passet utmerket for ESAs forrige rakett, som var langsommere og hadde hastighetsverdier som fikk plass på 16 bits.

Fatale feil skyldes ofte at modellene som ligger til grunn for programvaren ikke stemmer med den virkelige verden – i dette tilfellet ekstremverdier for hastighet.

Andre ganger har det gått galt fordi ulike team utarbeider hver sin del av programvaren, og det ikke er sikret at alle bruker samme modell. Som da NASA mistet et romfartøy som skulle gå i bane rundt Mars.

Romfartøyet kommuniserte posisjon og hastighet i metriske enheter til NASA. Fra jorden svarte NASA i ikke-metriske enheter. Etter ni måneder mistet de kontakten, og siden har ingen hørt noe fra fartøyet.

Kan ramme alle

Også Microsoft har måttet sende ut nødoppdateringer etter at svakheter i Internet Explorer har gjort det mulig for hackere å legge igjen skadelig programkode på et nettsted - kode som senere infiserer alle som besøker nettstedet, for eksempel ved å stjele passord.

En løsning for å bedre softwarens kvalitet og pålitelighet er automatisert programvareinspeksjon.

Dette er avanserte teknikker for automatisk gjennomgang av kildekoden til programmet for å sjekke at den er i tråd med gode standarder for koding, og som gir advarsler dersom det finnes mistenkelig programkode i kildekoden til programmet.

For mange advarsler

Et slikt automatisert verktøy gjør det mulig å vurdere kvaliteten gjentatte ganger under utviklingen av programvaren. Slik kan feil rettes tidlig, noe som selvfølgelig er kostnadsbesparende i forhold til å rette dem sent.

Kvaliteten og påliteligheten ved sluttproduktet øker, mens de totale utviklingskostnadene blir lavere.

– Verktøy for automatisert programvareinspeksjon finnes i dag, forklarer Moonen.

– Problemet er at disse gir alt for mange advarsler, de gir programmererne en informasjonsmengde som er for stor. Alle advarslene er tillagt samme vekt, enten effekten av å rette feilen er uvesentlig for sluttproduktets funksjon eller helt avgjørende.

Starter med gamle feil

Leon Moonen ved Simula Research Laboratory AS.
Leon Moonen ved Simula Research Laboratory AS.

I første omgang vil prosjektet samle inn empiri for å undersøke om automatisert programvarekontroll lønner seg, noe Moonen tror er tilfelle.

Han vil bruke eksisterende verktøy for automatisert programvareinspeksjon på produkter som ble sendt ut på markedet med feil som ikke var oppdaget. Slik vil han vise at disse feilene kunne vært eliminert, det vil si at de befinner seg i mengden av advarsler som genereres.

Denne delen av prosjektet gir dessuten informasjon som er grunnlaget for trinn to: Å heve standarden på eksisterende teknikker for automatisert softwareinspeksjon.

– Kost/nytte-aspektet må implementeres i automatikken. De advarslene som det gir størst nytteverdi å følge opp, må gis høyere prioritet, sier Moonen.

Slik skal programmererne slippe å drukne i feilmeldinger.

Lenker:

Forskningsrådets program: Fri prosjektstøtte (FRIPRO) 

Simula Research Laboratory

Powered by Labrador CMS