Warum frühzeitige Tests in der Softwareentwicklung so wichtig sind

Das Testen neuer Entwicklungsstände gehört zu den Routinearbeiten in der Softwareentwicklung. Dessen Bedeutung sollte aber auf keinen Fall und zu keinem Zeitpunkt unterschätzt werden. Nach der
1:10:100-Regel vervielfachen sich die Kosten einer Fehlerbehebung mit dem Zeitpunkt der Entdeckung um den Faktor 10 (Erklärungen der 1:10:100 Regel in englisch:
1,
2,
3).
1: Bei Entdeckung durch den Programmierer selbst
Wird ein Fehler noch während eines Tests durch den Programmierer selbst entdeckt, so kann er meist schnell behoben werden. Der zusätzliche Aufwand beschränkt sich auf die Fehlerbehebung selbst.
10: Bei Entdeckung durch einen Tester
Wird der Fehler erst durch einen Tester entdeckt, wenn der neue Entwicklungsstand bereits auf einem Testsystem läuft, steigt bereits der Aufwand. Der Tester wird den Fehler dokumentieren, einen entsprechenden Vorgang in der Aufgabenverwaltung/im Bugtracker anlegen bzw. wiedereröffnen, den Entwickler darauf aufmerksam machen, dieser wird den Fehler beheben, der Stand auf dem Testserver wird noch einmal aktualisiert, es erfolgt ein weiterer Test auf dem Testserver, bevor der neue Stand live eingespielt werden kann. Womöglich kann hierdurch auch noch eine Verschiebung des GoLive-Termins entstehen, was nicht nur den Produktmanager besonders ärgern dürfte.
100: Bei Entdeckung im Live-Betrieb
Am unangenehmsten und kostspieligsten ist der Fall, wenn der Fehler erst im Live-Betrieb bekannt wird, womöglich noch durch den Hinweis von einem oder mehreren Nutzern. Neben den Kosten durch die aufwändige Fehlerbehebung, wie sie auch bei der Entdeckung auf dem Testsystem anfallen, muss jetzt zusätzlich extra für diesen Fehler der Stand auf dem Live-System aktualisiert werden. Zusätzlich gefährdet solch ein Fehler das Image der Software, sorgt für Verärgerung bei den Nutzern und kann auch Umsätze verhindern, wenn umsatzrelevante Funktionen nicht mehr genutzt werden konnten.
Unter anderem sind daher Tests in diesen Stadien der Softwareentwicklung äußerst sinnvoll:
- Abschließende Prüfung der Aufgaben vor Übergabe an die Programmierer
- Tests während der Entwicklung
- Tests nach Abschluss der Entwicklung
- Tests auf dem Testserver
- Tests auf dem Liveserver
Wie steht es bei euch mit dem Testverhalten? Habt ihr entsprechende Vorkehrungen getroffen, um mögliche Fehler frühzeitig aufzudecken?

Foto: von ern
Dir hat dieser Beitrag gefallen? Ich freue mich über einen Kommentar. Du kannst auch meinen RSS-Feed abonnieren oder mir auf Twitter folgen: @pherwarth.
Gefällt mir:
Einem Blogger gefällt das post.
Pingback: Warum das Surfen mit unterschiedlichen Browsern sinnvoll ist « Produktmanagement und Vermarktung von Internet-Anwendungen
Pingback: Erfordert agile Softwareentwicklung keine Disziplin? « Produktmanagement und Vermarktung von Internet-Anwendungen
Pingback: Scrum = Scrum, sagt Ken Schwaber « Produktmanagement und Vermarktung von Internet-Anwendungen
Pingback: //SEIBERT/MEDIA Weblog » Blog Archiv » Agile Software-Entwicklung erfordert viel Disziplin
Pingback: //SEIBERT/MEDIA Weblog » Blog Archiv » Software-Tests: Notwendigkeit und Arten des Testens