 |
(17.03.05 11:30)
Der Versuch, Software ohne systematische Tests zu schreiben, ist zum Scheitern verurteilt. Eine gute Sammlung von automatisierten Testfällen, mit der die Funktionstüchtigkeit eines Systems überprüft werden kann, ist zwingende Voraussetzung für die geordnete Entwicklung und vorallem auch Weiterentwicklung eines Softwaresystems.
Mit guten Testfällen im Rücken kann man nötige Erweiterungen und Anpassungen in der Regel gefahrlos vornehmen, ohne dabei stets fürchten zu müssen, dass gemachte Änderungen bestehende Funktionalität ungewollt beeinflussen. So helfen systematische Tests nicht nur die Qualität unserer Entwürfe und Lösungen bezüglich Einfachheit und Verständlichkeit zu verbessern, sie stärken auch das Vertrauen in unser System und in unsere Arbeit mit und an dieses System. Doch manchmal kann uns dieses Vertrauen auch zum Verhängnis werden. Nämlich dann, wenn wir uns in falscher Sicherheit wiegen und glauben, dass unsere Tests uns stets auf alle möglichen Seiteneffekte hinweisen, die sich aus Konzept- und Codeänderungen ergeben können.
Natürlich ist es unvernünftig zu glauben, dass unsere Tests alle Fehler aufdecken können. Denn bereits bei einem durchschnittlich anspruchsvollen Problem ist es unmöglich, eine 100-prozentige Testabdeckung zu erreichen. Je mehr wir testen und je bessere unsere Tests und die mit ihnen gemachten Erfahrungen sind, desto grösser ist die Gefahr, dass wir diese einfache Tatsache vergessen; es packt uns eine Art von Übermut, die früher oder später dazu führt, dass sich ein Fehler unbemerkt einschleicht und zu Problemen führt, die keiner unserer bisherigen Tests aufdeckt.
Wir sollten daher stets wachsam bleiben und nicht selbstzufrieden davon ausgehen, dass wir durch unserer Tests ausreichend vor den Widrigkeiten durch Codeänderungen geschützt sind. Wir sollten uns und unserer Arbeit mit angemessener Skepsis begegnen und uns stets vor Augen halten, dass der Irrtum des Menschen ständiger Begleiter ist. Zudem gibt es eine einfache Möglichkeit heraus zu finden, ob und von welchen Tests eine bestimmte Codestelle, die wir ändern wollen, erfasst wird: wir ändern den betreffenden Code und führen bewusst einen Fehler ein. Dann lassen wir unsere Testfälle laufen, um zu sehen, ob mindestens ein Test anschlägt und so auf den Fehler hinweist. Ist dies nicht der Fall, dann müssen wir zuerst einen Testfall schreiben, der den Fehler aufdeckt. Erst danach dürfen wir die eigentliche Codeänderung vornehmen.
Indem wir uns als Codesaboteure betätigen, können wir die Testabdeckung fortwährend verbessern und dafür sorgen, dass die Chancen steigen, Seiteneffekten durch Codeänderungen rasch und zuverlässig auf die Spur zu kommen.
-nemo :-)
Über diesen Artikel diskutieren.
|
 |