Tilo Linz ist Vorstand und Mitgründer der imbus AG, einem führenden Lösungsanbieter für Softwarequalität und Softwaretest und seit mehr als 25 Jahren im Themengebiet Softwarequalität tätig. Als Gründer und Vorsitzender des German Testing Board e.V. und Gründungsmitglied im ASQF e.V. und ISTQB hat er die Aus- und Weiterbildung in diesem Fachbereich auf nationaler und internationaler Ebene maßgeblich mitgestaltet und vorangebracht. Tilo Linz ist Autor von “Testen in Scrum-Projekten” und Co-Autor von “Basiswissen Softwaretest” (dpunkt.verlag).
Herausforderungen des Software-Testings
Was sind Herausforderungen, die Software-Testing oder der Software-Tester in Zukunft hat? Was kommt auf uns zu?
Bevor ich auf Software-Testen eingehe, sage ich etwas zum Thema “in die Zukunft schauen”, womit wir uns bei imbus vor ein paar Jahren beschäftigt haben. Wenn man in die Zukunft schaut, ist man als Mensch so geprägt, dass man die jetzige Situation vor Augen hat und man diese linear in die Zukunft fortschreibt. Man kommt auf das jetzt schon Geschehende in futuristischerer Form und ist von der aktuellen Situation und der Vergangenheit geprägt. Daher ist das in die Zukunft schauen besonders in der IT schwierig, da sich hier alles besonders schnell ändert. Viele Quantensprünge hat man nicht auf dem Schirm, was das Problem ist. Die Frage ist also: Wie kann man das lineare Denken durchbrechen, sodass man auch Disruptionen und wirklich Neues erahnen kann? Zukunftsforscher nutzen dafür konkrete und professionelle Methoden. Eine dieser wichtigsten Prognose-Techniken ist die sogenannte Szenario-Technik. Man überlegt sich ausgehend von heutigen Beobachtungen, was die wichtigsten Einflussfaktoren und die Megatrends sind. Man entwickelt Geschichten, spinnt diese weiter und kommt dann auf Dinge, die plötzlich realistisch passieren können. Eine dieser Welten realisiert sich dann. Zusammen mit einem Zukunftsforscher hat imbus in den letzten Jahren “Trends in Testing”-Studien für die Jahre 2025, 2035 und 2050 aufgelegt. Diese haben wir einige Male in einigen Jahren Abstand aktualisiert. Wenn man darin nachträglich blättert sieht man, dass einiges Quatsch ist, aber manches wirklich zutrifft. Das Schockierende war, dass sich Vieles viel schneller realisiert hat. Die Studie kann man in unserem Download-Bereich kostenfrei herunterladen.
Was insbesondere Software-Tester in den kommenden Jahren herausfordern könnte, kann ich natürlich nicht sämtliche Herausforderungen exakt vorhersagen. Aber ich verrate gern, was in den verschiedenen Welten Herausforderungen sein könnten. Ich habe vorhin nochmal die Studie nachgelesen, welche sich auf 2025, 2035 und 2050 strukturiert. 2025 ist schon in zweieinhalb Jahren. Als wir die Studie das erste Mal rausgaben, war das ferne Zukunft. Wir sehen darin “Structure Ware” als wichtigen Trend und ich bin überzeugt, dass das das konkrete Anwendungsgebiet sein wird.
Bei “Structure Ware” geht es darum, dass heute in der realen Welt, in der Hardware oder Ähnliches produziert wird, 3D-Druck verwendet wird. Vor einigen Jahren war das ganz neu, mittlerweile ist es in der Industrie Standard. Auch daheim ist es als Hobby schon normal. Das, was produziert werden soll, sendet man als Code an ein Gerät und dann materialisiert es sich. Die traditionelle Sicht darauf ist, dass man einen CAD-Plan hinschickt. In Wirklichkeit schickt man aber Software hin. Wenn man das weiterspinnt und leistungsfähige Geräte hat, dann heißen diese nicht mehr 3D-Drucker, sondern Bioprinter und anders. Diese Produktionsstraße kann wiederum irgendwo in der Welt stehen. Oder man bestellt andersrum über Amazon und erhält kein Päckchen mehr, sondern eine “Structure Ware” in sein Postfach. Diese wird dann an den Zuhause stehenden Sophisticated 3D-Drucker geschickt, bei dem das fertige Produkt rauskommt. Was letztendlich rauskommt, hängt nur von der “Structure Ware” ab, die geschickt wird.
Auswirkungen auf das Testing
Wie wirkt sich das auf das Testing per se aus? Was sind da die Ansätze dafür? Habt ihr in die Richtung auch gedacht?
An der Stelle ist es eher umgekehrt. Leute, die mit der Erstellung von Plänen für 3D-Druck Geld verdienen, denken nicht, dass sie Software-Coder sind. Es sind Ingenieure, die traditionelle Bauteilzeichnung machen. Diese werden dann eine gewisse Komplexitätsschwelle finden, wo etwas nicht funktioniert oder sie etwas weggelassen haben. Sie werden viel Bedarf von den normalen Testtechniken bekommen oder erstaunt feststellen, dass es mit den Software-Testerinnen da eine Zunft gibt, die helfen kann.
Anforderungen an Tester oder Test-Analysten
Was muss ich anders machen, wenn ich Tester oder Test-Analyst bin? Muss ich etwas anders machen? Habe ich andere Voraussetzungen?
Der Test-Manager sollte neue Dinge beherrschen. Es gibt einige neue Testverfahren, die sich gerade entwickeln und das ist nicht die weite Zukunft. Im Kontext des autonomen Fahrens ist viel passiert und das Software- oder System-Testing gehört u.a. dazu. Es tut sich unheimlich viel in dem Gebiet und täglich gibt es Veröffentlichungen dazu. Die neue Testmethode Scenario-based Testing entsteht gerade, welche man im traditionellen Software-Test in dieser formalisierten Form noch nicht kennt. Sie wird helfen, die autonomen Fahrzeuge marktreif zu machen und ich bin überzeugt, dass das ganze Robotik-Thema auch dranhängt. Das autonome Fahren ist schon sehr anspruchsvoll. Wenn ein zweibeiniger Roboter durch die Gegend läuft, wird es noch komplexer. Der Software-Tester muss diese verschiedenen Umgebungen modellieren können und das ist das Thema Scenario-based Testing. Wir haben es nicht mehr mit einem Testobjekt zu tun, das auf dem Labortisch liegt und davon zig Versionen, sondern wir haben eine dynamische Umwelt und verschiedene Ausprägungen. Im Szenario A, B und C ändern diese Parameter das Szenario, das Testobjekt bleibt das gleiche. Es ist eine Umkehrung zwischen Testumgebung und Testobjekt.
Einsatzbereiche von künstlicher Intelligenz
Es wird viel über das Thema künstliche Intelligenz gesprochen. Aus Testsicht gibt es zwei Ansätze. Einmal hat man irgendwo KI-Software, die getestet werden soll. Andererseits ist es der Einsatz von KI für das Testen. Habt ihr euch in einem Zukunftsgedanken in der Richtung beschäftigt?
Ja, dabei spielen genau diese zwei Perspektiven eine Rolle. Wir sind in beiden Feldern damit konfrontiert. Wir haben hier einerseits ein Forschungsprojekt am Laufen, wo es um Tests von KI-basierten Agrarmaschinen geht. Das ist erstaunlicherweise eines der ersten tatsächlichen Einsatzfelder autonomer Maschinen. Auf dem Feld geradeaus fahren ist unkritisch. Die ganze Integration der Systeme ist ein Thema, sowie, wie man die KI-Anteile daran testet. Die Systeme sollen lernen, wie stark man düngen muss, wo das Optimum ist etc. KI zum Testen ist für uns primär im Bereich autonomes Fahren sichtbar. Da versucht man, mit unterschiedlichen neuen Methoden die Testfallexplosion und die Komplexität in den Griff zu bekommen. Dafür sieht man auch KI-basierte Algorithmen an, die aus der potentiell unendlichen Menge an Szenarien zu selektieren helfen.
Veränderungen Entwicklungs- und Testprozesse
Neben dem technologischen Aspekt gibt es auch die Prozesssicht darauf, wie sich Entwicklungs- und Testprozesse ändern. Hast du eine Idee, in welche Richtung es da weitergeht?
Es wird bedeutend weiter Automatisierung sein, die vielleicht auch einfacher werden wird. Du hast gerade das Keyword Based Testing Buch gelesen. Bis 2050 ist die Idee, dass der nicht ITler Prozessschritte oder Testabläufe zusammenklicken kann, sicherlich Gang und Gäbe. Beim autonomen Fahren wird das Testen und Simulieren verschwimmen. Simulationen hat man im Bereich Automotive bisher eingesetzt, um aus Sicht der Entwicklung zu simulieren, wie sich der Prototyp in diesen Richtungen verhält. Das wird jetzt viel stärker mit Tests, Validierung und Absicherung zusammenfallen, da man es sich nicht leisten kann, in einer Million verschiedener Anläufe über die gleiche Kreuzung zu fahren.
DevOps und Agile
Alle machen im Moment DevOps und Agile. In welcher Richtung geht es da aus Sicht der QS-Brille weiter?
Wie du sagst, funktioniert das wunderbar und das wird auch fixer Bestandteil bleiben. Kürzlich stieß ich beim Lesen auf unserer Website auf das Thema V-Modell, das aus meiner Sicht keine große Bedeutung mehr hat. An den Stellen, wo noch nach V-Modell gearbeitet werden muss, versucht man immer einen Hybrid zu nutzen, um an manchen Stellen den DevOps-Gedanken zu leben, sprich möglichst schnell ins Deployment zu kommen und es durchzuautomatisieren. Anders geht es meiner Meinung nach gar nicht mehr.
Empfehlungen für Software Tester und Test-Manager
Es sind eine Menge Herausforderungen und Veränderungen da, die dem Tester und dem Test-Manager und jedem im Testbereich Tätigen bevorstehen. Was empfiehlst du jemandem, der heute gut im Software-Test-Sattel sitzt, um sich vorzubereiten und zukunftsfit zu sein?
Man muss heute schon offen für das sein, was um einen herum passiert. Das Entscheidende ist, mit der technischen Entwicklung auf Ballhöhe zu bleiben. Es ist nicht so wichtig, ob es einen direkt schon betrifft oder nicht. Die Erfahrung ist, dass man denkt, von etwas meilenweit entfernt zu sein und nächste Woche ruft der Kunde an. Ich kann jedem im Software-Testumfeld den Tipp geben, offen zu sein, Interesse daran zu haben und sich selber damit zu beschäftigen, was passiert, auch wenn es momentan im Projekt nicht gefragt ist. Das gilt für Developer und Tester. Die Unterschiede werden da immer weniger. Man sollte zumindest versuchen, die grundsätzliche Funktionsweise des neu sichtbar werdenden grob zu verstehen. Beispielsweise sollte man bei Machine Learning wissen, wie die Algorithmen grob funktionieren und was sie tun, auch wenn man nicht in der Lage ist, so einen Algorithmus zu implementieren. Im Scenario-based Testing ist es ebenso. Man sollte das Schlagwort kennen und wissen, was so ein Scenario ist. Damit geht die kontinuierliche Weiterbildung einher. Foundation Level braucht man beispielsweise immer noch und es ist der Einstieg. Man sieht auch, dass die ganzen Trainings weiter nachgefragt werden. Du wirst als Coach und Trainer auch weiter angefragt, um Leute zu unterstützen. Schön ist der für mich interessante Outcome aus dem Pandemie Dilemma. Traditionelles Training mit Präsenzveranstaltungen gibt es immer noch und wird jetzt auch wieder mehr. Parallel wurde das Online-Training zu einer guten Alternative. Bei Beginn der Pandemie dachte man, das sei eine Not-Hilfe. Jetzt ist es eine zusätzliche, selbstverständliche Lieferform. Zusätzlich bieten wir jetzt eine dritte Lieferform an, das Blended Learning. Dabei bieten wir an, den Kurs nicht drei Tage am Stück zu machen, sondern beispielsweise gestreckt über vier Wochen in einem eigenständig gesteuerten Rhythmus und Tempo. Das ist erst durch den Mix von Online und Onsight möglich geworden. Neue Lernformen spielen eine wichtige Rolle und ermöglichen, müheloser am Ball zu bleiben, da man nicht mehr gezwungen ist, genau nach einem extern vorgegebenen Zeitplan zu handeln.
Ich empfinde das Zusammenwirken von der Pandemie und den technologischen Veränderungen nicht nur als negativen Impact. An diesem Punkt schließt sich der Kreis und wir kommen wieder zurück zum Beginn und dem Blick in die Zukunft. Ein Impact ist beispielsweise auch eine Pandemie, die alles über den Haufen wirft. Im Rückblick ist das oft genau der Punkt, wo man von einem Pfad auf den anderen wechselt und ganz andere Sachen entwickelt werden.
Häufig gestellte Fragen
Warum liegen Prognosen über die Entwicklung der IT so häufig daneben?
Weil Menschen die Gegenwart linear fortschreiben und sich die Zukunft als futuristischere Version des Heutigen vorstellen. Sprünge und Disruptionen bleiben dabei außen vor. Zukunftsforschung arbeitet deshalb mit der Szenario-Technik: Man bestimmt die wichtigsten Einflussfaktoren und Megatrends, entwickelt daraus Geschichten und spinnt sie weiter. In den Rückblicken auf solche Studien erwies sich manches als Quatsch, anderes traf ein, und vieles schneller als erwartet.
Was ist mit dem Trendbegriff Structure Ware gemeint?
Structure Ware bezeichnet den Code, aus dem beim Empfänger ein physisches Produkt entsteht. Beim 3D-Druck schickt man scheinbar einen CAD-Plan, tatsächlich aber Software. Weitergedacht kommt statt eines Päckchens eine Struktur ins Postfach, die ein leistungsfähiges Gerät zuhause materialisiert. Was herauskommt, hängt allein von dieser gesendeten Struktur ab, also von Softwarequalität.
Wodurch unterscheidet sich Scenario-based Testing vom klassischen Softwaretest?
Es kehrt das Verhältnis von Testobjekt und Testumgebung um. Klassisch liegt ein Testobjekt vor, von dem es zig Versionen gibt. Beim Scenario-based Testing bleibt das Testobjekt gleich, verändert wird die dynamische Umwelt: Parameter definieren Szenario A, B oder C. Der Tester muss diese Umgebungen modellieren können. Die Methode entstand im Kontext des autonomen Fahrens, Robotik hängt daran.
Welche Rolle spielt künstliche Intelligenz im Testumfeld?
Zwei Richtungen sind zu unterscheiden. KI-Systeme werden selbst zum Testobjekt: 2022 lief bei imbus ein Forschungsprojekt zum Test KI-basierter Agrarmaschinen, einem der ersten realen Einsatzfelder autonomer Maschinen, bei dem Systemintegration und lernende Anteile zu prüfen waren. Umgekehrt helfen KI-basierte Algorithmen beim Testen, aus der potentiell unendlichen Menge an Fahrszenarien sinnvoll zu selektieren.
Warum verschwimmen beim autonomen Fahren Testen und Simulieren?
Weil sich eine Million Anläufe über dieselbe Kreuzung real nicht fahren lassen. Im Automotive-Bereich diente Simulation lange der Entwicklung, um das Verhalten eines Prototyps zu beobachten. Sie fällt zunehmend mit Test, Validierung und Absicherung zusammen. Parallel dazu schreitet die Automatisierung voran, bis hin zu Testabläufen, die auch Nicht-ITler zusammenklicken können.
Hat das V-Modell in Zeiten von DevOps und Agilität noch Bedeutung?
Tilo Linz sah 2022 keine große Bedeutung mehr. Wo noch nach V-Modell gearbeitet werden musste, entstanden Hybride, um an einzelnen Stellen den DevOps-Gedanken zu leben: schnell ins Deployment kommen und durchautomatisieren. Agiles Arbeiten und DevOps beschrieb er als festen Bestandteil, anders gehe es aus seiner Sicht kaum noch.
Wie bleibt man als Tester fachlich auf Ballhöhe?
Indem man sich mit Neuem beschäftigt, auch wenn es im aktuellen Projekt nicht gefragt ist. Die Erfahrung zeigt: Man glaubt sich meilenweit entfernt, und nächste Woche ruft der Kunde an. Es genügt, die grundsätzliche Funktionsweise grob zu verstehen, etwa was Machine-Learning-Algorithmen tun, ohne sie implementieren zu können. Der Unterschied zwischen Developer und Tester wird ohnehin kleiner.


