[caption id=”” align=”alignright” width=”240”] Bild von http://www.flickr.com/photos/dullhunk/[/caption]

 

Kann es war sein,

Völlige Fehlerfreiheit für Software, die eine gewisse Komplexitätsgrenze überschreitet, ist weder erreichbar noch nachweisbar. (Quelle Wikipedia)

Dazu kommt, dass bei Änderungen an bestehender SW ebenfalls neue Fehler eingeführt werden können. Diese Wahrscheinlichkeit einen neuen Fehler in die SW einzuführen, steigt dabei mit der Komplexität und der Anzahl der beteiligten Entwickler.

Als letzte vernichtende Aussage kommt aus dem Buch “Mythical Man Month

But our ideas are faulty and we have bugs.

Als Optimist, dazu zähle ich alle Entwickler, ist man davon überzeugt einmal einen Stand zu erreichen bei dem keine Fehler mehr auftreten.

Als große Waffe gegen Fehler, wurde in letzter Zeit, die Automatisierung der Frontendtest wieder groß geschrieben. Es gibt dazu wirklich beeindruckende Möglichkeiten, siehe Selenium, damit konnte ich im beruflichen Umfeld meine ersten Erfahrungen sammeln. Als größtes Problem sehe ich hier die Wiederholbarkeit einer Aktion. So müssen nach jeder Ausführung einer Aktionsfolge, die Daten wieder zurück auf den Ausgangswert gesetzt werden. Auch komplexe Datenquellen müssen vollständig nachgebaut und für das Testsystem zu Verfügung gestellt werden.

Bei Medienbrüchen sieht die Lage ebenfalls nicht besser aus. Bei Funktionen wie Drucken und versenden von Daten an Schnittstellen hört die Überprüfbarkeit beim abschicken des Befehls auf.

Trotzdem sollte man die Lage nicht überbewerten. Es hat sich viel getan in den letzten Jahren. Anwendungen sind generell Robuster geworden. Die große Verbreitung von Unittests in allen Programmiersprachen hat viel dazu beigetragen.

Die Benutzer sollten dazu ermutigt werden, einen Fehler wirklich an den Hersteller zu melden. Die Hersteller sind meist bemüht auf diese Rückmeldungen zu reagieren und die Wahrscheinlichkeit einer Behebung steigt beträchtlich.

Ich möchte hiermit die Benutzer ermutigen Fehlermeldungen oder Anregungen weiter zu leiten und Herstellern auch angemessen darauf zu reagieren.