Bugg (dator)

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

En bugg är en felaktighet i datorprogram.

Innehåll

Ordets ursprung

Den första buggen var en nattfjäril

Ordet har delvis mytiskt ursprung, men anses i allmänhet komma från dess engelska betydelse insekt eller kryp. Enligt en myt härledde man på någon av de tidigare relästyrda datorerna (som BARK) en felaktig funktion i datorn till att en nattfjäril hittades död bland reläerna. Ordet skall emellertid ha använts redan på 1870-talet av Thomas Edison för att beskriva fel i en apparatur.[källa behövs]

Den första dokumenterade buggen hittades 9 september 1945 i en Mark II Aiken Relay Calculator av Lt. Grace Murray Hopper.

Debugging

Det kan argumenteras att helt felfria program är en utopi, särskilt med dagens stora programpaket, trots att utvecklingsmiljön sedan 1970-talet vanligtvis är utrustad med debug-rutiner. Detta gäller dock i huvudsak programvara med mänsklig interaktion.

För programvara i inbäddade system är felfri kod möjligt och naturligtvis önskvärt. Där är det möjligt genom att definiera felfri som att programvaran helt uppfyller ställda krav inom avsedda (tänkta?) gränser. Det vill säga att så länge programvarans omgivning beter sig som förväntat kommer också programvaran att göra det. Notera att detta i sin tur innebär att återanvändning av sådan "felfri" kod inte på något sätt innebär att den är felfri i sin nya användning eftersom gränserna där kan vara annorlunda. (Se [1] på engelska Wikipedia )

I samband med att man utvecklar program är det viktigt att testa koden på flera olika system, så att man sedan vet vilka system programmet fungerar på. När en applikation vidareutvecklas är det också normalt att man testar den på nytt, dels för att kontrollera att nya funktioner fungerar som den skall samt att några gamla funktioner inte försvunnit.

Ett viktigt steg i den senare delen av systemarbetet är omfattande användartester, bland annat genom att släppa en betaversion. Det innebär att man låter villiga användare testa en tidig version av programmet. De kan sedan rapportera in buggar och svårigheter med att använda programmet. Användarna kan till exempel få genomföra olika testfall där olika programfunktioner testas och rapportera hur väl testfallen utfaller. Eventuella fel rapporteras till programmeraren. De fel som hittas kan indelas i olika allvarlighetsgrader efter hur stort felet är, t.ex. om det är ett hindrande fel eller bara ett stavfel. På så sätt kan man till exempel välja att driftsätta en applikation där alla hindrande fel är borta och låta alla skönhetsfel och stavfel rättas i en kommande release.

Felhantering

Ett program kan inte anses färdigutvecklat om det inte gjorts användarsäkert genom att felhanteringen förutser att någon matar in ogiltiga data i programmet. Modern programmeringsteknik med objektorienterad programmering har avsevärt minskat risken att elementära felhanteringsluckor ska bli kvar i det färdiga programmet.

Omfattning

Som tumregel kan man säga att dåligt testad programvara kan ha betydligt mer än 10 fel per 1 000 rader kod, medan programvara som togs fram under stränga kvalitetskontrollmekanismer, med kodgranskningar, enhetstester, integrationstester, automatiska regressionstester och olika funktionella och systemtester mm kan uppnå feldensiteter på någon tiondels fel per 1000 rader kod. Normalbegåvade programmerare som tror sig testat "allt" hamnar i bästa fall på så där 1-10 fel på 1000 kodrader.

Se även

Personliga verktyg