20.11.2008, 14:06 Uhr
Testvorkoster - ein harter Job
Testen von Software ist zu teuer. Schuld daran sind jedoch nicht die Tester, sondern dramatische Defizite entlang der Software-Entwicklungskette. Wie lassen sich die Kosten nachhaltig reduzieren?
Seit Beginn der Software-Entwicklung ist über geeignete Testmethoden hinlänglich diskutiert worden. Testen sollte demnach über die Jahre einen hohen Reifegrad erreicht haben und seine Aufgabe effizient erfüllen können.
Eine interne Studie von Capgemini sd und m, welche in 18 Audits Testfactories im Hinblick auf ihre Offshore-Fähigkeit auf den Zahn fühlte, bestätig diesen Eindruck. Das Ergebnis: Die Testorganisationen verstehen im Wesentlichen ihr Handwerk und weisen in den Kerndisziplinen des Testens keine grossen Defizite mehr auf. Die Teammitglieder sind in der Regel zertifiziert und beherrschen die verwendeten Tools und Prozesse. Die Testfallabdeckung erfolgt methodisch, und in eine wartbare Automatisierung von Regressionstests wird viel investiert, schon um die Anschaffungskosten der Werkzeuge zu amortisieren.
Eine interne Studie von Capgemini sd und m, welche in 18 Audits Testfactories im Hinblick auf ihre Offshore-Fähigkeit auf den Zahn fühlte, bestätig diesen Eindruck. Das Ergebnis: Die Testorganisationen verstehen im Wesentlichen ihr Handwerk und weisen in den Kerndisziplinen des Testens keine grossen Defizite mehr auf. Die Teammitglieder sind in der Regel zertifiziert und beherrschen die verwendeten Tools und Prozesse. Die Testfallabdeckung erfolgt methodisch, und in eine wartbare Automatisierung von Regressionstests wird viel investiert, schon um die Anschaffungskosten der Werkzeuge zu amortisieren.
Die Kostentreiber
Diesem positiven Eindruck steht jedoch die praktische Lebenserfahrung des Testmanagers entgegen, der ein Lied davon zu singen weiss, was es heisst, einen Integrations-, System- oder Abnahmetest unter Einhaltung des vorgegebenen Zeitrahmens zu einem verwertbaren Ergebnis zu führen. Von den Kosten ganz zu schweigen. Die oben zitierte Studie förderte denn auch nicht nur Positives zutage. Besteht eine starke Abhängigkeit von der Qualität externer Zulieferer und Dienstleister, ist der Reifegrad der Tests auffällig niedrig und das Resultat unbefriedigend.
Problem 1: Die Ergebnisqualität und der Betrieb der Testumgebungen hängen wesentlich von der reibungslosen Zusammenarbeit mit dem IT-Service-Management ab. Oft werden Ressourcen mehrfach genutzt, aus Kostengründen ausgedünnt oder stehen nicht immer zur Verfügung. Es ist ausserdem die Regel, dass ein grosses Testprojekt zum ersten Mal überhaupt Service Level Agreements (SLA) definiert.
Problem 2: Testplanung und Testvorbereitung sind stark von der Gesamtplanung und dem Software-Lieferanten abhängig. Wenn das Projektmanagement permanent die Prioritäten verschiebt und die Taktung der Testzyklen durch Anforderungsänderungen signifikant steigt, bekommen die Tester ein Qualitätsproblem. Generell gilt: Je instabiler die Rahmenbedingungen, desto teurer der Test.
Problem 3: Alle relevanten Vorgehensmodelle proklamieren eine frühe Beteiligung der Tester am Projektprozess. Das bekannte
W-Modell von Spillner fordert zudem eine aktive, nicht nur eine passive Zuhörerrolle. Die Management-Unterstützung erweist sich jedoch oft genug als Lippenbekenntnis. Somit haben die Tester in der Praxis nur wenig Möglichkeiten, effektiv Einfluss auszuüben.
Problem 4: Schwankende und unzureichend konkretisierte Anforderungen sowie fehlende Priorisierungen sind aus Sicht der Tester extreme Kostentreiber. Sie gefährden die Testeffektivität am meisten. Hat es das Projektmanagement versäumt, Prioritäten zu setzen, dann bleibt den Testern nichts anderes übrig, als alles zu testen.
So rutschen die Tester auch in Testfactories doch wieder in die klassische Situation des Letzten, den die Hunde beissen und der die Versäumnisse seiner Zulieferer ausbügeln muss. Am Ende schlagen dann die hohen Gesamtkosten des Tests zu Buche.
Dabei erweist es sich oft genug als schwierig, die Zusatzkosten, die dem Test fremdverschuldet entstehen, exakt zu beziffern. Zwar bieten die meisten Testfactories ein klares Serviceangebot mit definierten Preisen. Im Alltag eines kritischen Grossprojektes stösst jedoch eine scharfe Abgrenzung der Dienstleistung «Test» mit entsprechender Kostentransparenz auf Unwillen und scheidet als Alternative aus.
So rutschen die Tester auch in Testfactories doch wieder in die klassische Situation des Letzten, den die Hunde beissen und der die Versäumnisse seiner Zulieferer ausbügeln muss. Am Ende schlagen dann die hohen Gesamtkosten des Tests zu Buche.
Dabei erweist es sich oft genug als schwierig, die Zusatzkosten, die dem Test fremdverschuldet entstehen, exakt zu beziffern. Zwar bieten die meisten Testfactories ein klares Serviceangebot mit definierten Preisen. Im Alltag eines kritischen Grossprojektes stösst jedoch eine scharfe Abgrenzung der Dienstleistung «Test» mit entsprechender Kostentransparenz auf Unwillen und scheidet als Alternative aus.
Etablierte Modelle scheitern
Leider haben an dieser Stelle etablierte Reifegradmodelle wie CMMI (Capability Maturity Model Integration) oder SPICE (Software Process Improvement and Capability Determination) auch keine praktische Lösung parat, da sie die Unternehmensorganisation und seine Prozesse auf hohem Abstraktionsniveau als Ganzes betrachten. Auf der anderen Seite betrachten testspezifische Modelle wie TPI (Test Process Improvement) oder TMM (Testing Maturity Model) fast ausschliesslich die Kernbereiche des Testens und sagen fast nichts über die Beziehungen zu anderen Prozessgebieten und Aufgabenbereichen aus .
Wege aus der Kostenfalle
Die Erfahrung, die Capgemini sd und m in den letzten Jahren beim Testen innerhalb von Grossprojekten sammeln konnte, zeigt aber, dass eine proaktive und transparente Einmischung des Testmanagements in die Belange anderer Prozessgebiete, die als Zulieferer des Tests fungieren, den Testaufwand wesentlich reduzieren kann. Der Test muss aus seinem Ghetto ausbrechen. Dazu bedarf es allerdings einiger grundsätzlicher Vereinbarungen.
Vereinbarung 1: Der Testmanager muss bereit sein, die Optimierung testfremder Prozesse hinter der Schnittstelle des Zulieferers zu unterstützen.
Vereinbarung 2: Der Zulieferer muss seinerseits dem Testmanager die Kompetenz zur Einmischung in die eigenen Prozessbereiche zubilligen und sich darum bemühen, durch Einhaltung bestimmter Qualitätsvorgaben die spätere Arbeit des Testers zu unterstützen.
Vereinbarung 3: Der Projektmanager muss den Stellenwert des Testens anheben, indem er dafür sorgt, dass die Zulieferer die Testanforderungen tatsächlich ernst nehmen. Er muss ausserdem den Testmanager mit der nötigen Weisungskompetenz zur Einmischung ausstatten.
Vereinbarung 4: Der Zulieferer übernimmt die Kosten für die vom Test erbrachten Beratungsleistungen auf Grundlage einer gemeinsamen Schätzung, abgestimmt mit dem Management.
Drei Lösungsstrategien
Hebt man den Test derart aus seiner reaktiven Position in eine aktiv treibende Rolle, stellen sich schnell nachhaltige Steigerungen des Reifegrades der Gesamtorganisation und des Projektprozesses ein. Wie das in der Praxis aussehen kann, zeigt ein Beispiel aus dem Bereich Anforderungsmanagement/fachliches Design.
Szenario 1: Die Spezifikation ist so komplex, dass eine Abnahme aus Angst vor Fehlern und voreiliger Festlegung verschleppt wird.
Lösung: Hier muss der Testmanager den Klärungs- und Abnahmeprozess mit antreiben, um eine tragfähige Grundlage für die Testvorbereitung zu erhalten.
Lösung: Hier muss der Testmanager den Klärungs- und Abnahmeprozess mit antreiben, um eine tragfähige Grundlage für die Testvorbereitung zu erhalten.
Szenario 2: Im Verlauf der Realisierung werden häufig «on the fly» offene Punkte geklärt und Fehler sowie Widersprüchlichkeiten in der Spezifikation behoben. Das Realisierungsteam legt seine Priorität aber einseitig auf den Fertigstellungstermin und achtet weniger auf die Konsistenz von System und Spezifikation. Lösung: Das Testmanagement fordert von Anforderungsmanagement und Facharchitekten, die Spezifikation regelmässig zu aktualisieren. Dadurch erhöht sich die Wartbarkeit signifikant.
Szenario 3: Im Rahmen des Systemtests ist meist ein risikobasiertes Vorgehen angezeigt. Der Schwerpunkt liegt bewusst auf ausgewählten Geschäftsvorfällen. Mögliche höhere Fehlerraten in anderen Bereichen werden billigend in Kauf genommen.
Lösung: Mit allen beteiligten Interessengruppen sollte frühzeitig abgestimmt werden, welche Anliegen und Abläufe Priorität haben. Der Testmanager treibt die Priorisierung, Schärfung und Validierung der geschäftlichen Ziele frühzeitig voran.
Lösung: Mit allen beteiligten Interessengruppen sollte frühzeitig abgestimmt werden, welche Anliegen und Abläufe Priorität haben. Der Testmanager treibt die Priorisierung, Schärfung und Validierung der geschäftlichen Ziele frühzeitig voran.
Voraussetzung für den Erfolg der Tester als Qualitätstreiber ist die aktive und sehr enge Zusammenarbeit aller Beteiligter im oben beschriebenen Rahmen. Letztlich wird der Test damit nicht nur seine eigenen Kosten weiter reduzieren, sondern auch, über seine eigentlichen Verifikationsziele hinaus, zum nachhaltig wirksamen Qualitätstreiber.
Zum Autor: Andreas Kellerstrasser ist Managing Consultant bei Capgemini sd und m