Skip to main content
Suchergebnisse
Entschuldigung, wir haben nichts zu diesem Suchbegriff gefunden.
Entschuldigung, wir können Ihre Suchanfrage zurzeit nicht bearbeiten. Bitte versuchen Sie es später noch einmal.
Vorschläge für Suchanfragen

Quality Engineering: 6 Trends im Softwaretest, die Ihr Unternehmen in den nächsten 12 Monaten voranbringen

Christophe Barrucq, Head of Technology Services bei Expleo in Frankreich, arbeitet seit 25 Jahren in der vordersten Reihe der Qualitätssicherung. Von Testautomatisierung bis hin zur generativen KI berichtet er über die neuesten Entwicklungen in dieser für die Softwareentwicklung entscheidenden IT-Disziplin.

#1. Der Erfolg von KI-Softwaretests

Die bedeutendste Neuerung im Bereich der Qualitätssicherung in den letzten fünf Jahren ist die Integration der generativen KI-Technologie in den Testprozess. Die Entwicklung, die wir heute in QA-Tools sehen, übertrifft alle Erwartungen – und sie wird weiterhin exponentiell fortschreiten. So können wir beispielsweise heute genau vorhersagen, wo im System bestimmte Fehler auftreten werden. Plug-in-Tools erlauben es, präzise Prognosen zu erstellen. Durch maschinelles Lernen lernt das Modell die zu testende Anwendung kennen und kann nach nur drei Iterationen erkennen, wo ein Fehler in der Softwareentwicklung auftreten wird. Auf diese Weise können Defekte vermieden werden, bevor sie auftreten, und dies bei einem geringeren Zeit- und Kostenaufwand.

FAST FACT

weniger Zeit- und Arbeitsaufwand dank KI-basierter Softwaretests
0 %
Wie funktioniert das in der Praxis? Nehmen wir an, Sie sind dabei, eine Versicherungsanwendung zu entwickeln und benötigen eine Funktion, die es einem Kunden erlaubt, einen Schadensfall geltend zu machen. Der Kunde hat einen Autounfall und möchte am nächsten Tag ein Ersatzfahrzeug gestellt bekommen. Diese neue Funktionalität erfordert eine neue Entwicklung im nächsten Sprint oder in der nächsten Version der Software. Sie definieren die Anforderungen und schreiben den Code. Wie wird sich das auf den Rest des Systems auswirken? Das KI-Tool hilft dabei, mögliche negative Auswirkungen auf andere Funktionen in der gesamten Anwendung zu erkennen. Früher mussten Sie manuelle Regressionstests am System durchführen und anschließend Änderungen vornehmen. Oder man konnte Heuristiken und Wahrscheinlichkeiten verwenden, um die Auswirkungen vorherzusagen. Beide Ansätze sind jedoch zeitintensiv und erfordern eine umfangreiche Überprüfung der Systemkomponenten. Jetzt wird dies durch KI automatisiert und die Berechnungen erfolgen in Sekundenschnelle. In Bezug auf die Produktivität kann dieses Tool 40 % des Aufwands reduzieren, so dass der Tester mehr Zeit für explorative Aktivitäten aufwenden kann.

#2. QA braucht mehr IQ denn je

Auch wenn die Technologie sich weiterentwickelt hat, erfordern generative KI-Tools wie ChatGPT nach wie vor einen kritischen Denker, der die Schwachstellen beseitigt. Nur das menschliche Urteilsvermögen kann die notwendigen Anforderungen des Systems beurteilen. Denn Softwareprogramme werden schließlich für Menschen entwickelt, nicht für KI-Roboter. Verstehen Sie mich nicht falsch – generative KI-Tools werden in Zukunft eine entscheidende Rolle spielen, und sie entwickeln sich rasant weiter. Allerdings ist Quality Engineering eine Disziplin, die immer noch in hohem Maße von den Fachkenntnissen und der Erfahrung der Tester profitiert.

Tester brauchen ein Verständnis dafür, wie es um die Qualität einer Applikation bestellt ist, und das erfordert echtes Urteilsvermögen. Sie müssen ein Gefühl für die Qualitätsmerkmale entwickeln. Nur dann können sie einen guten Testentwurf erarbeiten. Das setzt Kompetenz und Fachwissen voraus, um diese Aufgabe erfolgreich zu bewältigen.

Informationssysteme, APIs und Microservices erfordern fortschrittliche Tests auf Integrations- und Systemebene. Diese sind oft kompliziert, und es gibt keine eindeutige Vorgehensweise oder ein ultimatives Tool, um sie erfolgreich durchzuführen. Man braucht sehr viel Erfahrung, um die Software-Architektur oder eine soziale Organisation zu verstehen. Denn es handelt sich um ein vernetztes Informationssystem, und nicht nur um ein einziges technisches System.  

Testerfahrung zählt oft mehr als reines Fachwissen in der Softwareentwicklung, denn es muss die Gesamtkonfiguration des Systems erfasst werden. Man muss den Business Case eines Informationssystems richtig einschätzen können. Ist es die Performance? Ist es funktionale Relevanz? Liegt die erste Priorität auf der Sicherheit oder auf der Benutzerfreundlichkeit? Man wird immer einen gewissen Teil der Qualität einbüßen müssen, wenn man in ein System Qualität integriert, denn man hat nur einen begrenzten Zeitrahmen zur Verfügung.

An dieser Stelle spielt das Feingefühl eine entscheidende Rolle. Versierte Tester führen auf der Grundlage der einzelnen Systemfunktionen kontinuierlich Risikoanalysen durch und berücksichtigen bei ihrer Arbeit die jeweiligen Schwerpunkte. Bei manchen Websites ist das Design weniger wichtig. Entscheidend ist vielmehr die Erreichbarkeit. Nehmen wir zum Beispiel X (Twitter). Die Website ist nicht besonders ansprechend, aber sie ist sehr effizient und vor allem auch sehr schnell. Sie verarbeitet Millionen von Nachrichten, die weltweit in Sekundenschnelle übertragen werden. Die Tester sind hier auf diesen Anwendungsfall ausgerichtet.

#3. Systemtests verbinden IT mit Produktentwicklung

Softwaretests werden häufig mit Webapplikationen in IT-orientierten Branchen wie Banken, Versicherungen, Einzelhandel und Versorgungsbetrieben, die allesamt direkt von ihrer User Experience abhängig sind, in Verbindung gebracht. Die Realität sieht jedoch so aus, dass Tests in sämtlichen Branchen notwendig sind. Die Herausforderungen bei der Bearbeitung von Backend-Systemen, mit denen die Finanz-, HR- oder Supply-Chain-Systeme eines Unternehmens gesteuert werden, sind ähnlich groß wie bei einer Website. Es geht also nicht um spezifische Branchen, sondern es ist immer eine Frage der geeigneten Vorgehensweisen.

Überschneidungen zwischen den beiden Disziplinen – dem Embedded Systems Engineering und dem Application Software Engineering – treten heutzutage häufig auf. Es gibt zahlreiche Beispiele, die mit der digitalen Transformation in vielen Branchen zusammenhängen. Denken Sie nur an die Entwicklung von IoT- und Embedded-Software, die für die Automobilhersteller unerlässlich sind. Sie sind auf Integrationstests angewiesen, um sicherzustellen, dass die Cloud-basierten Backend-Systeme für Over-the-Air-Updates in den vernetzten Fahrzeugen reibungslos funktionieren.

Es sind vier Testtypen, die es zu beachten gilt:

  1. Funktionaler Test: Erfüllt mein System die von mir gestellten Aufgaben?
  2. Nicht-funktionaler Test: Ist mein System ausreichend abgesichert, verfügbar, zugänglich usw.?
  3. Regressionstest: Wird sich meine Lösung auf andere Funktionalitäten in meinem System auswirken?
  4. Bestätigungstest: Wurde ein Fehler erfolgreich behoben?

Außerdem gibt es vier Testebenen für die genannten Testtypen:

  1. Unit-Tests: eine einzelne Code-Zeile
  2. Komponententest: ein Modul mit mehreren Funktionen
  3. Integrationstests: wie sich der Code in das Gesamtsystem integriert
  4. System- (oder Domain-) Tests: Funktioniert das gesamte System?

Zusätzlich zu diesen Tests gibt es auch Benutzerakzeptanztests, mit denen überprüft wird, ob die Geschäftsprozesse den Anforderungen entsprechen.

#4. Quality Engineering ist auf Wachstumskurs

Die Online-Präsenz von allen Unternehmen entwickelt sich ständig weiter. Kundenorientierte Systeme sind für den Umsatz und/oder den Service entscheidend und Unternehmen müssen immer neue Leistungen anbieten, um sich schnell an die Wünsche der Kunden anzupassen. Die APIs müssen jederzeit in Bezug auf Verfügbarkeit, Leistung, Skalierbarkeit und Relevanz überzeugen. Doch wenn man nicht frühzeitig Produktlebenszyklus testen kann, dann kann man auch nicht oft liefern. So einfach ist das.  

Tests sind daher entscheidend für die Bereitstellung neuer Funktionalitäten – und das ist wichtig|, um auf einem wettbewerbsintensiven Markt der Konkurrenz voraus zu sein. (Nennen Sie mir einen Markt, der heute nicht wettbewerbsintensiv ist.) Unternehmen setzen Veröffentlichungstermine für ihre neuen Services fest. Werden diese Termine nicht eingehalten, kann dies zu einer (geschäftlichen) Katastrophe führen. Softwaretests bieten die Möglichkeit diese Risken zu vermindern, denn Produktionsfehler, die die Entwicklung beeinträchtigen, können mit erheblichen Kosten verbunden sein. Je früher man sie entdeckt, desto kostengünstiger ist es, diese zu beheben. Aber es gilt auch die Grundregel: je höher die Reputation in Sachen Qualität, desto höher ist die Kundenzufriedenheit und letztendlich auch der Verkaufserfolg.

#5. Quality Engineering erfindet das (magische) Dreieck Zeit-Qualität-Kosten neu

Einer der wichtigsten Vorteile von QE ist die Tatsache, dass Unternehmen Qualität frühzeitig in eine Lösung einbauen können, so dass sich diese in kritischen Phasen besser testen lässt. Die Validierung von Anforderungen ist ein gutes Beispiel dafür. Bis zu 70 % der Fehler treten in der Anforderungs- und Entwurfsphase auf, und deren Behebung ist erheblich kostengünstiger als eine nachträgliche Überarbeitung oder Regressionstests zu einem späteren Zeitpunkt.

QE widerlegt die traditionelle Vorstellung, dass die Optimierung eines Aspekts Kompromisse bei den beiden anderen Aspekten erfordert. Wenn Unternehmen zum richtigen Zeitpunkt die richtigen Aspekte testen und sich auf die Bereiche mit dem höchsten Risiko konzentrieren, können sie die Anzahl der Fehler reduzieren, die von einer Produktionsphase zur nächsten übergehen.  

Bei der generativen KI geht es darum, den Tester zu unterstützen. Wir müssen agil und schnell sein, da dies die Entwicklungskosten senkt. Verbesserte Qualität spart dann sowohl Zeit als auch Geld.

#6. Die Rolle der Software-Tester ist im Wandel

Tester benötigen heute zwingend Fachkenntnisse zur Automatisierung von Testskripten. Dies ist ein Mindestmaß an Expertise für einen Software-Qualitätsingenieur – was früher nicht immer der Fall war. Auch Skills zur Softwareentwicklung sind von Vorteil, da Testprozesse in die Continuous Integration und Continuous Deployment (CICD) Pipeline integriert sind. Denn die Gesamtentwicklung wird heute im Rahmen von DevOps und Agile durchgeführt. Die meisten Tester verfügen daher über Kenntnisse der Softwareentwicklung, aber man trifft nur selten einen Softwareentwickler, der auch vollumfänglich versteht, wie man testet.

Man kann mit gutem Gewissen sagen, dass das Testen im Vergleich zur Softwareentwicklung bislang eine untergeordnete Funktion eingenommen hat. Unter den Entwicklern galt der Grundsatz, dass Tester keine Ingenieure sind. Tester legen nur Steine in den Weg und schicken Codefehler zurück, die die Arbeit verlangsamen. Ich bin da anderer Meinung, aber so wurden wir angesehen.  

Die Dinge ändern sich. Quality Engineering wird immer beliebter, und die Tester setzen immer anspruchsvollere Technologien ein. Testautomatisierung ist eine technisch komplexe Aufgabe und wird als wichtiger Beitrag im Entwicklungsprozess gewertet. In der risikoreichen Welt von kontinuierlicher Entwicklung sind Tester oft die Superhelden, die den Tag retten (und nebenbei viel Zeit und Geld).

Es gibt eine wachsende Testcommunity in Europa, die Spaß an Ihrer Arbeit hat, kreativ ist und uns unterstützt. Vor allem in Frankreich erlebe ich viele Veranstaltungen rund um das Testen. In Start-ups und in den USA genießen Qualitätsingenieure traditionell ein höheres Ansehen, weil sie oft besser in das Team integriert sind und ihre Perspektive stärker in die Software einbringen können.

Die Missverständnisse zwischen Entwicklern und Testern nehmen heute jedoch ab. Der Prozess wird durch die Zusammensetzung von Teams mit mehr Allroundern, die eine Reihe von unterschiedlichen Aufgaben übernehmen können, kompakter. Sogar die Bezeichnung „Tester“ wird kaum noch benutzt. Unternehmen, die das richtige Mindset an den Tag legen, stufen ihre Experten nicht in eine bestimmte Kategorie ein: Sie sehen sie einfach nur als Teil eines Teams für die Softwareentwicklung. Alle arbeiten an demselben Ziel. Ich bin mir sicher, dass dies in Zukunft zur allgemeinen Praxis gehören wird.   

Die Qualitätssicherung ist ein idealer Beruf für jemanden, der gerne seine beiden Gehirnhälften einsetzt, da man sowohl exakt schreiben als auch gut rechnen können muss. Die Beschäftigung mit Worten war schon immer ein attraktiver Teil meines Berufsbildes. Als Tester hat man sowohl mit Informationen als auch mit Technologie umzugehen. Die Leute vergessen schnell, wofür das ‚I’ in IT steht.  

Die Menschen, die Software entwickeln sind genauso wichtig wie die Menschen, die sie benutzen werden. Laut einer Theorie ist die Technologie ein Spiegelbild der Menschen, die sie entwickelt haben – und ich denke, das macht Sinn. Wenn Sie also ein schwaches Team beschäftigen, werden Sie am Ende auch ein schwaches System vorfinden. Und großartige Teams werden großartige Projekte liefern. Das finde ich sehr motivierend.  

Haben Sie Interesse, bei Expleo als Testexperte einzusteigen?