Vad är ett logiskt fel?
Ett logikfel är ett problem med datorns programmeringskod som inte lätt identifieras när koden skrivs eller sammanställs. Ibland kallas ett semantiskt fel, ett logiskt fel är i allmänhet programmerarens fel; även om kodningen är korrekt kan det resulterande svaret ännu vara felaktigt. Om programmeringsspråkkompileraren levereras med ett logikfel kommer den framgångsrikt att tolka den medföljande koden, vilket resulterar i ett arbetsprogram som kan returnera felaktiga data.
Logikfel är svåra att fånga av programmeraren eftersom programmeringsspråkstolkaren inte identifierar detta fel som ett problem. Efter att koden genomförts framgångsrikt kan resultaten, utan avsiktlig granskning, initialt tyckas vara korrekta. För att identifiera dessa typer av fel bör en person som är kunnig om de förväntade resultaten och programmets funktion se över programmets resultat och drift.
För att hitta ett logiskt fel i kod måste man kunna spåra källan till felet metodiskt. Felet kan vara resultatet av en felaktig kodad syntax. Syntaxen för kod kan tyckas vara korrekt men kan leda till ett logiskt fel. Dessa typer av fel kan bli mycket kostsamma problem om de inte korrigeras i tid.
Logiska fel kan också bero på felaktiga data som användes av ett korrekt skrivet program utan några egna interna logikfel. Detta motsvarar det vanliga uttrycket "skräp in, skräp ut." Om data felaktigt matas in i programmet, även om programmet körs korrekt, är resultatet ett fel jämfört med vad som förväntades.
Som ett exempel på en annan typ av logikfel kan en drivrutin välja att svänga åt höger eller svänga vänster när han är stoppad. Om föraren svänger åt höger när den avsedda destinationen var till vänster, skulle detta betraktas som ett logiskt fel. Tekniskt sett körde föraren fordonet korrekt, men slutresultatet var inte som förväntat. Som illustreras i detta exempel är fel i logiken inte begränsade till datorns programmering. Ett logikfel kan också kategoriseras som ett fel i kommunikation.
I ett annat exempel där logikfel finns kan ordbehandlare ibland använda en automatisk stavningskontroll; dessa stavkontroller är ökända för att det saknas logikfel. Till exempel kan substantivet ”försäljning” vara felaktigt representerat av substantivet ”segla” i en mening. Varje ord är stavat korrekt, låter korrekt och kan vara grammatiskt korrekt i meningen, men definitionen för ett ord kanske inte passar sammanhanget för den specifika meningen.