Ett logiskt fel är ett problem med en dators programmeringskod som inte lätt kan identifieras när koden skrivs eller kompileras. Ibland kallas ett semantiskt fel, ett logiskt fel är vanligtvis programmerarens fel; även om kodningen är korrekt kan det resulterande svaret fortfarande vara felaktigt. Om kompilatorn för programmeringsspråket levereras med ett logiskt fel kommer den att tolka den medföljande koden, vilket resulterar i ett fungerande program som kan returnera felaktig data.
Logiska fel är svåra att fånga av programmeraren eftersom programmeringsspråkstolken inte identifierar detta fel som ett problem. Efter att koden har kö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 granska resultatet och driften av det programmet.
För att hitta ett logiskt fel i koden måste man metodiskt kunna spåra källan till felet. Felet kan vara resultatet av en felaktigt kodad syntax. Kodens syntax kan tyckas vara korrekt men kan resultera i ett logiskt fel. Dessa typer av fel kan bli mycket kostsamma problem om de inte rättas till i tid.
Logiska fel kan också bero på felaktig data som användes av ett korrekt skrivet program utan några egna interna logiska fel. Detta motsvarar det vanliga uttrycket ”skräp in, skräp ut.” Om data är felaktigt inmatade i programmet, även om programmet körs korrekt, blir resultatet ett fel jämfört med vad som förväntades.
Som ett exempel på en annan typ av logiskt fel kan en förare välja att svänga höger eller vänster vid en stoppskylt. 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 blev inte som förväntat. Som illustreras i detta exempel är fel i logik inte begränsade till datorprogrammeringsområdet. Ett logiskt fel kan också kategoriseras som en felaktighet när det gäller kommunikation.
I ett annat exempel där logiska fel finns, kan ordbehandlare ibland använda en automatisk stavningskontroll; dessa stavningskontroller är ökända för att sakna logiska fel. Till exempel kan substantivet ”försäljning” vara felaktigt representerat av substantivet ”segla” i en mening. Varje ord är rättstavat, låter korrekt och kan vara grammatiskt korrekt i meningen, men definitionen för ett ord kanske inte passar den specifika meningens sammanhang.