Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

Agil entwickeln und testen – eine Herausforderung?

Agil ist weiter auf dem Vormarsch und dominiert inzwischen die Entwicklungsprozesse. Damit einhergehend weicht in den Organisationen die klassische Aufteilung zwischen Entwicklung und Test immer mehr auf. Daher ergibt sich ein immer größerer Bedarf an grundlegenden Testfähigkeiten in den Teams, um auch als Entwickler die Qualität des Produkts erhöhen zu können. Zudem fehlt gerade in den integrierenden Tätigkeiten oft eine ausreichende Klammer übergreifender Qualitätssicherung. Als Ergebnis weisen viele agile Projekte missionskritische Lücken in der Qualitätssicherung auf. Zwei Schwerpunkte sind hier entscheidend: mangelnde Akzeptanz für die Qualitätssicherung in den agilen Teams und oft auch mangelnde Testexpertisen und Testsystematik.
Author Image
Armin Metzger

Author

Author Image
Andreas Reuys

Author


  • 29.10.2021
  • Lesezeit: 13 Minuten
  • 30 Views

Wir sehen einen deutlichen Bedarf an Verbesserung der Testexpertisen über alle Testaspekte und Teststufen als Schlüsselfaktor, Produkte nachhaltig und erfolgreich agil zu entwickeln. Aber welche Testthemen sind zu stärken oder überhaupt zu etablieren? Und welche Testexpertisen werden dafür benötigt?
Diese Fragen wurden vom GTB (German Testing Board e. V.) analysiert. Dieser Artikel gibt einen Überblick über die aktuellen Einflüsse auf das Testen in agilen Projekten, Lösungen für mögliche Schwachstellen und die dafür nötigen Testexpertisen.

Agiles Vorgehen und der Test – Eine „neue Welt“?

Es ist sicher nicht zu bestreiten, dass agile Vorgehensweisen im Jahr 2021 einen dominanten Platz unter den gelebten Prozessmodellen eingenommen haben. Die Qualitätssicherung verschiebt sich im agilen Umfeld aus ihrer Rolle einer unabhängigen und selbstständigen Funktion mit eigenen Teams und eigenen Zielen zu einer integralen Aufgabe der Entwicklungsteams. Und sie nimmt auch in den agilen Projekten an Fahrt auf, wie der von Capgemini, Sogeti und Micro Focus veröffentlichte World Quality Report 20-21 [WQR20] ausführt.

Dies wird ebenfalls durch die Softwaretestumfrage 2020 [ST-Umfrage20], eine Kooperation der Technischen Hochschule Köln, der Hochschule Bremerhaven, des GTB und des Austrian Testing Board, bestätigt. Aber nimmt sie genug Fahrt auf? Wir wollen einige wichtige Aspekte des Testens im agilen Umfeld hier diskutieren.

Gerade im Kontext der agilen Entwicklungen ist der Bedarf an „schneller“ und „wirtschaftlicher“ so groß wie nie. Dieser Druck der Zeitpläne und Budgets ist ein klassischer Feind des Testens. Als Ergebnis weisen viele agile Projekte geschäftskritische Lücken in der Qualitätssicherung auf. Diese Lücken führen nicht nur zu teilweise kritischen Mängeln in der Produktqualität, sie können auch zu massiven zeitlichen Verzögerungen im Projekt führen.

Agiles Vorgehen und der Test – Akzeptanz und Skills für das Testen

Die Softwaretestumfrage 2020 zeigt im Vergleich zur Softwaretestumfrage 2015/16, dass mit zunehmenden agilen Projekten die Bedeutung an Testverfahren und das Wissen über Testverfahren sinken [ST-Umfrage-TR21, S. 129f]. Um diese Lücken zu adressieren und zu verbessern, benötigen wir zuallererst einmal eine stärker ausgeprägte Kultur einer Qualitätssicherungs-Community (siehe [WQR20], S. 48). Der World Quality Report sieht einen deutlichen Bedarf an Verbesserung der Testing Skills über alle Testaspekte. Wir benötigen dafür aber auch die nötige Unterstützung aus dem Management, auch bezüglich der Ausstattung mit entsprechenden Budgets für das Testen, die seit 2015 von 35 auf 22 Prozent (2020) der Gesamtausgaben im Projekt gefallen sind (siehe [WQR20], S. 40).

Was wir insbesondere in den agilen Teams ermöglichen müssen, ist, dass Entwicklung und Test zusammenwachsen. Von den Fähigkeiten her und auch vom Mindset. Es gilt, die Akzeptanz für das Testen in den agilen Teams und die dafür benötigten Skills zu stärken.

Aber welche Testthemen sind zu stärken oder überhaupt zu etablieren? Und welche Testexpertisen werden dafür benötigt? Basierend auf dieser Frage wurde vom GTB ein auf die Bedürfnisse von Entwicklern zugeschnittener Leitfaden an Testthemen und Testexpertisen definiert. Wir sehen folgende Schwerpunkte:

  • Grundlagen des Testens (Motivation, Grundsätze und generelle Prozesse),
  • testen im Softwareentwicklungslebenszyklus (Teststufen, Testarten),
  • statischer Test (Reviews und statische Analyse) und Testverfahren (Black-Boxund White-Box-Testverfahren, Erfahrungsbasiertes Testen),
  • Testautomatisierung.

Grundlagen des Testens

Zu den Kenntnissen und vor allem Erkenntnissen, die auch in Agilen Teams für eine professionelle Qualitätssicherung vorhanden sein müssen, stellen wir hierzu im Folgenden einige Prämissen auf.

Prämisse 1: Testen als Schlüssel zum Projekterfolg muss sich noch stärker in den Köpfen etalieren

Qualität ist der Schlüssel zum Erfolg von Produkten und Projekten. Noch nie war unsere Software so sehr vernetzt mit anderen Systemen und mit Hardware. Noch nie hat Software so sehr alle Lebensbereiche des Menschen durchdrungen. Und vor allem, noch nie haben wir uns so abhängig von Software gemacht wie heute. Ein Ende der stetig zunehmenden Anforderungen an die Qualität ist nicht abzusehen.

Auf der anderen Seite hat die stetig wachsende Akzeptanz und Systematisierung des Testens in den V-Modell-Projekten der 2000er nach unserer Einschätzung mit dem Shift auf agile Vorgehensweisen einen Knick erlitten. Die Softwaretest-Umfrage 2020 stützt diese Aussage: „So steht heute die Schnelligkeit, mit der eine Applikation in den Markt tritt, über sämtlichen Qualitätsmerkmalen: Auftretende Fehler werden umso eher toleriert, je früher dafür eine App ausgerollt wird.“ ([ST-Umfrage-TR21], S. 276). Anders ausgedrückt: die Protagonisten der agilen Welten haben oft andere Grundlagen und andere Schwerpunkte bezüglich des Testens als die Protagonisten der V-Modell-Welten. Hier muss sich Testen als wertgebende, ja unabdingbare Aktivität oft erst neu etablieren.

Prämisse 2: Wir müssen relevante Qualitätsmerkmale erkennen und die Testaktivitäten noch stärker entlang der Bedeutung der Qualitätsmerkmale priorisieren

Bedeutung und Auswirkung der Qualitätsmerkmale ändert sich laufend mit der sich entwickelnden technischen Umgebung. Erst einmal muss man diese Qualitätsmerkmale überhaupt kennen und sich ihrer Auswirkungen bewusst sein. Mit diesem Bewusstsein muss man den Test darauf ausrichten und entsprechende Schwerpunkte in den zu testenden Qualitätsmerkmalen auf Basis der aktuellen technischen Umgebung und der Rahmenbedingungen setzen.

Während noch vor 20 Jahren die funktionale Qualität das A und O war, wird die Qualität heutiger Systeme zunehmend durch die nichtfunktionalen Qualitätsmerkmale beeinflusst bis hin zur möglichen Gefährdung für Leib und Leben. Auch die Softwaretest-Umfrage 2020 bestätigt dies: „Die Kunden achten heute mindestens genauso intensiv auf andere Qualitätsmerkmale wie Benutzungsfreundlichkeit, Performanz oder auch Sicherheit.“ ([ST-Umfrage-TR21], S. 310ff). Wesentliche Bedeutung für den Einfluss der unterschiedlichen Qualitätsmerkmale hat die Etablierung eigentlich „uralter“ Technologien, welche bis vor wenigen Jahren eher ein Schattendasein führten. Künstliche Intelligenz, Machine Learning und das Thema des Internet of Things sind auf dem Vormarsch und etablieren sich schnell und im großen Stil. Die Reife der Testexpertise gerade im Umfeld Künstliche Intelligenz ist demgegenüber weiter nicht ausreichend (siehe [WQR20], S. 21 ff, [ST-Umfrage-TR21], S. 203).

Prämisse 3: Wir dürfen die Klammer übergreifender Qualitätssicherung nicht verlieren – hier besteht großer Handlungsbedarf

Daher ist das Bewusstsein dafür zu schärfen, dass es auch in agilen Projekten, zumindest in solchen mit einer funktionierenden Qualitätssicherung als Ziel, sowohl der Planung der Teststufen als auch der risikobasierten Planung der zu den Teststufen adäquaten Testaktivitäten bedarf. Auch müssen die entsprechenden Rollen und dazugehörige Skills in die „neuen“ Rollenverteilungen der agilen Welt abgebildet werden.

Das Team muss das Konzept der Teststufen und Testarten kennen, danach planen und die nötigen Testaktivitäten anwenden und umsetzen können. Noch bedeutender werden die Testprozesse, Testkonzepte und Testverfahren, wenn es darum geht, die Ergebnisse unterschiedlicher, vielleicht sogar unterschiedlich getakteter agiler Teilprojekte zu integrieren. Hier wäre das klassische Test Center für die Integrations-, System- und Abnahmetests oft doch wieder das Mittel der Wahl, auch wenn es bisweilen in der Organisation im Kontext der agilen Transformation abgeschafft worden ist. Und das führt uns zu den adäquaten Testverfahren in den Prozessen.

Statischer Test und Testverfahren

Beginnen wir mit dem statischen Test, also Reviews und statische Analyse. Hier sind gerade in agilen Projekten die Voraussetzungen schon sehr gut gegeben: Laut Softwaretest-Umfrage 2020 [ST-Umfrage20] nutzen 2/3 der Projekte das Review als Verfahren der Qualitätssicherung des Codes. Die Bedeutung von Reviews im Hinblick auf die Qualitätssicherung steht bei den Befragten gleich an zweiter Stelle nach der Testautomatisierung und wird als deutlich weiter etabliert und umgesetzt als diese eingeschätzt. Und gerade in den oft hoch automatisierten Prozessketten im agilen Umfeld ist die statische Analyse des Codes nach syntaktischen und definierten formalen Kriterien sozusagen bereits intrinsisch eingebaut.

Prämisse 4: Wir müssen die Anwendung systematischer Testverfahren verbessern

Aber wie sieht es mit dem Einsatz von Testverfahren aus, um Testfälle systematisch und mit guter Qualität zu entwickeln und um Testende-Kriterien definieren zu können? Die Softwaretest-Umfrage 2020 zeigt hier sogar in den letzten neun Jahren einen deutlichen Rückschritt bezüglich der Verwendung grundlegender Testverfahren auf (siehe Tabelle 1). Während der Anwendungsfall basierte Test noch vergleichsweise häufig zur Anwendung kommt, haben Standardverfahren wie Äquivalenzklassen- und Grenzwertanalyse deutlich an Bedeutung in den Projekten verloren.

Tabelle 1: Einsatz von Testverfahren laut Softwaretest-Umfrage 2020 ([ST-Umfrage-BR21], S. 15)

Die in der Tabelle aufgeführten Testverfahren bilden als Grundlage ein gutes Bündel an Methodik, den Test systematisch aufzusetzen und damit überhaupt erst Abdeckungsgrade und Testendekriterien definieren zu können. Letztendlich garantieren nur diese systematische Analyse und die Umsetzung in ausführbare Tests, dass der Test auch wirklich das tut, was seine Kernaufgabe ist: Kenntnis über die Reife und Qualität des Produkts als Ausgangsgrundlage für die Projektentscheidungen zu erlangen.

Essenziell, um mit der Fülle der einhergehenden Aufgaben auch in einem agilen Sprint zurechtzukommen, ist natürlich eine möglichst hochgradige Automatisierung und Werkzeug gestützte Verzahnung der Aktivitäten in den Prozessen. Ein wesentlicher Schritt bei den Testaktivitäten, insbesondere im Hinblick auf die unerlässlichen Testregressionen ist hierbei die Automatisierung der Testdurchführung selbst.

Testautomatisierung

Prämisse 5: Wir müssen weiter daran arbeiten, den Testautomatisierungsgrad zu erhöhen

Die Softwaretest-Umfrage 2020 führt als ein Umfrageergebnis über den Grad der Testautomatisierung aus: „Dass nicht einmal 50 % den Regressionstest zu 75 % oder komplett automatisiert haben, ist verwunderlich, da Regressionstests doch sehr häufig durchgeführt werden und sich daher eine vollständige Automatisierung schnell auszahlt.“ ([ST-Umfrage-Br21], S. 17f). Zum Grad der Automatisierung auf den einzelnen Teststufen siehe Abbildung 1. Das heißt, hier bestehen teilweise große Lücken, welche die Effizienz und damit die Qualität des Tests deutlich beeinflussen und reduzieren.
Testautomatisierung kann zu besserer Qualität der ausgelieferten Software führen, da die entsprechenden Skripte zu jeder Zeit ausgeführt werden können („24/7”) und, aufgrund im Vergleich zu manuellen Tests kurzen Testdurchlaufzeiten, schnell eine entsprechende Rückmeldung liefern können. Das bedeutet, Fehler lassen sich früher finden. Damit kann auch die Stabilität der gelieferten Software erhöht werden.

Abb.1: Grad der Automatisierung auf den einzelnen Teststufen ([ST-Umfrage-BR21], S. 17)

Die Testautomatisierung führt auch zu einer entsprechenden Reproduzierbarkeit der durchzuführenden Tests, die man zum Beispiel auch auf anderen Oberflächen oder mit anderen Systemen sehr effizient durchführen kann, was aufgrund der begrenzt zur Verfügung stehenden Zeit bis zur Auslieferung der funktionsfähigen Software manuell in der benötigten Qualität nicht möglich ist.

Ein positiver Nebeneffekt ist, dass man dadurch den Anteil von manuell durchzuführenden, sich wiederholenden („langweiligen”), Tests reduzieren und sich damit mehr auf andere qualitätssteigernde Aufgaben konzentrieren kann.
Um die Testautomatisierung aufsetzen zu können, werden aber einige Testerkenntnisse benötigt (z. B. Nutzen und Risiken der Testautomatisierung erkennen können, Testwerkzeuge klassifizieren können).

Conclusio und Testing Foundations for Developers

Dieser Artikel führt die nach unserer Ansicht essenziellen Schritte und Aktivitäten der Qualitätssicherung und des Testens auf, die auch in agilen Projekten ein unerlässlicher Schlüssel für den Erfolg von Produkten darstellen. Ein wichtiger Schritt in den agilen Projekten ist, zuerst einmal Bewusstsein und Akzeptanz für diese Themen zu schaffen.
All diese Aktivitäten sind verbunden mit nötigen Expertisen, insbesondere auch bei Entwicklern (vgl. [SQ57], S. 10 und [ST-Umfrage-TR21], S. 94ff), um diese Aktivitäten auch erfolgreich durchführen zu können.

Als GTB und in der Rolle des nationalen Boards, welches die Grundlagen für berufsbegleitende Trainings zum Thema Testen und Qualitätssicherung innerhalb der Dachorganisation ISTQB® verantwortet, haben wir mit dem Partner A4Q diese Analyse bereits in ein Curriculum, den A4Q Testing Foundations for Developers, umgesetzt. Der Bedarf ist anschaulich beschrieben in [SQ58] sowie Ideen für Umsetzungsbeispiele im Kontext von C++ in [LT16].

Bei der Definition des Trainings haben wir uns, wie in Abbildung 2 gezeigt, der Inhalte unseres etablierten Schemas des Certified Testers bedient. In dem Lehrgang wird verstärkt auf Hands-on-Aspekte Wert gelegt, das heißt, durch praktische Übungen können die entsprechenden Kompetenzen erworben werden. Oder, in anderen Worten: Es wird auch Testautomatisierung programmiert. Hierbei geht es nicht darum, Entwickler zu Testern umzuschulen. Es geht vielmehr darum, das Bewusstsein für die Inhalte des Testens und dessen Bedeutung auch für agile Teams und auch für die agilen Entwickler zu stärken, für eine fundierte Basis an Expertisen zu sorgen und mit diesem Quasi-Standard eine einheitliche Sprechweise und ein gemeinsames Verständnis im Team zu fördern. Dies sehen wir als wichtigen Baustein für die Qualität der Produkte im Zug der agilen Transformation.

Abb. 2: Inhalte des Testing Foundations for Developers (TF4D) im Detail

Weitere Informationen

[LT16] A. Spillner, U. Breymann, Lean Testing für C++-Programmierer, dpunkt-Verlag, 2016, siehe auch
http://www.leantesting.de/

[ST-Umfrage20] GTB, TH Köln, HS Bremerhaven, ATB, Softwaretest-Umfrage 2020, siehe:
https://www.softwaretest-umfrage.de/

[ST-Umfrage-Br21] M. Winter, K. Vosseberg, F. Simon, A. Spillner, A. Simon, H. Pichler, M. Sarkaria, Umfrage 2020: Softwaretest in Praxis und Forschung, siehe:
https://www.softwaretest-umfrage.de/pdf/BroschuereSoftwaretestUmfrage2020g.pdf

[ST-Umfrage-TR21] M. Winter, K. Vosseberg, F. Simon, Technischer Report: Softwaretestumfrage 2020, siehe:
https://www.softwaretest-umfrage.de/pdf/Technischer-Report-Umfrage-2020-V11Linked.pdf

[SQ57] A. Spillner, K. Vosseberg, M. Winter, Agil oder doch nicht (komplett) agil?, in: SQ-Magazin, Ausgabe 57, Dezember 2020, S. 9-11, siehe:
http://www.sq-magazin.de/de/magazin/sq-magazin-ausgabe-57.html

[SQ58] J. Beniermann, E. Wunderlich, E. Mai, Agiles Entwickeln und Testen – Ein Widerspruch?, in: SQ Magazin, Ausgabe 58, Juni 2021, S. 11-14, siehe:
http://www.sq-magazin.de/de/magazin/sq-magazin-ausgabe-58.html

[WQR20] World Quality Report 20-21, siehe:
https://www.capgemini.com/de-de/research/world-quality-report-wqr-20-21/

. . .

Author Image

Armin Metzger

Author
Zu Inhalten
Dr. Armin Metzger schöpft aus fast 30 Jahren an Erfahrung in der Softwareentwicklung und zu Themen der Software- und System-Qualität in industriellen Projekten, Forschungsvorhaben und internationalen Gremien. Er wirkt dabei maßgeblich mit, in Deutschland die Expertise der Software-Qualitätssicherung sowohl in Kundenumfeldern als auch in Industriegremien und Forschungsprojekten inhaltlich und als Geschäftsmodell aufzubauen. Dies beinhaltet die Tätigkeit als Coach, Vortragender und Dozent.
Author Image

Andreas Reuys

Author
Zu Inhalten
Dr. Andreas Reuys leitet bei Capgemini Financial Services den Bereich Managed Testing. Seit über 20 Jahren hat er Erfahrung in der Qualitätssicherung gesammelt, was er gerne mit anderen Menschen teilt und diskutiert, unter anderem als Fachgruppenleiter im ASQF in der Fachgruppe Softwaretest NRW.
Author Image
Zu Inhalten
Dr. Erhardt Wunderlich arbeitet bei Alstom im Center of Expertise an dem Thema „Tools and Processes“ für den Test von Schienenfahrzeugen. Er beschäftigt sich bereits seit vielen Jahren mit dem Thema Softwaretest in verschiedenen Industriebereichen und hält zu dem Thema Testen auch Vorträge auf diversen Konferenzen.

Artikel teilen