Optimierung der Qualitätssicherung

Beherrschen von KPIs durch agile Entwicklung, risikobasiertes Testen und Testautomatisierung

09. Mai 2023

Daniel Pollig, Masud Sultan KPIs im Testing

In unserem vorangegangenen Artikel "Wie wählen Sie die richtigen KPIs für Ihre Unternehmensziele aus?" haben wir betont, wie wichtig es ist, Qualität aus einer ganzheitlichen Perspektive zu messen und sie mit den Geschäftszielen zu verbinden. Wir haben Key Performance Indicators (KPIs) eingeführt, um Qualität zu messen, verschwenderische Aktivitäten zu eliminieren und den Erfolg der einzelnen Metriken zu bewerten.

In diesem Artikel werden die Zusammenhänge zwischen Methoden und Kennzahlen untersucht und es wird aufgezeigt, warum sie für die erfolgreiche Umsetzung von KPIs entscheidend sind. Wir werden drei Hauptmethoden diskutieren: Risikobasiertes Testen, agile Entwicklung und Testautomatisierung.

Methode 1: Risikobasiertes Testen

Risikobasierten Testen wird von uns als ganzheitlicher Ansatz genutzt, der das Testing über alle Prozesse im SDLC (Software Development Life Cycle) mit den Unternehmensrisiken verbindet und gleichzeitig den Testaufwand von komplexen Systemen konstant hält, da der Fokus zuerst auf risikobehaftete Bereiche gelegt wird. Dadurch werden schwerwiegende Fehler vermieden und so wird die Qualität weiter verbessert.

Um eine risikobasierte Testmethodik zu implementieren, sind folgende drei Schritte notwendig:

  1. Identifizierung der Produktrisiken.
  2. Risikoanalyse anhand von Eintrittswahrscheinlichkeit und Schadensausmaß zur Erstellung einer Risikopriorisierung,
  3. Planung, Design und Ausführung aller Qualitätsaktivitäten gemäß Priorisierung inklusive laufender Neuevaluierung des Risikos.

Gerade der letzte Schritt ist ungemein wichtig, damit wir nicht, als ein Extrem, ein überbordendes Quality Management haben, welches als einzige Aufgabe die Dokumentation und Nachverfolgung von Risiken hat, jedoch auch keine lange Liste von einmal definierten Risiken, die in der täglichen Umsetzung keine Rolle mehr spielen.

Aus diesem Grund ist der Einsatz folgender Metriken nützlich:

  • prozentualer Anteil der zurückgewiesenen Failures,
  • prozentualer Anteil an kritischen Failures (in Produktion),
  • risikobasierte (Regressions-) Testabdeckung.

Methode 2: Agile Entwicklung

Agilität wird oft gleichgesetzt mit Geschwindigkeit. Jedoch bedeutet agiles Arbeiten unter anderem, auch das QA-Team schon von Beginn der Anforderungserfassung in den Prozess zu integrieren und zudem die Zusammenarbeit zwischen Entwicklung und Test zu stärken. Ebenso bilden ein kompetentes Team, offene Kommunikationskanäle und ein unterstützendes Umfeld die Kernpfeiler von agilem Arbeiten. Sie sind der fruchtbare Boden, auf dem die Performanz gesamthaft wächst.

Der Einsatz von Agilität in der Softwareentwicklung greift den ganzheitlichen Ansatz von oben auf, indem die risikobasierte Betrachtung des Testens zusätzlich auch die Betrachtung der Softwareentwicklung einbezieht. Agilität beherrscht die Handhabung von komplexen Systemen gut (minimum viable product und inkrementelles Vorgehen), integriert neue technologische Herausforderungen leichter und führt so auch zu einem Shift-Left der Gesamtaufwände – ganz im Sinne von Lean. Wieso einen Fehler beheben, wenn man diesen durch frühere Maßnahmen verhindern kann?

Wir möchten auf drei essenzielle Aspekte hinweisen, die bei uns in einem Agilen Framework mit Hinblick auf die Einführung von sinnvollen KPIs im Fokus stehen:

  • iteratives und inkrementelles Vorgehen,
  • effiziente Kommunikation,
  • schnelle Anpassungsmöglichkeit und Feedback.

Damit ist der Einsatz folgender Metriken nützlich:

  • Deploymenthäufigkeit pro Sprint,
  • Abweichung der Budgetplanung, zeitliche Abweichung des Projektplans, Abweichung der Testaufwandsschätzung,
  • Abweichung zur durchschnittlichen Development Cycle Time.

Methode 3: Testautomatisierung

Wendet man Lean-Prinzipien auf Methoden und Prozesse in der Testautomatisierung an, so lassen sich übergreifende Qualitätszuwächse durch Optimierung und Fokussierung erreichen. Daher strukturieren immer mehr Unternehmen ihre Tests als Testing-Diamant 

Testing diamond

 

Der Fokus wird dabei auf ein Regressionstestset auf Integrationsebene gelegt. Dies vereinfacht die Pflege von Tests erheblich und verifiziert zudem die Interaktion mit anderen Modulen, denn dort, wo die Integration stattfindet, finden sich die meisten Probleme und das höchste Risiko. Auch in unserer eigenen Produktentwicklung für die QACube-Plattform befolgen wir dieses Prinzip und konnten eine Reduktion der Fehler im Integrationstest und verschwenderischen Wartungsaufwand auf Unittest-Ebene bei gleichzeitiger Steigerung der übergreifenden Qualität feststellen.

Testautomatisierung dient in diesem Fall als langfristige Lösung, um zusätzlich die Effizienz im Testing zu erhöhen und damit weitere Kapazität zu schöpfen. Somit ist der Einsatz folgender Metriken nützlich:

  • ersparte Zeit durch Automatisierung,
  • Häufigkeit der Regressionstestdurchführung pro Sprint.

Fazit

Durch einen ganzheitlichen Ansatz und die Messung des Fortschritts auf verschiedenen Ebenen konnten die Sixsentix-Experten in dem Softwareunternehmen, mit dem wir zusammengearbeitet haben, Verbesserungen feststellen, die sich aus Synergien zwischen den Teams ergeben. 

Die Verknüpfung der Geschäftsziele mit der Prozessebene sorgte für Transparenz, ermöglichte eine schnellere und fundiertere Entscheidungsfindung und stärkte das Teamverständnis. Die fortlaufende Risikomessung ermöglichte die Priorisierung der begrenzten Ressourcen für die richtigen Probleme zum richtigen Zeitpunkt, was dazu führte, dass das Projekt ohne Budgetabweichungen abgeschlossen werden konnte. 

Die angepasste Testautomatisierungsstrategie stabilisierte die Regressionstests, so dass das Team mehr Fehler früher erkennen und den Wartungsaufwand reduzieren konnte. Insgesamt konnten wir während der Umstellung eine Verringerung der kritischen Produktionsfehler feststellen. 

Die erste große Errungenschaft des Transformationsprojekts war die Entdeckung eines Nachfragetrends für ein Teilprodukt durch die Analyse im Fachbereich. Diese Erweiterung wurde in relativ kurzer Zeit erfolgreich eingeführt, und zwar mit hoher Kundenzufriedenheit und einer Reaktionsfähigkeit, die vorher undenkbar gewesen wäre. 

Es ist erwähnenswert, dass wir bei der Implementierung der KPIs auf Hindernisse gestoßen sind, über die wir im nächsten Artikel berichten werden. Bleiben Sie also dran!