Erfolgreich Geld verschwenden mit Testing? Das ist sehr einfach:
Es wird ein 40-seitiges Testkonzept geschrieben, niemand liest es, und niemand hält sich daran.
Es wird eine Unmenge an Testfällen automatisiert, wobei nicht gefragt wird: «Brauchen wir wirklich so eine grosse Menge an automatisierten Testfällen?».
Es wird eine Menge Zeit in das Testdesign investiert für Testfälle, die meistens nur einmal ausgeführt werden. Und wenn das System dann endlich in der Produktion deployed wird, tauchen trotz all diesem Testing noch (kritische) Fehler auf.
Und dann wundert man sich, dass die Entscheidungsträger fragen: «Was ist eigentlich der «Value» vom Testing? Bei Einsparungen ist die Testabteilung dann oft das erste Opfer. Opfer? Ist die Testabteilung wirklich ein Opfer? Ist es nicht eher so, dass sie nicht in der Lage war den «Value» vom Testing aufzuzeigen und es nicht geschafft hat den «Waste» zu minimieren?
Im nachfolgenden Beitrag präsentiere ich einen neuen Ansatz: Value Driven Testing, auch bekannt als Lean Testing. Damit ist man in der Lage den «Value» vom Testing klar aufzuzeigen und zu maximieren und den «Waste» zu minimieren.
(Siehe auch den Blog bezüglich Lean Metriken für das Test management: Lean metriken fuer das test management)
Woher kommt Lean?
Lean ist nicht wirklich neu. Es wurde in den 80er Jahren durch Toyota entworfen und in den 90er Jahren in Europa und den USA bekannt, vor allem durch James P. Womack und Daniel T. Jones. In der Industrie ist «Lean Production» ein schon längst erprobter und häufig angewandter Ansatz. Leider hat Lean in der IT noch nicht gross an Boden gewonnen. Dabei hat dieser Ansatz im Test-Bereich deutliche Vorteile.
Wieso Lean?
In den letzten Jahren ist Agile das Mass aller Dinge geworden. Wie jedes Vorgehensmodell hat aber auch Agile gewisse Einschränkungen.
Agile Testing und Messung der Testqualität? Das Testen ist eine reine Vertrauensfrage und sehr personengebunden. Es gibt keine Reproduzierbarkeit und auch keine Anhaltspunkte für Test-Qualitätsverbesserungen. Bezüglich Testqualität fährt man blind. Man vertraut auf die Testerfahrung.
Obenstehende, pointierte Aussage, stammt von einem Embedded Tester, der im Agilen Umfeld tätig ist. Im traditionellen Umfeld entsteht sehr oft genau die umgekehrte Situation. Da höre ich oft «Wir sind nur noch beschäftigt mit dem Administrieren der Testaktivitäten». Hauptsache die Zahlen und Metriken stimmen. Überspritzt gesagt, haben wir folgende Situation:
- Auf der einen Seite, Agile, wird bezüglich (Test)aktivitäten viel zu wenig gemacht. Testen ist eine reine Vertrauensfrage. Es wird nicht unbedingt zu wenig getestet, eher zu wenig aufgeschrieben und gemessen. Die systematische Test-Nachvollziehbarkeit leidet meistens. Entscheidungen sind sehr oft eine Frage des Bauchgefühls.
- Auf der anderen Seite, traditionell, wird viel zu viel gemacht. Das Testen artet in eine Administrative Tätigkeit aus. Das heisst, dass die administrative Tätigkeit meistens als wichtiger betrachtet wird als das Hands-on-Testing.
Lean bedingt einen Paradigmenwechsel
Testing muss dazu beitragen, dass Wert ohne Verschwendung erschaffen wird. Das heisst, dass «Value» kreiert und gefördert und «Waste» beseitigt oder minimiert wird. Genau das ist der Kernpunkt von Lean Testing. Alles was wir bezüglich Testing machen, müssen wir durch die Brille von «Value» und «Waste» betrachten.
Das bedeutet, dass sich unsere Haltung und die Art wie wir die Testaktivitäten betrachten, massgeblich ändern muss. Es ist notwendig auf allen Organisationsstufen auf eine andere Art über das Testen nachzudenken. Wir müssen wegkommen von der Idee, fest definierte, unverrückbare Test Aktivitäten auszuführen und bestimmte Testartefakte erstellen zu müssen. Stattdessen sollen massgeschneidert die richtigen Aktivitäten festgelegt werden.
Lean Test Definition
«Value» fördern und «Waste» beseitigen: Heisst das jetzt, dass unsere Testorganisation schlanker werden muss und wir einfach weniger machen müssen? Nein, nicht unbedingt!
- Für einige (Test)organisationen könnte es bedeuten, dass man von einigen Sachen etwas mehr machen muss, da eben diese Sache einen «Value» darstellen.
- Für andere (Test)organisationen könnte es bedeuten, dass man sich von angewöhnten Aktivitäten verabschieden muss, da sie keinen «Value» repräsentieren. Hier wird man also wirklich schlanker. Hier geht es dann vor allem um «Waste» Minimierung.
Wenn Lean nicht unbedingt ein Schlanker werden bedeutet, was bedeutet Lean Testing dann?
Lean Testing ist ein Teststrategisches Vorgehen, das unabhängig vom Software-Entwicklungsmodell (Wasserfall, Agile) einsetzbar ist. Lean Testing kann somit als ein Add-On zu den verwendete Entwicklungsmodellen betrachtet werden. Hierbei hat Lean Testing den Vorteil, dass es einen erweiterten Fokus hat: Verhinderung von «Waste» und Fokussierung auf «Value». Die Organisation kann ihr Agiles oder traditionelles (Wasserfall) Vorgehen beibehalten, sie sollte sich nur in Richtung Lean ausrichten: Also, Lean Elemente einbringen. Im untenstehenden Bild habe ich die Lean Test Definition visualisiert.
House of Lean Testing (Lean Testing Definition)
Das Fundament wird durch das „Employee Involvement“ geformt. Wenn man die Mitarbeiter bezüglich Lean Umsetzung nicht aktiv involviert, wird es schwierig die gesetzten Ziele zu erreichen. Das aktive Involvieren fängt mit einer Vision an, die vom Management klar kommuniziert werden muss.
Die nächste Stufe ist die Analyse des Value Streams. Hier geht es um die Analyse des Flows von Testaktivitäten und Testartefakten innerhalb des Value-Streams. Wie sonst weiss man, wo man gemäss Lean Verbesserungen anbringen sollte. Innerhalb des Value Streams werden die Test Aktivitäten und Test Artefakte nach «Value» und «Waste» untersucht. Welche Aktivitäten und Artefakte beinhalten «Value» und sollten gefördert werden und welche «Waste» und sollten minimiert oder beseitigt werden.
Wenn man die initiale Value Stream Analyse abgeschlossen hat, ist es wichtig, dass man regelmässig die identifizierten Test Aktivitäten und Test Artefakte auf «Waste» und «Value» untersucht, um sicher zu stellen, dass der Value Stream gemäss Lean noch immer optimal gestaltet ist. Das bedeutet nicht das eine voll umfangreiche Value Stream Analyse wieder durchgeführt werden muss.
Schliesslich steht alles im Zeichen von «Continuous Quality Improvement» (CQI). Es geht darum, dass wir die Qualität, kontinuierlich versuchen zu verbessern. Auch dies erreichen wir, indem wir «Waste» beseitigen oder minimieren und «Value» fördern. Dabei dürfen wir aber nicht vergessen, dass auch jeder Mitarbeiter mit Hilfe von Kaizen individuell dazu beitragen kann. Das bedeutet, dass Qualität nicht mehr nur als ein irgendwann zu erreichender Endpunkt betrachtet wird, sondern als ein Prozess, der niemals zu Ende geht.
Die letzten 3 Elemente (3 Vergrösserungsgläser) beziehen sich auf die Kundenorientierung, Kostensenkung (effizienteres Testing) und die spezifische Test- und Software Qualität. Diese Elemente dürfen wir, bei all dem was wir machen, nicht aus dem Auge verlieren.
Lean Testing Framework
Neben einer klar kommunizierten, motivierenden Vision, braucht es aber auch gewisse Leitplanken, anhand derer man in der Lage ist seinen Weg zu finden: ein Lean Testing Framework. Das durch mich entwickelte Lean Testing Framework (TAKT: Testmethoden, Abläufe, Kommunikation, Tools) gibt einen Weg vor, um das Ziel (eine Lean Testorganisation), zu erreichen. Es repräsentiert wichtige Aktivitäten, gruppiert in 4 Themenbereiche, die man innerhalb des Lean Konzepts beachten sollte.
Lean Testing Framework (TAKT)
Das Framework kann man, innerhalb den 4 Themenbereiche, nach Belieben mit weiteren Elementen ausbauen. Wichtigstes Kriterium ist: Das Framework darf kein Widerspruch zur Lean Definition sein. Alle Elemente innerhalb des Frameworks sollten einer Beurteilung nach «Value» standhalten können.
Innerhalb des Bereichs «Testmethoden», hat die Lean Testmethode «MindMap Testing» einen sehr prominenten Platz. An dieser Stelle möchte ich diese Methode nicht weiter besprechen, da diese in einem nächsten, Blog beschrieben und erklärt wird.
Ein anderes Thema ist die Frage, wann die unterschiedlichen Lean Testmethoden angewendet werden sollen. Hier ist es wichtig, dass das Testing anhand einer Teststufen-Sicht organisiert wird, wobei sichergestellt werden sollte, dass das Testobjekt von allen möglichen Blickwinkeln betrachtet wird und auf jeder Teststufe die spezifischen Lean Testmethoden einen Platz haben. Denn unterschiedliche Teststufen fördern unterschiedliche Defects zur Tage.
Das Lean Testing Framework ist also wichtig, um einerseits eine kontinuierliche Qualitätsverbesserung zu ermöglichen und anderseits die Organisation nach Lean Prinzipien auszurichten.
Bestehende Testaktivitäten Beurteilen: Value Stream Analyse
Wie vorhin (siehe Abschnitt: «Lean Test Definition») schon erwähnt: ein wichtiger Schritt ist die Value Stream Analyse. Hierbei dient das TAKT-Framework mit den 4 Themenbereiche (Testmethoden, Abläufe, Kommunikation und Tools) als Basis.
Aufbau Value Stream Analyse
Innerhalb des IT-Zyklus’, bestehend aus Design, Development, Test und Operation, sollten alle Testaktivitäten und Artefakte analysiert werden. Diese werden dann nach «Waste» und «Value» beurteilt. Die Beurteilung wird anschliessend im obenstehenden Raster festgehalten.
Denkbar ist ein 3 Punkte System. Hierbei bedeutet eine 3: Das betreffende Artefakt oder Aktivität enthält sehr viel «Value» und muss nicht weiter optimiert werden. Eine 1 würde bedeuten, dass diese Aktivität grundsätzlich als einen «Value» betrachtet wird, dieser aber viel zu niedrig ist und somit gefördert werden sollte. Wenn eine Aktivität oder ein Artefakt hinsichtlich «Waste» mit einer 3 bewertet wird, bedeutet das: Diese Aktivität beinhaltet sehr viel «Waste». Somit sollte man diese Aktivität beseitigen. Eine 1 würde bedeuten: Diese Aktivität wird grundsätzlich als «Waste» betrachtet. Das «Waste» Element ist aber so klein das man sich überlegen könnte diese Aktivität in eine etwas andere Form beizubehalten. So entsteht eine komplette Übersicht von «Waste» und «Value». Man weiss genau wo etwas geändert werden muss.
Bei der Value Stream Analyse geht es also um die Aufdeckung von «Waste», «Value» und nicht zu vergessen «Non-Value-Adds». Dies sind Aktivitäten oder Artefakten, die keine Value-Adds repräsentieren, aber unter Berücksichtigung der Systembedingungen notwendig sind.
Grundsätzlich gibt es nur eine Frage, die man sich bei dieser Analyse immer wieder Stellen sollte: Warum?
- Warum machen wir diese Aktivität?
- Warum erstellen wir diese Artefakte?
Wenn man nicht in der Lage ist eine schlüssige Argumentation für die Existenz einer Aktivität oder eines Artefaktes zu liefern, handelt es sich sehr wahrscheinlich um ein «Waste» Element.
Lean Test Prinzipien
Das alles kann man jetzt in 8 Kernprinzipien des Lean Testings destillieren:
- Reproduzieren der Testresultate ist gesichert
- Detaillierte Testfälle nur wo unbedingt notwendig
- Auf unnötige Test-Artefakte und -Test-Tätigkeiten wird verzichtet
- Effizientes und schnelles Testdesign
- Qualität des Testings ist messbar und nachweisbar
- Es darf nur so viel Struktur und System eingebracht werden, dass das Testing nachvollziehbar und transparent wird (keine Test-Bürokratie)
- Fehleranalyse und stetiges Verbessern
- Tester, Developer und Requirement Engineers arbeiten zusammen und sind gleichberechtigt
Fazit
Wieso sollten wir eigentlich Lean Testing in der Organisation implementieren?
- Es kann unabhängig vom SW-Entwicklungsmodell ergänzend eingesetzt werden.
- Es hat mit «Waste» und «Value» gegenüber Agile und Traditionellem Testing einen explizit erweiterten Fokus.
- Es trägt dazu bei, sich auf das Wesentliche zu konzentrieren, ohne das Notwendige zu vernachlässigen.
- Es beinhaltet einen Ansatz zur kontinuierlichen Qualitätsverbesserung.
Grundsätzlich kostet die Testausrichtung nach Lean Prinzipien nicht viel. Die verwendeten Entwicklungsmodelle (Agile, Traditionell) können beibehalten werden. Lean Testing kann somit als ein Add-On zu den verwendete Entwicklungsmodellen betrachtet werden. Dabei hat man mit Lean Testing effektiv einen Ansatz, das Testing vermehrt nach «Value» und «Waste» auszurichten. So sind wir in der Lage, sicher zu stellen, dass mit Testing nicht erfolgreich Geld verschwendet wird.
Die Frage «Was ist eigentlich der «Value» vom Testing (im Sinne von Lean)?» kann man nur im Kontext der betreffende Testorganisation beantworten. Testen ansich ist aber eine wertvolle («Value») Aktivität: Testen macht die Qualität messbar. Die Art wie diese Aktivität ausgeführt wird, kann aber «Waste» beinhalten.
Wenn Sie mehr über Lean Testing erfahren möchten, oder Interesse hätten Lean Testing in Ihrer Organisation einzuführen, dann nehmen Sie doch Kontakt mit uns auf. Wir helfen Sie gerne weiter oder Präsentieren diesen Ansatz auch gerne bei Ihnen Vorort.