Lfd 4 C systematisch Fehler erkennen, analysieren und beheben

Ein wesentlicher der Programmierung besteht darin, zu erkennen, zu analysieren und zu beheben. Oft müssen Programme noch während Testphase an den Kunden gesendet werden, z.B. bei Kundenaufträgen.
So erhält der Kunde das Programm dann mit dem Hinweis, das es sich um eine Betaversion handelt, die unerwünschte Verhaltensweisen aufweisen kann. Bevor allerdings ein Programm veröffentlicht wird, muss ein Programm durch das Qualitimanagement, es wird also auf Herz und Nieren geprüft um unerwünschtes verhalten beim Kunden zu verhindern.

Qualitymanagement geht auch dem Programmierer was an. Ich selber war nie ein Freund davon meine eigene Software zu prüfen da ich unterbewußt weiß wie es zu verwenden ist. Andere Mitarbeiter oder Tester kennen das Programm nicht, haben eventuell andere Denkweisen und produzieren mehr Fehlerfälle als der Programmierer der Software.

Fehlersuche sind für den Programmierer notwendige Aufgaben, die erledigt werden müssen, um die Qualität der Software zu gewährleisten.

  • 1. Fehler erkennen
    • a. Testen
      • Mithilfe von Unit-Tests kann festgestellt werden, dass die einzelnen Komponenten der Software des Programmes wie erwartet funktionieren.
      • Mithilfe von Integrationstests ist zu Prüfen, dass verschiedenste Komponenten zusammenarbeiten (beispiel bei erweiterung eines Programmes aufgrund von gesetzlichen Änderungen).
    • b. Debugging:
      • Verwendung von Debuggingtools ist eine große Hilfe. Gerade wenn das Ergebnis nicht den Erwartungen entspricht, mit einem korrekt gesetzten Breakpoint kann man den Code Zeile für Zeile durchlaufen und sehen wann der (oder vorherige) Fehler geschehen.
      • Mittels Debugging können während der Laufzeit die Inhalte von Variablen, Objekte oder auch Zustände geprüft werden.
    • c. Logfiles
      • Durch ausführliches Logging kann der Programmablauf nachverfolgt werden um mögliche Fehlerquellen zu Identifizieren.
      • Analyse der Logfiles auf Fehlermeldungen oder unerwünschtes verhalten.
  • 2. Fehler analysieren
    • a. Fehlermeldung
      • Lesen und Verstehen der Fehlermeldung, welche der Compiler oder das Programm zur Laufzeit ausgibt bzw. im Logfile schreibt.
      • Da ist es wichtig auf die Zeilennummer oder dem Stacktrace(Logffile) zu achten.
    • b. Ursache eingrenzen
      • Hier ist die „Teile und Hersche“ Methode nützlich. Dafür wird der Code in mehreren kleineren Abschnitte aufgeteilt und getestet.
        Dies hilft überblick zu verschaffen.
      • Identifiziere welche Teile des Code Fehler verursachen könnten.
  • 3. Fehler beheben
    • a. Code ändern
      • Basierend auf der Fehler Analyse sollte der Code korrigiert werden.
        Auch hier gilt, wenn z.B. das Programm rechnen soll aber statt einem numerischen Wert auf einmal ein Alphanumerischer Wert angegeben ist. Sollte hier natürlich eine lesbare Fehlermeldung auftreten, wie z.B. „geben Sie eine Zahl zwischen 0 – 9 ein“, Meldungen wie „Stack overflow Exception“ oder „BR-C0-09“ helfen keinen Benutzer.
      • Führe notwendige Anpassungen durch, um sicherzustellen das der Fehler behoben ist.
    • b. Retesten
      • Teste den geänderten Code erneut, um sicherzustellen das der Fehler behoben ist.
      • Mit anschließenden Regressionstest kann sichergestellt werden, das durch der korrigation des Fehlers keine neuen Fehler eingeschliechen haben.
        Gerade bei großen Programmen ist dies oft ein Fall. Da wird Links ein Fehler korrigiert und Rechts tritt ein neuer Fehler auf.
    • c. Refaktorisierung
      • Durch optimierung und refaktorisierung des Codes, könnten zukünftige Fehler vermieden werden.
      • Darauf achten, dass der Code gut strukturiert und leicht verständlich ist.
        Auch wenn dies viele Auszubildende nicht mögen: Am anfang einer Methode / Funktion kommentieren was diese macht, ggf. zurückgibt Was gewollt im Fehlerfall passiert, etc. Alles was hilft ein anderen Mitarbeiter den Code zu verstehen oder auch dir noch hilft in 10 Jahren den Code richtig zu lesen.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen