Fehlersuche im Programmcode
Entwickler verwenden 40% ihrer Zeit für das Suchen und Beheben von Fehlern.
Reproduzierbare Fehler lassen sich meines Erachtens immer zu ihrer Ursache zurückverfolgen. Man braucht nur den Ort, wo der Fehler passiert, schrittweise einzugrenzen: Wenn er nicht in der 1. Hälfte des Programmcodes liegt, dann muss er in der 2. sein usw. So finde ich auch für völlig rätselhafte Fehler schnell die Ursache.
Nicht reproduzierbare Fehler sind vergleichsweise schwer zu untersuchen. Programmierer behaupten hier oft, dass sie "nichts tun" können. Ich antworte dann, dass sie zumindest für die Zukunft Folgendes tun könnten:
- Einbau von Logfiles, um nachträglich ermitteln zu können, wo und wie der Fehler passiert ist
- gute Fehlerbehandlung, sodass sich Fehler nicht unbemerkt an ganz andere Stelle fortpflanzen können
Programmcodeanalyse
Ich kann sehr gut einen Programmcode Zeile für Zeile durchgehen und kritisch hinterfragen, ob er wirklich in allen Situationen korrekte Resultate liefert:
- Werden Annahmen getroffen, die nicht unbedingt immer zutreffen?
- Werden alle denkbaren Fälle berücksichtigt?
Das kann ich wahrscheinlich deswegen so gut, weil das so ähnlich ist, wie einen mathematischen Beweis durchzudenken, was ich während meines Mathematik-
So habe ich schon viele Fehler gefunden, bevor sie erstmals aufgetreten sind.
Vorteile
- Man findet mehr und andere Fehler als beim konventionellen Testen.
- oft auch schneller
Nachteile
- meiner Erfahrung nach unbeliebt bei den Entwicklern
- kann die zwischenmenschlichen Beziehungen stören und Konflikte im Team auslösen