Risikobasiertes Testen

R 2.0.0

Was ist Risikobasiertes Testen?

Was ist Risikobasiertes Testen?

Ein Testvorgehen, bei welchem sich das Management, die Auswahl, die Priorisierung und die Anwendung von Testaktivitäten und Ressourcen an entsprechenden Risikotypen und Risikostufen orientieren.

Anwendungsbeispiel

Anwendungsbeispiel
ALT MISSING

Die Schulungswoche näherte sich dem Ende und ihnen stand nur noch die obligatorische Feedbackrunde bevor. Eddy, Volker und Claudia aus dem Fachbereich schielten schon leicht nervös in die Ecke mit dem Reisegepäck. Ob sie es noch rechtzeitig zum Zug um 15:00 schafften? Dann bliebe wenigstens noch etwas vom Freitagabend über. Nicht, dass die Schulung so langweilig gewesen wäre. Eddy brannte darauf, sein neues Wissen in dem von ihm betreuten Verfahren einzusetzen. Das Thema „Risikobasiertes Testen“ war ihm zwar schon das eine oder andere Mal begegnet, aber wie das jetzt konkret in seinem Arbeitsumfeld angewandt werden konnte war ihm nicht klar gewesen. Und da war es auch gut, dass mit Claudia jemand aus dem Fachbereich dabei gewesen war, denn die Kollegen dort überließen strukturierte und systematische Testaktivitäten gerne der Softwareentwicklung.

ALT MISSING

Dabei hatten sie, und das war ein Highlight der Schulung gewesen, gerade eben gelernt, dass diese Technik nur dann sinnvoll eingesetzt werden konnte, wenn verschiedene Blickwinkel und Perspektiven auf einen Untersuchungsgegenstand gerichtet wurden und verschiedene Meinungen aller Experten zusammengetragen wurden. Sie hatten es in der Vergangenheit oft genug erlebt, wenn es darum ging Testobjekte und Funktionen zu priorisieren: Dann erschien den jeweiligen Stakeholdern alles gleich wichtig und es war immer schwierig gewesen etwa Regressionstestsuiten maßzuschneidern oder, der jeweiligen Zeit und Ressourcenlage gemäß, anzupassen.

ALT MISSING

Zunächst hatten sie in den ersten Stunden des Kurses über den Begriff Testobjekt nachgedacht und an einigen Beispielen aus ihrem Berufsalltag durchgespielt, welche Auswirkungen die Wahl dieser Entität, auf die sich ihre Testaktivitäten bezogen, mit sich brachte. War sie zu feingranular, zog das eine Menge Aufwand durch Messungen nach sich, wählte man zu große Einheiten, wurden die Aussagen oft trivial. Aber diese Diskussion allein machte ihnen deutlich, wie hilfreich ein gemeinsames Verständnis über die Struktur der Anwendung im Hinblick auf die damit verbundenen Aufgaben der Qualitätssicherung war. Im weiteren Verlauf öffnete ihnen die Dozentin die Augen für die Menge und Vielzahl von Datenquellen, die sie im Verlauf der Entwicklung aber auch der Wartung ihrer Software produzierten, ohne sich im darüber im Detail klar zu sein. Plötzlich gewannen sämtliche Artefakte, wie Konzepte und Spezifikationen, Dokumentationen der Anforderungen und Abweichungen, sowie das Fehlermanagement und nicht zuletzt der Quellcode, eine zusätzliche Wertigkeit als Datenquelle, die sie in ihrem Modell für die Risikobetrachtung mit einsetzen konnten.

ALT MISSING

Außerdem übten sie sich in der Durchführung von Expertenbefragungen und -interviews. In der Vergangenheit waren sie oftmals der Versuchung erlegen aufwändige Fragebögen zu entwerfen, wenn sie bestimmte Fragen an Experten hatten. Der Aufwand, der insbesondere auch bei der Auswertung solcher Fragebögen entstand, war dann regelmäßig unterschätzt worden. Da hatten sich, so die Dozentin, die direkte Ansprache und Befragung, allerdings dann mindestens mit einer stichwortartigen schriftlichen Dokumentation der Antworten, bewährt um schnell Sachverhalte zu klären.

ALT MISSING

Nachdem diese Grundlagen geklärt waren, lernten sie geeignete Modelle zu entwickeln, in denen sie die unterschiedlichen Daten zusammenführten, um zu einem gemeinsamen Bild über die damit verbundenen Risiken kommen zu können. Sicher, am Anfang war das ein gewisser Aufwand, der zum Stirnrunzeln des einen oder anderen Verantwortlichen führen würde, aber mittel- und langfristig würden sie durch den Einsatz des Risikobasierten Testen die ohnehin immer knappen Ressourcen besser und vor allem intelligenter einsetzen können.

Beschreibung

Womöglich gab es auch im Verlauf eines ihrer Projekte kurz vor Fertigstellung schon einmal aus dem Umfeld die irreführende Rückfrage „So, ist alles getestet?“ Als generelle Leitlinien des Testens haben sich in den letzten Jahrzehnten sieben Grundsätze herauskristallisiert. Unter ihnen ist die Feststellung, dass vollständiges Testen eines Testobjekts inkl. aller Eingabewerte und deren Kombinationen nicht möglich ist. Vor dem Hintergrund, dass die knappen Ressourcen Zeit und Personal daher im Projekt möglichst clever und nachhaltig eingesetzt werden sollten, bedarf es eines Lösungsansatzes.

Dieser sollte auch berücksichtigen, dass die Fehler nicht gleichmäßig über das Testobjekt verteilt auftreten. Dort wo bereits Fehlerwirkungen auftreten, lassen sich i.d.R. noch andere finden - das ist ein weiterer der genannten Grundsätze. Auf diese beiden Umstände muss entsprechend flexibel im Test eingegangen werden, und die Testaufwände sollten nicht wie mit einer Gießkanne gleichmäßig über das Testobjekt verteilt werden. Vielmehr gilt es gezielt Risiko und Komplexität vor dem Hintergrund der knappen Ressourcen zu berücksichtigen.

Welchen Nutzen bringt das Risikobasierte Testen?

  • Risikobasiertes Testen hilft, die risikobehafteten Produktteile zu erkennen, die priorisiert intensiver und früher geprüft werden sollen.

  • Besonders schwerwiegende Probleme und komplexe Korrekturarbeiten können somit frühzeitig angegangen werden, was einem weiteren Grundsatz des Testens entspricht.

  • Das Testen hilft bei der Einschätzung von Risiken und liefert Daten, die in einem kontinuierlichen Prozess helfen, eine Qualitätsverbesserung zu erreichen.

  • Die knappen und wertvollen Ressourcen können im Rahmen des Testens sinnvoll gesteuert und gezielt eingesetzt werden.

Welche Hintergrundinformationen sind für das Thema wichtig?

Zunächst ist wichtig, im Vorfeld das zu prüfende Testobjekt eindeutig zu identifizieren und festzulegen. Um das Risikobasierte Testen darauf anwenden zu können, sind zunächst einige Begriffe zur Einordnung des Themas wichtig.

  • Risiko
    Ein Faktor, der zu negativen Konsequenzen in der Zukunft führen könnte, gewöhnlich ausgedrückt durch das Schadensausmaß und die Eintrittswahrscheinlichkeit (ISTQB)
    In der Wissensdatenbank werden die Begriffe Produkt- und Projektrisiko vertieft.

  • Schadensausmaß
    Der Schaden, der entsteht, wenn ein Risiko eintritt. (ISTQB)
    Es können Kosten entstehen durch notwendige Ersatzlösungen sowie Gefahren für Sicherheit und Integrität der Daten können eine Folge sein. Außerdem drohen Imageschäden, negative Auswirkungen auf Ansehen und Außenwirkung (z.B. bei Nichteinhaltung gesetzlicher Vorgaben).

  • Eintrittswahrscheinlichkeit
    Die Wahrscheinlichkeit dafür, dass ein Risiko eintritt. (ISTQB)
    Sie ist abhängig von bisher beobachteten Abweichungen, Testaktivitäten und der Entwicklungsreife. Es besteht eine Korrelation mit der Komplexität des Testobjekts.

  • Komplexität
    Die Komplexität der IT wird ebenfalls zur Risikobewertung herangezogen. Sowohl die technische (z.B. Codekomplexität) als auch die fachliche Komplexität (z.B. Abhängigkeiten verschiedener IT Komponenten) wird berücksichtigt.

  • Risikoklassen
    Zur Risikobewertung müssen Risiken auf der Grundlage von messbaren Indikatoren oder Experteneinschätzungen bewertet werden. Dazu werden üblicherweise Risikoklassen gebildet und die einzelnen Risiken in einem Bewertungsprozess den Kategorien zugeordnet.

Um möglichst früh in das Thema einzusteigen, besteht die Möglichkeit, die Anforderungen (z.B. Anwendungsfälle) bereits in Risikoklassen zu unterteilen.

Woher stammen die Daten und Einschätzungen zu Risiken im Projekt?

„Was man nicht messen kann, (…) kann man nicht kontrollieren“ (Tom DeMarco).

Doch wie kommt man an die benötigten Daten, um Risikopotentiale einschätzen und darstellen zu können? Häufig liegen die meisten der benötigten Informationen im Projekt bereits vor und müssen nicht separat erhoben werden. Einfache Methoden sind oftmals zielführend wie z.B. die Befragung von erfahrenen Projektbeteiligten, z.B. nach fachlicher oder technischer Wichtigkeit bzw. Komplexität der Objekte. Oder das Zählen und Zuordnen von Abweichungen, was in diesem Zusammenhang besser ist, als über keine Daten zu verfügen.

Es gilt auch die Fragen zu klären, ob im Projekt Daten vom Entwicklungsdienstleister bezogen bzw. ihm bereitgestellt werden können. Von einer engen Zusammenarbeit und dem gegenseitigen Austausch der Teams profitieren letztendlich alle Projektbeteiligten.

Weitere Techniken und Quellen zur Ermittlung der Daten sind

  • Interviews

  • Fragebögen

  • Workshops

  • Aufwandsschätzungen

  • Spezifikationen

  • Quellcode

  • Dokumentierte Fehler

Eine mögliche Risikozahl als Bewertungsmaßstab kann beispielsweise aus dem Multiplikator der Eintrittswahrscheinlichkeit und des Schadensausmaßes gebildet werden. Andere Modelle beziehen dazu die fachliche und technische Komplexität mit in die Betrachtung ein.

Mögliche praktische Umsetzungsvarianten zur Vertiefung und Unterstützung werden mithilfe der Praxisbeispiele in den Vorlagen bereitgestellt.

Was kann konkret getan werden, um Risiken zu begegnen?

Um die Risiken im Blick zu behalten, hilft das Etablieren eines Testvorgehens, welches so früh wie möglich eine Priorisierung nach den genannten Kriterien beinhaltet. Diese Aufgabe ist als eine wiederkehrende zu verstehen, die zu einer stetigen Qualitätsverbesserung im Sinne des PDCA-Zyklus (übersetzt: Planen – Umsetzen – Überprüfen – Handeln) führt. So werden im Verlauf des Projekts immer mehr Daten (Erfassung beobachteter Abweichungen etc.) zur Verfügung stehen, welche die ersten Einschätzungen konkretisieren.

Dadurch kommt es zur Verringerung der Ungewissheit bezüglich der Risiken im Projektverlauf, und es entsteht bis zum Zeitpunkt der Inbetriebnahme ein immer klareres Bild.

Quellen