#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
#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:
- Funktionaler Test: Erfüllt mein System die von mir gestellten Aufgaben?
- Nicht-funktionaler Test: Ist mein System ausreichend abgesichert, verfügbar, zugänglich usw.?
- Regressionstest: Wird sich meine Lösung auf andere Funktionalitäten in meinem System auswirken?
- Bestätigungstest: Wurde ein Fehler erfolgreich behoben?
Außerdem gibt es vier Testebenen für die genannten Testtypen:
- Unit-Tests: eine einzelne Code-Zeile
- Komponententest: ein Modul mit mehreren Funktionen
- Integrationstests: wie sich der Code in das Gesamtsystem integriert
- 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.