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

Vom Softwaretest zu Quality-Engineering

Aus dem Testen von Software ist eine komplexe technische Disziplin innerhalb des Entwicklungsprozesses geworden. Die Gründe sind vielschichtig, weiß Pankaj Rai Jain von Accenture. Er spricht von einem Software-Qualitäts-Engineering, das sich sehr schnell weiterentwickeln wird. Im Interview teilt Jain einige seiner Vorstellungen davon, wie diese Entwicklung aussehen könnte.

  • 27.11.2020
  • Lesezeit: 13 Minuten
  • 64 Views

Software ist heute allgegenwärtig. Anders als früher finden wir sie nicht mehr nur in den Rechenzentren und auf dem PC, sondern zum Beispiel als App auf jedem Smartphone, in den Haushaltsgeräten des Smarthomes, in modernen Verkehrsmitteln oder in den Maschinen und Robotern der Fabriken.

Diese wenigen Beispiele machen klar: Software muss funktionieren! Fehlerfrei, sicher und performant. Es gibt aber durchaus noch andere Kriterien, die wichtig für den Softwareeinsatz sind. Das sind Eigenschaften wie flexibel, schnell und einfach in Betrieb zu nehmen oder intuitiv nutzbar.

Software spielt eine zentrale Rolle in unserem täglichen Leben. Es ist schwer, sich einen Aspekt des Lebens vorzustellen, der immer noch ohne Software auskommt. Dabei sind die Anforderungen an Software höchst unterschiedlich. Das ist kein Wunder angesichts der Erwartungshaltungen ihrer Nutzer, angesichts der Anforderungen aus allen Ecken einer zunehmend digitalen Welt, angesichts der Einsatzfelder von der Unterhaltung bis hin zu geschäftskritischen und lebenserhaltenden Systemen und angesichts der schieren Menge an Software, die immer schneller produziert und geändert werden muss. All diese Unterschiede und der permanent wachsende Zeitdruck machen das Software-Engineering so kompliziert und das Testen so anspruchsvoll.

Selbst Experten wie Pankaj Jain können nicht exakt vorhersehen, wie die Softwareentwickler in zehn Jahren arbeiten werden. Seiner Meinung nach ist eines jedoch sicher: Das „Softwaretesten“ im nächsten Jahrzehnt wird völlig anders aussehen als heute. Der Grund dafür liegt auf der Hand: Die derzeitigen Methoden der Qualitätssicherung werden nicht ausreichen, um die Qualität zu erreichen, die von einem viel komplexeren, hochgradig integrierten und praktisch grenzenlosen IT-System und all den miteinander verbundenen Produkten verlangt wird. Der Anspruch an die Softwarequalität wächst dabei nicht nur rein funktional, sondern auch nichtfunktional in Bereichen wie Benutzererfahrung, Sicherheit, Datenschutz oder Integrationsfähigkeit.

Das erhöht den Druck auf das Quality-Engineering, denn künftig müssen viel bessere Produkte mit völlig neuen, auch nichtfunktionalen Spezifikationen viel schneller als bisher geliefert werden. All das hat laut Jain gravierende Konsequenzen darauf, wie, was und wann getestet werden muss. Im Interview zeigt er auf, wie dieser Wandel gestaltet werden kann. Das Interview haben wir auf Englisch geführt und veröffentlichen hier eine übersetzte Fassung.

„Der Softwaretest hat sich in den vergangenen vier, fünf Jahren grundlegend gewandelt – und ist zu einem ‚Quality-Engineering‘ gereift!“

Herr Jain, wie würden Sie die Entwicklung des Softwaretestens in den letzten Jahren beschreiben?

In den letzten 5 bis 10 Jahren hat sich Softwaretesten enorm weiterentwickelt. Aus rudimentären Ansätzen entstand eine regelrechte Ingenieurdisziplin. Doch das reicht bei Weitem nicht aus. Das wird allein schon daran deutlich, dass Software heute praktisch überall zu finden ist – nicht nur auf Computern, sondern auch im Auto, in den Küchengeräten und auf unserem Smartphone. Und natürlich in den Fabriken, Krankenhäusern und im Einzelhandel.
Hinzu kommen innovative Technologien wie KI, Blockchain oder IoT. Diese Technologien erfordern jeweils eigene, völlig neue Strategien für den Softwaretest. Nur so können wir uns die möglichen Innovationen auch voll und ganz zunutze machen.

Was heißt das für den Softwaretest?

Der kontinuierliche Fortschritt in der IT macht deutlich, dass wir Software-Ingenieure sehr innovativ bleiben müssen. Wir müssen neue, intelligente Wege, Methoden, Werkzeuge und Techniken finden, um diese Fülle von Software mit nie dagewesener Komplexität effizient testen zu können.

Wir brauchen dazu, wie gesagt, völlig neue Strategien. Diese Strategien müssen sowohl die mit dem Softwareeinsatz verbundenen Risiken senken als auch das Nutzererlebnis sowie die Reaktionszeit verbessern.

„Wir brauchen mehr Tests, wir brauchen bessere Tests, wir brauchen ein übergreifendes Quality-Engineering!“

Sehen Sie bereits neue Strategien beim Softwaretest, Herr Jain?

Oh ja! Es gibt eine Fülle von Verbesserungen bei dem, was ich Quality-Engineering von Software nenne. Ein Beispiel dafür ist automatisiertes Testen, das fest in die Dev-Ops-Pipeline integriert ist. Diese Integration ermöglicht das Anstoßen von Testfällen auf Basis der geplanten Software-Changes. Diese Praxis ist schon weit verbreitet – und nur ein Beispiel von vielen.

Wir sind ja Zeitzeugen des Einzugs moderner KI- und ML(Maschinelles Lernen)-Techniken in den Softwaretest. KI versetzt uns in die Lage, die riesige Menge bekannter Vorgaben und Nutzungsbedingungen, aber auch die Definition und Simulation unbekannter, völlig unerwarteter Ereignisse im Test automatisiert abzudecken.

Wir beobachten die Entwicklung von Techniken zur automatischen Extraktion von Testfällen aus der Softwarespezifikation – und zwar hochautomatisiert mithilfe von Natural Language Processing. Dies sorgt mittlerweile dafür, dass wir automatisch Testfälle generieren, die kleinere Softwareänderungen direkt berücksichtigen.

Inzwischen nutzen wir beim Testen nicht nur virtuelle Technologien wie Robotic Process Automation, sondern auch reale Roboterarme, die mit Software-Testmaschinen arbeiten. Reale und virtuelle Robots werden physische, aber auch funktionale Produkttests weiter automatisieren.

Es ist offensichtlich, dass mit der Anzahl verbundener Systeme und Prozesse auch die Anzahl unvorhergesehener Situationen so schnell wächst, dass sie nicht einmal im Labor simuliert, geschweige denn getestet werden kann. Daher müssen wir die Prozesse der Qualitätssicherung, die Fehlerprognose und -vermeidung verstärkt angehen. Dabei hilft die Analyse der historischen Entwicklungs- und Produktionsdatenprotokolle, denn sie erlaubt frühzeitig die Fokussierung auf die wichtigsten potenziellen Fehlerquellen.

Es geht also um Root-Cause-Detection und -Prevention?

Genau! Daran wird unter Termindruck fälschlicherweise gespart. Das Gegenteil ist richtig: Je früher im Entwicklungsprozess wir Fehler finden und Fehlerursachen ausschalten, desto schneller haben wir eine funktionstüchtige Software. Und desto günstiger wird sie sein. Denn es ist zeitaufwendig und kompliziert, Fehler im Nachhinein auszubügeln. Vor allem dann, wenn die Software schon an die Kunden ausgeliefert ist.

Wie lösen wir das fundamentale Problem von Softwarequalität?

Wir brauchen einen holistischen Ansatz: Quality-Engineering. Das Testen einzelner Systeme reicht in unserer vernetzten Welt nicht mehr aus. Unser holistischer Ansatz berücksichtigt auch, dass sich Umgebungsbedingungen ändern, dass falsche Inputs geliefert werden oder dass die Software unautorisiert verändert werden könnte. All das wird mit zunehmender Digitalisierung und Virtualisierung unserer Welt immer wahrscheinlicher. Genau deshalb sind wir Qualitätsingenieure gefragter denn je. Die Kosten und Auswirkungen von Softwarefehlern sind höher als früher und steigen weiter.

Sie fordern einen holistischen Ansatz für Softwarequalität, Herr Jain. Wie sollte dieser Ansatz aussehen?

Generell werden sich Softwareentwickler eine kundenorientierte Denk- und Arbeitsweise aneignen müssen. Das heißt: Die funktionalen und technischen Risikoprofile einer Software bleiben auch in Zukunft wichtige Inputs für den Test. Zudem wird die Kundenerwartung viel stärker als bisher berücksichtigt. Oft gilt noch die Performanz der Software als die wichtigste Eigenschaft, die der Kunde erwartet. Bei Bankern könnte es aber auch die Sicherheit sein, im Gaming-Sektor die Innovation oder im E-Commerce die User Experience (UX). Die Liste unterschiedlicher Kundenerwartungen ließe sich beliebig verlängern. Eines ist klar: Die beiden Inputs Risikoprofil und Kundenerwartung werden die Qualitätssicherungsaufgaben in Zukunft massiv bestimmen.

„Wir suchen die Schwachstellen im Design und eliminieren sie, bevor sie überhaupt Fehler verursachen können“

Wir sollten außerdem in Zukunft nicht nur auf Mängel in der Software selbst achten, sondern außerdem die Risiken der Inbetriebnahme reduzieren. Wir Software-Ingenieure müssen daher alle Risikoparameter identifizieren und gewichten – und diese Risiken dann möglichst eindämmen. Genau hier muss das Quality-Engineering der Zukunft ansetzen.

Woran machen Sie diese Verbesserungen in Richtung Quality-Engineering konkret fest, Herr Jain?

Zum Beispiel am Automationsgrad. Nehmen Sie nur die Automation der Regressionstests.

Nicht nur die Testausführung, sondern auch die Fehleridentifikation und -dokumentation, die Root-Cause-Analyse, die Klassifizierung und die Verteilung von Fehlern können in der Regel automatisch durchgeführt werden. Der Quality-Engineer kann sich also voll und ganz auf die Gestaltung von neuen Testszenarien und auf die Analyse der Ergebnisse konzentrieren. Zeitraubende Routineaufgaben, wie etwa Beschaffung und Prüfung der Testdaten und Testergebnisse, laufen weitestgehend automatisch ab.

Anderes Beispiel: In der digitalisierten Welt hängen praktisch alle Geschäftsprozesse von reibungslos funktionierender Software ab. Diese Abhängigkeit nimmt mit dem Grad der Digitalisierung ebenso rasant weiter zu wie ungeahnte Abhängigkeiten der Software selbst – etwa von anderen Systemen, von der Hardware oder von unvorhersehbaren Umwelteinflüssen. Darauf müssen wir uns im Quality-Engineering vorbereiten.

„Qualitätsingenieure sind gefragter denn je, denn Softwarefehler können wir uns künftig nicht mehr leisten!“

Wie kann das gelingen, Herr Jain?

Wir müssen neue Formen des Tests von KI-Systemen erarbeiten, solche wie beispielsweise Chatbots, Cross Up-Selling (Verbundverkauf) Empfehlungen und Kampagnenmanagement-Systeme. Das Testen von KI-Systemen, um systematische Fehler zu vermeiden und falsche Ergebnisse zu identifizieren, oder das stetige Training der selbstlernenden Algorithmen stellen neue Herausforderungen für den Softwaretest dar. Damit müssen die Tester umgehen können. Anderes Beispiel: Es kann sein, dass die Software von Menschen genutzt werden soll, die im Umgang damit zuvor nicht geschult worden sind. Auch das müssen wir beim Test berücksichtigen. Die Bedienung der Software muss intuitiver und einfacher werden.

Drittes Beispiel: Die Unternehmen verfügen über enorme Datenmengen. Die Frage ist: Wie können wir daraus aussagekräftige Testdaten generieren? Testdaten, mit denen wir das Fehlerrisiko minimieren und die „Hot Spots“ der Software, an denen Fehler besonders gravierende Konsequenzen hätten, gut und intensiv testen können. Und wie können wir es vermeiden, dass Fehler erst in letzter Sekunde entdeckt werden? Auch hier kann KI unterstützen.

Zu guter Letzt können wir die Qualitätssicherung effizienter gestalten; wurden bei der Softwareentwicklung früher 30 bis 35 Prozent Aufwand für die Qualitätssicherung reserviert, kommen wir heute dank KI und Automatisierung mit 25 Prozent aus – Tendenz weiter sinkend. KI wird uns aber noch viel weiterführen, etwa in containerisierten Softwareumgebungen. Hier versuchen wir, automatisch End-to-End-Testfälle mit KI-Unterstützung zu generieren. Bisher müssen diese Testfälle manuell erstellt werden, was ineffizient und fehleranfällig ist.

Sollte nicht auch das Testen selbst einfacher und agiler werden?

Ja und nein, während der aktuelle Testing Scope einfacher und schneller wird, kommen neue Herausforderungen und gesteigerte Anforderungen hinzu. Das für Testing zur Verfügung stehende Zeitfenster wird aufgrund der agilen Methoden der Softwarebereitstellung immer kleiner. Daher sind neben einer massiven Automatisierung neue Ideen gefragt, wie und was genau getestet werden sollte.

Was die Sache nicht einfacher macht: Betroffen ist ein sehr breites Spektrum unterschiedlichster Softwaretechnologien. Es müssen sowohl Legacy-Systeme als auch völlig neue, sehr innovative Anwendungen getestet werden. Das ist insbesondere bei Transformations- und Migrationsprojekten ein großes Thema, wie bei der Umstellung auf SAP S/4HANA oder der aktuellen Entwicklung, IT-Systeme in die Cloud zu transferieren.

Trotz all dieser Aufgaben müssen die Tester ihre Resultate immer schneller liefern?

Absolut, ja!! Die Zeiten, in denen man uns mehrere Monate für den Durchlauf der notwendigen Testzyklen gewährt hat, sind längst passé. Dank Testautomation kommen wir mittlerweile schon mit Tagen statt Monaten für den Durchlauf aller Testzyklen aus. Doch das reicht in Zukunft nicht mehr aus. Wir brauchen schnellere, intelligentere Tests quasi in Echtzeit – und wir brauchen proaktives Testen von Einsatzszenarien, an die der Entwickler noch gar nicht gedacht hat. Zusätzlich müssen wir in der Lage sein, schnellstmöglich eine Teststrategie für diese zu entwickeln.
Software hat sich in allen Branchen zur disruptiven Größe entwickelt und besitzt das Potenzial, Geschäftsstrategien entscheidend zu beeinflussen. Dieses Potenzial gilt es zu nutzen. Damit Unternehmen aber wirklich nachhaltig intelligenter und weniger störanfällig werden, müssen sie bei Design, Entwicklung und Test ihrer Software völlig neue Wege gehen.

Angesichts der wachsenden Verbreitung von IoT- und KI-Systemen wächst die Bedeutung des Testens weiterhin rasant. Welche Art von Tools, Techniken und Best Practices brauchen wir in Zukunft?

Das Testen von KI-Systemen ist ein sich entwickelnder Bereich. Ein sehr relevantes Thema ist beispielsweise, wie man auf unbewusste menschliche Vorurteile testet, die sich in diese Systeme einschleichen. Wir haben unsere Testplattform für KI-Systeme, „Teach & Test“, die in solchen Szenarien hilfreich ist. Das IoT-Feld ist ähnlich umfassend. Wir müssen die Geräte auf die Genauigkeit der Aktionen, Signale und Daten testen, die zum Zeitpunkt der Installation erzeugt werden, und dann kontinuierlich überprüfen, ob das Gerät weiterhin einwandfrei funktioniert. Und diese Tests müssen wir zum Beispiel bei Geräten durchführen, die physisch nicht erreicht werden können, da die Anwendung von IoT-Geräten von der Kaffeemaschine zu Hause bis hin zu einem Kernreaktor reicht. Ich habe keine persönliche Erfahrung mit IoT-Tests in einem so breiten Szenario, aber ich erlebe, dass Testsysteme zur Simulation von

Geräten und intelligente Produkttests sehr gefragt sind und immer mehr zunehmen. Das Gebiet ist noch sehr neu und entwickelt sich schnell weiter.

Was sind also Ihre Ratschläge und Vorschläge für die Softwaretester, Herr Jain?

Wir brauchen nicht nur mehr Tests, wir brauchen bessere und intelligentere Tests, wir brauchen ein übergreifendes Quality-Engineering! Und ein Verständnis, dass wir mehr als die letzte Verteidigungslinie sind, sondern maßgeblicher Bestandteil des gesamten Prozesses.
Die Qualität der Software kann ein Unternehmen über Nacht zum Erfolg oder zur Schließung führen. Stellen Sie sich nur vor: Ein Fehler bei einer Kreditkartentransaktion oder in der Lieferkette kann eine Bestellung verhindern, ein Fehler im Videokonferenzsystem kann ein wichtiges Gespräch verhindern, ein Fehler in der eingebetteten Software eines medizinischen Geräts kann eine lebensrettende Entscheidung verzögern, ein Fehler im Flugsystem kann viele Menschen in Gefahr bringen. Seien Sie daher sehr stolz auf das, was Sie durch die Vermeidung von Softwarefehlern erreichen.
Die Erwartungen an die Softwarequalität werden immer komplexer und schwieriger zu erreichen. Wir müssen daher ständig innovative Wege finden, um diese Erwartungen zu erfüllen. Ich kann heute nicht sagen, wie wir das machen werden. Nur eines: Es gibt keine Wahl. Wir müssen erfolgreich sein!

Herr Jain, vielen Dank für das Gespräch!

title
Zur Person
subtitle
Pankaj Rai Jain
introduction
Bei Accenture ist Pankaj Rai Jain seit 2004 Geschäftsführer. Außerdem ist er aktuell Leiter des Bereiches Quality-Engineering in Europa. Der erfahrene IT-Experte unterstützt Kunden bei Entwicklung und Umsetzung ihrer IT-Strategien & Globalen IT-Programme. Eines seiner Ziele ist es, für die Kunden mehr Effizienz und Agilität über die reine Automatisierung von Prozessen hinaus zu erreichen. Ihm geht es aber auch darum, die Qualitätskosten zu reduzieren, die Einführung neuer Produkte zu beschleunigen und eine möglichst hohe Qualität der IT-Services auch in komplexen digitalen IT-Landschaften sicherzustellen. Accenture ist ein weltweit tätiges Beratungsunternehmen, führend in Digitalisierung, Cloud und Security. 506.000 Mitarbeitende bringen ihre umfassende Erfahrung und spezialisierten Fähigkeiten in mehr als 40 Branchen und in über 120 Ländern ein. Sie bieten Dienstleistungen aus den Bereichen Strategy & Consulting, Interactive, Technology und Operations – gestützt auf das weltweit größte Netzwerk aus Centern für Advanced Technology und Intelligent Operations.
image
PankajRaiJainvon
. . .


Artikel teilen