Blog über Software, Mensch und Persönlicher Entwicklung

Software-Testen in der Zukunft - Deutsche Bahn - Richard Seidl

Geschrieben von Richard Seidl | 26.05.2022

Bettina Buchholz ist Strategischer Lead für Quality Assurance & Test bei der DB Netz AG und ist Product Ownerin der testfokussierten CI/CD-Pipeline MoQ-AP (Modular Quality Assurance Pipeline). Andreas Neumeister von der CGI ist Experte für die Themen Testdatenmanagement und Testmanagement. Tom Kober von der CGI ist Spezialist für Testautomationsarchitekturen und Testautomationsstrategien. Gemeinsam richten Sie das Thema Qualitätssicherung bei der DB Netz AG neu aus, mit dem Fokus auf einer zukunftsfähigen Teststrategie und Continuous Testing.

Welchen Herausforderungen muss sich Software Testing in der Zukunft stellen?

Bettina Buchholz: In der Vergangenheit gab es dedizierte Tester, die für “Qualität” verantwortlich waren. Heutzutage sprechen wir nicht mehr von Testern, sondern Quality Coaches, deren Aufgabe es ist das Qualitäts-Mindset in die agilen Teams zu bekommen. Dabei helfen sie den Entwicklungsteams und Product Ownern das Verständnis für Test in jeder Stufe des SDLCs zu integrieren und frühzeitig Fehler mittels Shift-Left aufzudecken. Zukünftig wird es irgendwann keine Quality Coaches und Quality Engineers mehr geben, da jeder einzelne in der Softwareentwicklung Beteiligte intuitiv auf Quality Assurance und Continuous Testing achten wird. Es wird eine Continuous Quality Culture etabliert.
Testaktivitäten werden zukünftig nicht mehr als Belastung/zusätzliche Arbeit wahrgenommen, was heutzutage immer noch oft der Fall ist. Sie werden zu einem festen Bestandteil der Toolchain. Mit jeder einzelnen Aktivität der Softwareentwicklung wird intuitiv und automatisch die Qualität des Softwareprodukts geprüft werden.

Andreas Neumeister: Da der Automatisierungsgrad auch zukünftig stark ansteigen wird, werden bisher benötigte manuelle Aufwände frei für andere wichtige Themen. Dies sind unter anderem: Security Testing, Portability Testing, Testen der Barrierefreiheit, der Hochverfügbarkeit und vielen weiteren Themen. Im Hinblick auf die Testdatenerzeugung wird sich ein Mix aus Anforderungs-verstehenden automatisierten Microservices und KI-gesteuerter Datenerzeugung etablieren. Dies wird viele manuelle Aufwände in der Erfassung von Datenanforderungen, Datenerzeugung und Datenmanipulation obsolet machen. Im selben Atemzug muss jedoch mehr Aufwand in die Planung und den Aufbau der Testdatenstrategie investiert werden.

Tom Kober: Aufgrund der aktuellen globalen Lage sind Sicherheitslücken von größter Bedeutung. Daher muss sich Testing enger mit Security Aspekten beschäftigen, um somit frühzeitig und integrativ Schwachstellen zu vermeiden. Zudem benötigen neue Technologien und Verfahren ebenfalls neue Testing-Ansätze, daher werden zum Beispiel Tests von Serverless Diensten, KI und Machine Learning immer weiter in den Vordergrund rücken. Dies beinhaltet nicht nur das Entwickeln von Testmethoden für diese Technologien, sondern generell auch die dadurch entstehenden Möglichkeiten im Software Testing.
Ein großer Faktor bei der Konzeption einer Testautomationsarchitektur ist der Aufwand für die Pflege und die Entwicklung der automatisierten Tests. Mit Self-healing Tests und unterstützenden Testdesigntools wird dabei diesem Thema schon Sorge getragen. Allerdings sind diese meist noch nicht so ausgereift, dass nachhaltige und wiederverwendbare Tests entstehen.

Welche Ideen oder Lösungen könnten diese Herausforderungen adressieren?

Tom Kober: Integrierte und standardisierte Scantools ermöglichen proaktive Fehlervermeidung und schaffen durch Continuous Integration eine bessere Awareness für Softwarequalität und Sicherheit noch bevor überhaupt eine Testumgebung bereitgestellt wird. Somit können werthaltige Informationen für die Softwarequalität unter den Stakeholdern geteilt und Verbesserungen frühzeitig umgesetzt werden. Gleichzeitig können Compliance Prüfungen und Standards durch individuelle Rulesets organisationsspezifisch definiert werden.
Durch intelligente Analysemöglichkeiten und damit verbundener Sichtweisen, können bessere Annahmen und genauere Tests zu einer Verbesserung der Qualitätssicherung beitragen. Dadurch können Testing-Aufwände zielgerichteter eingesetzt werden, wodurch unter anderem ein schnelleres Testfeedback oder eine Kostenreduzierung erzielt werden kann.

Bettina Buchholz: Machine Learning wird immer mehr ein relevanter Bestandteil der Softwareentwicklung werden. Testaktivitäten werden heutzutage immer noch als zusätzliche Arbeit wahrgenommen. Machine Learning wird die Akzeptanz für Softwarequalität und Softwaretestaktivitäten erhöhen und idealerweise zur Selbstverständlichkeit werden lassen.
Dabei müssen Testprozesse mit allen darin befindlichen Aktivitäten, beispielsweise in CI/CD-Pipelines, integriert sein und dabei alle Teststufen und Testarten überdecken, so dass es zu einer annähernd vollständigen Automatisierung kommt.
Die größte Herausforderung sehe ich allerdings im Switch des Mindsets und der Etablierung einer Continuous Quality Culture. Wir denken heutzutage zu stark in Ansätzen wie “Shift-Left und Shift-Right”. Wir müssen zu “Quality Overall” kommen.

Andreas Neumeister: Im Sinne der oben beschrieben Quality Culture werden sich Entwicklung, Security, Betrieb und Qualitätssicherung enger verzahnen. Dies führt zu einer Entwicklung des Skillsets der Mitarbeiter in den Projekten, aber auch zu einer Weiterentwicklung der technischen Vorgehensweisen für diese Bereiche. Besonders im Hinblick auf den steigenden Automatisierungsgrad und den Einsatz von KI-Technologien wird der saubere Aufsatz von Teststrategien inkl. Automatisierung und Daten, immer bedeutender werden. Dieses hilft besonders bei der Durchführung übergreifender Integrationstests über heterogene Systemlandschaften. Da sich Unternehmen und Technologien mit der Zeit stetig weiterentwickeln, ist besonders die Möglichkeit kontinuierlich und Technologie- und System-übergreifend zu testen, von wachsender Bedeutung.

Wie sieht Future Testing aus? Wie werden wir testen?

Tom Kober: Opensource Tools werden im Zusammenhang mit containerbasierten Testanwendungen immer verbreiteter und bilden einen Grundstein für die Testinfrastruktur der Zukunft. Dies ermöglicht einen nachhaltigen Einsatz von Testautomationstools und reduziert Initialaufwände, welche beim Entwickeln der Testinfrastruktur anfallen. Lediglich für die Testentwicklung wird noch auf lokale Testwerkzeuge zurückgegriffen und statische Testumgebungen werden nur für manuelle Tests und die Entwicklung automatisierter Tests verwendet. Durch den damit einhergehenden hohen Automatisierungsgrad ist besonderes Augenmerk auf die Wiederverwendbarkeit zu legen, damit sich diese Aufwände auch amortisieren können.

Bettina Buchholz: Ich denke wir sind auf dem guten Weg hin zu Future of Testing. Wir sind in der Testdurchführung viel schneller geworden, doch die Feedbackzyklen sind immer noch viel zu lang.
Wenn wir in die Richtung Machine Learning und KI schauen, ergeben sich völlig neue Möglichkeiten des Testens.
Testfälle und Testsuits müssen wartbarer werden oder sich im Idealfall selber warten. Durch KI wird es möglich sein, dass Testfälle selber lernen ob und in welcher Form sie benötigt werden, welche Bedarfe der Nutzer oder das zu testende System hat.
Relevant für einen risikobasierten Testansatz ist auch das “Erfahrungsbasierte Testen”, auch hier wird uns KI in der Zukunft deutlich mehr unterstützen. Beispielsweise werden zukünftig Testdaten erfahrungsbasiert aus vorherigen Testdurchführungen reproduziert oder Testfälle automatisiert designt basierend auf Auswertungen früherer Fehlerhäufungen. Auch die Testautomation wird Fehlerzustände im eigenen System selber identifizieren und beheben, um hier Fehlerquellen aus dem eigenen System heraus zu eliminieren. Qualitätssicherung wird zum ständigen Begleiter, die als Unterstützung in der Softwareentwicklung wahrgenommen wird.

Andreas Neumeister: Darüber hinaus werden zukünftige KI-Qualitätssicherungssysteme das Nutzerverhalten bei Bestandssystemen analysieren. Auf diese Weise werden Fehler und Schachstellen identifiziert, vom System selbst repariert und anschließend entlang grundlegender Qualitätssicherungsrichtlinien, sowie des üblichen Nutzerverhaltens, automatisiert getestet. Dank guter Monitoring Fähigkeiten wird die Qualitätssicherung mehr in den Operations-Bereich verlagert. Um dies zu ermöglichen und entsprechend die Time-to-Market für neue Produkte und Features zu reduzieren, müssen nachhaltige Analyse- und Monitoring-Funktionalitäten konzipiert und etabliert werden. Das Wissen über die Funktion und den Zustand eines Systems in Produktion ist von fundamentaler Bedeutung für die Qualitätssicherung im Operations-Bereich.

Wie können sich Tester und Testmanager heute bereits darauf vorbereiten?

Andreas Neumeister: Tester und Testmanager sollten ihr Testvorgehen regelmäßig, gern auch im gesamten Entwicklungsteam, reflektieren und gefundene Optimierungspotenziale umsetzen. Zusätzlich sollten sie sich mit Kollegen anderer Projekte austauschen und Success Stories anderer Qualitätssicherungsprojekte lesen. Des Weiteren sollten sie sich in der sich schnell verändernden Welt ständig weiterbilden. Das Qualitätssicherungsvorgehen von vor 5 Jahren ist heute schon nicht mehr aktuell. Da Automatisierung im Hinblick auf die Zukunft immer wichtiger wird, sollten sich Testmanager und Tester bereits heute schon in groben Zügen mit dem Thema auseinandersetzen. Es geht nicht darum, Automatisierung technisch umsetzen zu können. Automatisierungspotenziale müssen frühzeitig erkannt werden, um eine Automatisierungsstrategie für das eigene Projekt aufstellen zu können.

Tom Kober: Es ist nicht nur wichtig das Testverständnis im Team zu teilen, sondern auch Tester und Testmanager in die unterschiedlichen Prozesse und Technologien, welche in der Softwareentwicklung und in den Projekten genutzt werden, einzubeziehen. Dadurch wird der Austausch zwischen verschiedenen Stakeholdern gefördert und damit auch die Awareness zur Softwarequalität weitergegeben und verinnerlicht. Dies ist essentiell um den ersten Schritt zu einer kollektiven Softwarequalitäts-Auffassung zu gehen. Nur so können sich die State-of-the-Art Technologien dieser Zeit in Verbindung mit bewährten Testpraktiken zu neuen Softwaretest-Innovationen entwickeln.
Bereits heute existiert der Anspruch, dass Testautomatisierer nicht länger nur für ihre Tests zuständig sind, sondern auch für die automatisierte Testausführung und Integration ihrer Tests in den SDLC. Somit ist es wichtig, dass sie sich mit Themengebieten, wie DevOps, CICD und Cloudplattformen auseinandersetzen um damit ein ganzheitliches Dev, Ops und Test Verständnis zu schaffen.

Bettina Buchholz: Aus meiner Sicht ist der erste Schritt, dass wir keine Angst vor Neuem haben sollten, Neues auszuprobieren und dabei auch scheitern zu können. Nur durch Fehler können wir und verbessern.
Unsere Hauptaufgabe aktuell sollte es sein, den Teammitgliedern, Product Ownern und Projektleitern dieser Welt dabei zu helfen, ein Verständnis für Quality Assurance aufzubauen. Als Coach zu unterstützen den Mindsetswitch hin zu einer Quality Culture zu ebnen.
Wie Tom Kober es bereits angedeutet hat: aus technischer Sicht müssen wir Tester uns mehr mit CI/CD und Continuous Testing beschäftigen. Wir müssen einen Weg finden, dass Test ein integrativer Bestandteil des SDLCs wird. Nur wenn wir dieses schaffen, erleichtern wir den testfremden Teammitgliedern den Einstieg in das Thema und hin zur Entwicklung eines Tester-Mindsets. So kann die Basis für eine zukünftige Quality Culture geschaffen werden