Bug (computer)

En softwarefejl er et problem med koden i et computerprogram, som gør, at det ikke fungerer korrekt. De kan være til ulejlighed for brugeren og kan få computeren til at gå ned eller fryse. De fleste computerprogrammer har fejl. Et program, der har et stort antal fejl (eller eventuelt en enkelt eller nogle få alvorlige fejl), kaldes for buggy.

De fleste fejl skyldes dårlig programmering fra udviklerens side, men nogle gange kan de også skyldes problemer med compileren. Når der findes fejl, sender folk fejlrapporter til udvikleren for at fortælle ham om fejlen og lade ham rette den.

Nogle gange siger folk, at deres computer har en fejl, når der er noget galt med den. Problemet skyldes som regel en computervirus, som har inficeret computeren og gør den langsom eller får den til at gøre andre ting.

Nogle fejl er harmløse, f.eks. tillader mange videospil fejlagtigt, at objekter kan bevæge sig gennem vægge. Andre fejl er mere alvorlige, f.eks. en fejl i et navigationssystem, som får et fly til at eksplodere.



Typer af fejl

Bufferoverløb

Et bufferoverløb sker, når et program skriver til eller læser fra et hukommelsesområde, som det ikke må få adgang til.

Aritmetisk overløb

Et aritmetisk overløb sker, når et tal i en variabel øges ud over det højeste tal, som variablen tillader. Dette vil normalt medføre, at tallet nulstilles tilbage til nul.

Uendelig løkke

En uendelig løkke opstår, når et program går ind i en løkke (en række instruktioner, der gentages mange gange), og der ikke er nogen vej ud af løkken. Dette kan få programmet til at fryse.

Afrundingsfejl

Hvis en variabel med flydende komma ikke har tilstrækkelig præcision, kan det tal, der er gemt i den, være upræcist. Dette kan medføre forskellige problemer afhængigt af programtypen, f.eks. kan det medføre, at et navigationsprogram navigerer til et utilsigtet sted, eller at lyden forvrænges i et lydoptagelsesprogram.

Division med nul

Division med nul er en ugyldig matematisk operation. Hvis et program dividerer et heltal med nul, vil det gå ned. På Linux er den meddelelse, der vises, når denne fejl opstår, "floating point exception", selv om der ikke var tale om floating point-tal. Fregnepunktsmatematik tillader undertiden division med nul. Dette vil normalt resultere i en særlig "ikke et tal"-værdi.

Problemer med klipning

I videospil opstår der problemer med klipning, også kaldet kollisionsdetektionsproblemer, når et objekt passerer gennem en barriere (f.eks. en væg, et gulv eller et loft), som det ikke var meningen, at det skulle passere. Dette er en meget almindelig fejl, der findes i mange videospil. Det kan f.eks. ske i Doom 2, når et knust monster genopstår af en ærkevile. Clipping-problemer kan ofte bruges som en tidsbesparende taktik i speedruns, f.eks. er det i Super Mario 64 muligt at springe over at gå op ad spiraltrappen i slottet ved at hoppe gennem loftet.

Sikkerhedsfejl

Sikkerhedsfejl er fejl, der gør det muligt for en ubuden gæst enten at få adgang til computeren eller at få computeren til at gå ned. At få computeren til at gå ned kaldes et denial-of-service-angreb. Sikkerhedsfejl anses for at være særligt vigtige at rette, fordi de kan give ubudne gæster mulighed for at stjæle vigtige oplysninger som f.eks. kreditkortnumre eller adgangskoder. Eksempler på sikkerhedsfejl omfatter Heartbleed og Shellshock.



Misbugs

En fejlfejl er en fejl, der er blevet brugt som en funktion. Et eksempel er en fejl i en Android-telefon, som gør det muligt for brugere at få root-adgang.



Hardwarefejl

Nogle fejl påvirker hardware (de fysiske dele af en computer) i stedet for software. Hvis man f.eks. kørte instruktionen lock cmpxchg8b eax på gamle Pentium-processorer, ville processoren holde op med at fungere, indtil den blev genstartet. Da hardwarefejl er fysiske konstruktionsfejl, kan de ikke rettes med en softwareopdatering, selv om det kan være muligt at omgå (skjule) fejlen med en softwareopdatering.



Spørgsmål og svar

Q: Hvad er en softwarefejl?


A: En softwarefejl er et problem med koden i et computerprogram, der får det til ikke at fungere korrekt.

Q: Hvad er konsekvenserne af en softwarefejl?


A: En softwarefejl kan være til gene for brugeren og kan få computeren til at gå ned eller fryse.

Q: Har alle computerprogrammer fejl?


A: Ja, de fleste computerprogrammer har fejl.

Q: Hvad er et buggy program?


A: Et fejlbehæftet program er et program, der har et stort antal fejl, eller måske en enkelt eller nogle få alvorlige fejl.

Q: Hvem er ansvarlig for de fleste fejl i computerprogrammer?


A: De fleste fejl skyldes dårlig programmering fra udviklerens side, men nogle gange kan de skyldes problemer med compileren.

Q: Hvad gør folk, når de finder en fejl i et computerprogram?


A: Når man finder fejl, sender man fejlrapporter til udvikleren for at fortælle dem om fejlen og lade dem rette den.

Q: Hvad mener folk, når de siger, at deres computer har en fejl?


A: Når folk siger, at deres computer har en fejl, mener de normalt, at der er noget galt med den, hvilket som regel skyldes en computervirus, der har inficeret deres computer og gør den langsom eller får den til at gøre andre ting.

AlegsaOnline.com - 2020 / 2023 - License CC3