Arten von Softwarefehlern - Was kann schiefgehen?

Arten von Softwarefehlern - Was kann schiefgehen?

Natürlich passieren in der Softwareentwicklung Fehler. Wir Programmierer sind auch nur Menschen. Der PC hilft solche Fehler zu minimieren. Trotz Rechtschreibkorrektur könnte es aber auch z.B. sein, dass du in diesem Text einen Fehler findest.

Was für Arten von Fehler gibt es welche Auswirkung hat er?

Syntaxfehler

Er passiert sicher am häufigsten. Er schleicht sich gerne mal in den Code ein und entsteht meist dort, wo was geändert wird. Dann passt die Klammersetzung nicht oder es rutscht ein Buchstabe rein.

Statt x=2*y; kommt ein x2*y; weil das = vergessen wurde.

Diese Fehler merkt die Programmierumgebung (IDE) normalerweise und hilft und steht mit Rat und Tat zur Seite. Das Programm lässt sich so nicht übersetzten oder ausführen. Gut bei Sprachen die Compiliert werden (C, JAVA, .NET,...), schlecht bei Interpretersprachen (JS, PHP, ...). Dort fällt er erst zur Laufzeit auf.

Semantische Fehler

Hier wird es schon kniffliger. Der Code stimmt zwar aber eigentlich kommt nicht das raus, was man will.

x=2*y+4; im Vergleich zu x=2*(y+4); Mathematisch etwas komplett was anderes. Die IDE weiß nicht was du eigentlich willst. Der Fehler tritt erst beim Testen auf.

Logische Fehler

Hier wird es noch problematischer. Hier hat der Programmierer sich was falsches gedacht und der Computer was anderes gemacht.

x=y/z*a; Ist ja eigentlich kein Problem für den Computer. Aber wenn alles Ganzzahlen sind, rechnert der Computer etwas anderes als gedacht. y=1; z=5; a=6; würde rechnerisch 1,2 rauskommen. Der Computer rechnet aber y/z=1/5 aber nur als Ganzzahl und nicht mit Nachkommastellen. Dann kommt nämlich 0 raus und 0*6=0; Also hier unterscheidet sich das gewollte vom gemachten.

Diese Fehler sind sehr schwer zu finden und bedürfen schon einiges an Zeit vom Programmierer.

Designfehler

Der schwerwiegendste und Weitreichendste Fehler ist der Designfehler. Er kann in einige Fällen gar nicht mehr korrigiert werden und bringt viele Probleme mit sich.

  • Falsche Programmiersprache für ein bestimmtes Problem
  • Falsche Libraries mit denen man arbeitet.
  • Die Anforderung für das Programm haben sich komplett geändert. Vorher sollte es nur auf einem PC laufen, nun auch vielen gleichzeitig.
  • Das Problem wurde falsch verstanden.
  • spätere Skalierung der Software

Es ist wichtig den Einsatzzweck einer Software genau zu kennen und auf das bestehende Problem konzentrierend zu arbeiten. Die Designzeit ist die Wichtigste Zeit für ein Projekt.

Dafür lasse ich mir gerne noch ein paar Tage mehr Zeit um die Anforderungen und das Problem genau zu bedenken und die Optimale Lösung zu finden. Oft merke ich schon im Bauchgefühl das eine Lösung noch mal überarbeitet gehört.

Posted on

Ing. Roland Schuller

Harland 44, 3372 Blindenmarkt
@: roland@it-open.at
T: +43 676 63 54 793
W: it-open.at