Willkommen bei unserem zweiten Teil der Serie “Holistisches Softwaretesting”. Wir zeigen im ersten Teil dieser Serie die Wichtigkeit des Softwaretestings auf und stellen im zweiten Teil das Konzept eines holistischen Testing-Ansatzes vor.
Assessment des bisherigen Testingbedarfs und Prognose für drei Folgejahre
twim entwickelte einen auf die Kundenbedürfnisse abgestimmten holistischen Testing-Ansatz mit verschiedenen produktivitätssteigernden Attributen. Vorbereitend wurde jedoch auf Basis von Projektdokumentationen und einer Befragung der Testing-Verantwortlichen eine umfassende Datenerhebung durchgeführt.
Dabei wurde insbesondere das Testing-Volumen der vergangenen Jahre projektbezogen ermittelt und jeweils dessen jährliche Zunahme berechnet. Es wurde aber etwa auch dokumentiert, wie viele Tester zur Bewältigung des Testing-Aufwands benötigt wurden und welche finanziellen Aufwendungen auf das Softwaretesting entfielen.
Anhand dieser Aufstellungen wurde schliesslich das weitere Wachstum des Testingbedarfs für drei Jahre prognostiziert. Die Prognose entspricht einer Bedarfszunahme von durchschnittlich 22,5 % pro Jahr, verbunden mit einer ebensolchen jährlichen Kostenzunahme. Erklärtes Ziel war es nach dem oben Gesagten, für einen Zeithorizont von drei Jahren den zunehmenden Testingaufwand zu bewältigen; und zwar unter Einsparung von Kosten, ohne Bedarf an zusätzlichen Testern und ohne Qualitätseinbusse (bzw. sogar mit Qualitätssteigerung) beim Softwaretesting.
Martina Schelling, Senior Softwaretester
Kostenersparnis und weitere positive Nebeneffekte der Produktivitätssteigerung
Der kostenverursachende Faktor beim Softwaretesting ist hauptsächlich das Testpersonal. Nach Vorgabe der Kundin war die Testeranzahl (Manpower) unveränderlich. Weder sollte die Entlassung von Testpersonal in Betracht gezogen werden noch war es eine Option, im Zeitraum von drei Jahren zusätzliches Testpersonal zu engagieren. Als Hebel, mit denen eine Kostenersparnis erreicht werden konnte, blieben also nur Testingaufwand (Workload) und Effizienz-/Qualitätssteigerung übrig.
«Zielvorgabe: Weder Neueinstellungen noch Entlassungen.»
Der holistische Testing-Ansatz der twim beschlägt sowohl die Workload als auch die Effizienz- und Qualitätssteigerung. Da die Workload wie oben dargelegt kontinuierlich zunimmt, kann Workload-Reduktion hier nur bedeuten, die prognostizierte Workload-Zunahme zu verringern, sodass die Workload durch die holistischen Massnahmen letztlich in geringerem Ausmass wächst als ohne die Massnahmen.
Mit der Effizienz- und Qualitätssteigerung wird die im Verhältnis zur wachsenden Workload kleiner werdende Manpower kompensiert (dargestellt in der Grafik). Workload-Reduktion sowie Effizienz- und Qualitätssteigerung sind die beiden übergeordneten Hebel, auf die der holistische Testing-Ansatz Einfluss nimmt. Die Beeinflussung von Workload und Effizienz resultiert insgesamt in einer Produktivitätssteigerung.
Über die Workload-Reduktion und die Effizienz- und Qualitätssteigerung hinaus wird mit dem von der twim ausgearbeiteten Konzept Folgendes erreicht.
Erstens werden die Testing-Teams mit umfassendem Verständnis der End-to-End-Prozesse inklusive Schnittstellen versorgt, wodurch sie in der Lage sind, kontextbezogen zu testen.
Zweitens können hinsichtlich der Softwarelandschaft über die ganze Unternehmensorganisation hinweg Synergien genutzt und Redundanzen vermieden werden.
Und drittens wird der Testautomatisierung Vorschub geleistet.
Drei Komponenten zur Sicherung der Softwarequalität
So viel zu den Wirkungen und Nebeneffekten des holistischen Testing-Ansatzes, bevor nun konkret auf seine drei Komponenten eingegangen wird. Der Ansatz beinhaltet ein Tool zur Unterstützung der Softwaretesting-Teams, stützt sich auf einen spezifischen Prozess, der den Testing-Stream tiefer ins Projektnetzwerk einbettet und ihn zu einem früheren Zeitpunkt in das Projekt einbezieht, und bietet schliesslich als End-to-End- und Testing-Kompetenzzentrum einen Mehrwert für die ganze Unternehmensorganisation.
Getragen werden diese Massnahmen von einem Manager oder einem kleinen Team (je nach Unternehmensgrösse), der bzw. das für die Umsetzung der Massnahmen und für deren Unterhalt sorgt. Im Folgenden wird dieser Manager bzw. dieses Team als Testsupport bezeichnet.
Testing-Support-Tool
Das Herzstück des Konzepts bildet ein Tool, das auch den offensichtlichsten und greifbarsten Mehrwert für die Testing-Teams bietet. Im von der twim erarbeiteten Konzept besteht das Tool in einer ausgeklügelten BPMN 2.0-Prozessvisualisierung mit hohem Informationsgehalt.
Über das Tool können sich die Tester mit Wissen zur Softwarelandschaft des Unternehmens, zu Schnittstellen und zu End-to-End-Prozessen versorgen. Darüber hinaus beinhaltet das Testing-Support-Tool jeden einzelnen Prozessablauf in verschiedenen Entwicklungsstadien und im Kontext der einzelnen in den Prozessablauf involvierten Softwaretools. Der Prozessablauf ist dargestellt in einer Funktionalitäten-Perspektive, da eine solche für den Testing-Stream (anders als etwa für den Business-Stream) relevant ist.
Für jede testrelevante Funktionalität werden etwa die einzelnen Testcases in einer High-Level-Ausführung und mit den einschlägigen Performer-Profilen dargestellt, unter Verweis auf die zugrundeliegenden Stories und Acceptance Criteria und bei Bedarf mit Hinweis auf allfällige Schwierigkeiten und Risiken, die bei den Tests oder bei deren Vorbereitung zu beachten sind. Auch Priorisierungen und Aufwandschätzungen, Informationen zu den Testumgebungen sowie eine Anzeige von notwendig werdenden Regressiontests fliessen ein.
Der Nutzen dieser Informationen für Testmanager einerseits und für Tester andererseits liegt auf der Hand, weshalb hier nur wenige Beispiele angeführt werden. Testmanagern dient das Tool als Orientierungshilfe für ihre Planung, was Testpersonal und Zeitaufwand anbelangt, aber etwa auch zur Vollständigkeitskontrolle, um Lücken beim Softwaretesting zu vermeiden. Testern wiederum wird einiges an Aufwand abgenommen, indem beispielsweise Testvarianten zu einer Funktionalität sowie zu testende Profile direkt ersichtlich sind. Aufgrund des generell besseren End-to-End-Verständnisses der Tester wächst auch die Akzeptanz zum Beispiel vonseiten der Entwickler, sodass etwa gemeldete Bugs nicht unbesehen zurückgewiesen werden.
«Das Testing-Support-Tool hilft Testmanagern bei der Planung und Testern bei sämtlichen Testing-Aktivitäten.»
Beim Testing-Support-Tool handelt es sich nicht nur um dasjenige Element unseres Konzepts, das für den Testing-Stream den grössten Nutzen generiert. Es muss aufgebaut, gepflegt und unterhalten werden und birgt damit auch relativ hohen Aufwand. Daher ist es wichtig, dass sich das Tool auf zuvor festgelegte Konventionen für Struktur und Modellierung stützt. Auch eine intelligente Namensgebung für Prozesse und Testbundles ist unverzichtbar, sodass sie einander und verschiedenen Releases oder dergleichen zuordenbar sind. Darüber hinaus müssen Prozessmodelle untereinander verlinkt sein, damit sie im Sinne einer Landkarte in ihren Kontext eingebettet sind. Solche Konventionen und Spielregeln verringern den Dokumentationsaufwand, sorgen für leichtere Verständlichkeit und stellen einen reibungslosen Übergang sicher, falls es beim Testsupport zu einem Personalwechsel kommt.
Um den Aufwand für Aufbau, Pflege und Unterhalt des Testing-Support-Tools zu reduzieren, sind selbstverständlich Einschränkungen denkbar, was den Informationsgehalt des Tools anbelangt.
Testing-Support-Prozess
Damit der Nutzen des holistischen Softwaretesting-Konzepts voll zum Tragen kommt und damit dieser Testing-Ansatz effektiv ein holistischer ist, müssen Erstellung und Unterhalt des Testing-Support-Tools in einen definierten Prozess eingebettet sein, der sich auf den ganzen Projektzyklus erstreckt und sicherstellt, dass der Testing-Stream früher und intensiver in den Projekt- und Entwicklungsablauf involviert wird.
Ganz im Sinne des im ersten Teil Gesagten, wonach Softwaretesting als Bestandteil der Softwareentwicklung verstanden werden muss, gilt die frühe Einbeziehung des Testing-Streams als einer der wichtigsten Erfolgsfaktoren für Quality Assurance.
«Die wichtigsten Erfolgsfaktoren für Quality Assurance sind frühe Einbeziehung des Testing-Streams im Projekt sowie enge Zusammenarbeit der Tester mit den Entwicklern.»
Die frühe Involvierung des Testing-Streams in den Entwicklungsprozess bewirkt in unserem Testing-Konzept konkret dreierlei. Erstens wird der Testing-Stream mit Informationen versorgt und bleibt up to date. Zweitens kann die Testing-Expertise direkt in die Operations einfliessen und diese somit unterstützen. Drittens können Fehler bereits in der Planungsphase behoben werden (zum Beispiel durch Reviews von Requirements), solange sie noch leicht zu beheben sind und keine Change-Requests nach sich ziehen.
Über die frühe Einbeziehung des Testing-Streams hinaus profitiert ein Projekt und letztlich die resultierende Softwarequalität auch insofern vom Testing-Support-Prozess, als ein kontinuierlicher Austausch zwischen den einzelnen Projekt-Streams gewährleistet wird.
Der Prozess zur Erweiterung des Testing-Support-Tools um neue Prozessvisualisierungen ist umfassender und aufwendiger als der Prozess zum Unterhalt des Bestands.
Kompetenzzentrum
Als Nebeneffekt entwickelt sich der Testsupport und damit einhergehend das von ihm erstellte und unterhaltene Tool als umfassende Inventardatenbank zu einem Kompetenzzentrum für die gesamte Unternehmensorganisation. Dieses bietet ein holistisches und kontextbasiertes Verständnis bezüglich technischer Komponenten wie auch implementierter Funktionalitäten und fungiert als überbrückende Instanz zwischen Systemintegration und Quality Assurance.
Die twim führte eine aufwendige und substanziierte Analyse des Dargelegten unter Einbeziehung sämtlicher Wirkungsfaktoren des ausgearbeiteten Konzepts sowie der Auswertung der Testingsituation der vergangenen Jahre bei der Kundin durch, in die zur Kontrolle und Verifikation sämtliche Testmanager des Kundenunternehmens einbezogen wurden.
Auf dieser Basis wurden Annahmen getroffen im Hinblick auf die Auswirkungen des holistischen Testing-Ansatzes, wobei bewusst konservativ geschätzt wurde.
Produktivitätssteigerndes holistisches Softwaretesting-Konzept: Auswirkungen
Die mittels des holistischen Testing-Ansatzes erzielten Verbesserungen beschlagen wie oben im Text erläutert einerseits die Workload und andererseits die Effizienz. Die Workload ist verknüpft mit dem Testing Scope, also dem Umfang des Softwaretestings, es geht dabei um die Anzahl von zu testenden Requirements, Bugfixes, Change-Requests und um das Regressiontesting.
Entscheidend für die Effizienz hingegen sind die durchzuführenden Testingaktivitäten und der Aufwand, der in sie gesteckt werden muss. Als Masseinheit für die Effizienz wurde vereinfachend ein Testcase gewählt, wobei die Bearbeitung eines Testcases hier nicht nur dessen Ausführung meint, sondern zugleich die dafür nötige Wissensaneignung, Training, Testvorbereitung sowie manuelles Regressiontesting einbezieht.
«Workload: Was/wie viel muss getestet werden?
Effizienz: Wie viel Aufwand ist für die Tests zu betreiben?»
Mithilfe des holistischen Testing-Ansatzes kann die Workload unter folgenden Gesichtspunkten reduziert werden. User-Stories werden vorab triagiert, sodass Redundanzen früh erkannt und zusammengeführt werden können und fehlerhafte oder unvollständige Stories an Requirements Engineers oder Architekten zurückgespielt und korrigiert werden können.
Die Anzahl an Improvement-Stories und Change-Requests ist minimierbar, indem Unzulänglichkeiten oder Missverständlichkeiten in den Requirements vorab ausgeräumt werden. Schliesslich kommt es vermindert zur Notwendigkeit von Bugfixes, indem weniger Bugs vorliegen, aber auch zu seltenerem Retesten von Bugfixes, da die Glaubwürdigkeit der Tester bei den Entwicklern steigt.
Effizienzsteigernder Faktor ist der geringere Aufwand, der für die Wissensaneignung und für Training, für die Testplanung, -vorbereitung und -ausführung sowie für manuelles Regressiontesting betrieben werden muss. Die Aufwandminimierung ergibt sich unter anderem aus dem grösseren Gesamtverständnis der gesamten Softwarelandschaft, dem vorgängigen Ausräumen von Missverständlichkeiten und technischen Hindernissen, der Vorabklärung von Fragen und der frühen Ersichtlichkeit möglicher Auswirkungen von Changes auf Schnittstellen.
Auswirkungen des holistischen Testing-Ansatzes
Eine sorgfältige Auswertung der Faktoren Workload und Effizienz unter Einbeziehung eines Referenzprojekts ergab folgende Annahmen: Es kann eine Workloadreduktion von -1,6 % im ersten, von -8,9 % im zweiten und von -11,9 % im dritten Jahr sowie eine Effizienzsteigerung von +0,5 % im ersten, von +13,6 % im zweiten und von + 19,5 % im dritten Jahr erzielt werden.
Für das Einrichten, die Durchführung und den Unterhalt wurden zwei zusätzliche Vollzeitstellen als Testsupport angesetzt. Nach Abzug der Kosten für den Testsupport resultiert der holistische Testing-Ansatz in einer Kostenersparnis von 0,05 % für das erste (laufende), von 21 % für das zweite und von 32 % für das dritte Jahr.
Wie sich gezeigt hat, lohnt sich eine Umstrukturierung von Softwaretesting bereits nach kurzer Zeit. Sind Sie ebenfalls interessiert, Ihre Softwarequalität zu steigern? – Kontaktieren Sie uns für ein persönliches Gespräch mit unseren Testing-Experten.