Teil 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | Kapitelauszug aus "Software-Qualität in PHP-Projekten", 2. Auflage. Erschienen im Hanser-Verlag, April 2013.
Ziele der testbasierten Entwicklung

Die Entscheidung für eine testbasierte Entwicklung – also eine hohe Abdeckung der Anwendung durch automatisierte Tests und nachgelagerter, weiterer Testmethoden – wird häufig durch den Leidensdruck verstärkt, den das Team in der aktuellen Anwendung verspürt. Triviale Fehler, die sehr lange Behebungszeiten nach sich ziehen, sind genauso uner- freulich wie hohe Aufwände, die auch für kleine fachliche Erweiterungen und Änderungen notwendig sind.
Eine geringe interne Qualität zieht zum einen hohe Entwicklungskosten nach sich. Je später im Lebenszyklus einer Software ein Fehler entdeckt wird, desto teurer ist die Behebung. Zum anderen sind auch die Betriebs- und Wartungskosten deutlich höher: Die Behebung bekannt gewordener Fehler, die Erweiterung und Änderung der Software dauern signifikant länger, wenn die Softwarequalität nicht stimmt.
Mangelnde Qualität ist ein großer Motivationskiller für alle Projektbeteiligten. Für den Auftraggeber beziehungsweise die Auftraggeberin des Projekts dauert die Umsetzung neuer oder geänderter Anforderungen zu lange. Die erreichbaren fachlichen Verbesserungen stehen in keinem akzeptablen Verhältnis zu den eingesetzten Ressourcen.
Das Software-Team selbst nervt das langsame Voranschreiten genauso. Ist den Beteiligten doch klar, dass mit einem veränderten Vorgehen effizienter gearbeitet werden könnte. Und den meisten Entwicklern und Entwicklerinnen macht es einfach mehr Spaß, neue Anforderungen umzusetzen, als in altem, unsauberem Code nach Fehlern zu suchen.
Und so führt der Anspruch, qualitätsvolle Software zu implementieren, nicht nur zu einer Reduktion von laufenden Kosten im Regelbetrieb, sondern erhöht auch die Arbeitsmotivation der Entwickler und Entwicklerinnen.
Die Erhöhung des Spaß-Faktors und der Motivation könnte schon als alleiniger Treiber für die Einführung testbasierter Entwicklung durchgehen: Motivierte Mitarbeiter und Mitar- beiterinnen liefern besser und schneller. Damit ist testbasierte Entwicklung eine Grundlage für eine effiziente Teamarbeit. Eines der zwölf Prinzipien, auf denen das agile Manifest basiert, zeigt den Zusammenhang zwischen einem technischen Vorgehensmodell und Motivation auf:
„Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.“
Einem initial höheren Aufwand stehen also geringere Betriebs- und Wartungskosten gegenüber. Darüber hinaus fördert ein testbasiertes Vorgehen die Identifikation des Software- Teams mit der jeweiligen Aufgabe. Hierdurch können sich die Motivation und das verantwortliche Handeln im Team erhöhen. Ein Umstand, der sich auch in betriebswirtschaftlichen Zahlen wiederfinden wird.
Um vernünftig über ein verändertes Vorgehensmodell zu verhandeln, ist zunächst ein Blick auf die Kalkulation testbasierter Entwicklung notwendig. Vor der eigentlichen Kalkulation lohnt sich der Blick auf das Ergebnis testbasierter Entwicklung. Welche Aufwände entstehen während des Lebenszyklus einer Software?
Kommentar schreiben