Künstliche Intelligenz (KI) hat die Qualitätssicherung verändert und wird dies auch weiterhin tun, was bedeutet, dass wir als Tester bereit sein müssen. KI-gestützte Testtools werden sich wiederholende Aufgaben automatisieren, Probleme vorhersagen und die Effizienz und Genauigkeit verbessern. Dies schafft mehr Zeit für kreative Aufgaben, stellt aber gleichzeitig neue Anforderungen an den Tester. Diejenigen, die in der Lage sind, mit KI-basierten Systemen zu arbeiten und vom Testen mit KI zu profitieren, werden gefragt sein. Bei der Testautomatisierung geht es in Zukunft nicht darum, Tester gegen KI auszuspielen, sondern vielmehr darum, wie man mithilfe von KI testet.
Hier sind einige Möglichkeiten, wie Tester bei ihrer Arbeit von KI profitieren können.
Testfälle generieren
Mit KI ist es möglich, Testfälle auf verschiedene Weise zu generieren, und eine gängige Methode ist die Verwendung von maschinellem Lernen (ML). Maschinelles Lernen ist eine Art von KI, die es Computern ermöglicht, aus Daten zu lernen, ohne explizit programmiert zu werden. Beim Testen kann maschinelles Lernen verwendet werden, um etwas über die Software und ihr Verhalten zu lernen. Durch die Analyse des Codes kann KI potenzielle Fehlerquellen identifizieren. Diese Fehlerquellen können dann verwendet werden, um Testfälle zu generieren, die darauf ausgelegt sind, potenzielle Fehler zu finden, bevor sie auftreten.
Ein weiterer Zweig der KI, der es ermöglicht, die Interaktion zwischen Mensch und Computer so weit wie möglich der natürlichen Sprache nachzuahmen, ist die Verarbeitung natürlicher Sprache (Natural Language Processing, NLP). Die Verwendung von NLP bedeutet, dass Tester keine neuen Regeln oder Syntax für verschiedene Programmiersprachen lernen müssen. Die Erstellung und Wartung von Testskripten kann langwierig und zeitaufwändig sein, aber bei der skriptlosen Automatisierung durch NLP werden die Skripte in natürlicher Sprache geschrieben und einer der Vorteile ist die geringe Lernkurve. Im Gegensatz zu den meisten Automatisierungstools, die eine Form von Programmierkenntnissen erfordern. Ein zusätzlicher Vorteil ist das verbesserte Verständnis und die Lesbarkeit, die es allen Rollen im Team ermöglicht, die Testfälle nach Bedarf zu überprüfen. Da einfaches Englisch verwendet werden kann, wird es jedem im Team möglich, Testfälle zu erstellen, und Produktbesitzer oder Projektmanager können eingreifen und die Testabdeckung und -qualität erhöhen.
Durch die Analyse der Benutzerdokumentation und -anforderungen kann die KI potenzielle Benutzerszenarien identifizieren. Diese Benutzerszenarien können dann verwendet werden, um Testfälle zu generieren, die simulieren, wie Benutzer die Software verwenden werden. Da ML aus früheren Testläufen lernt, Ergebnisse analysiert und entscheidende Muster findet, wird es möglich sein, sich wiederholende oder weniger wichtige Testfälle zu finden und die Testsuite zu verbessern.
Visuelles Testen
Anforderungen wie die Bereitstellung einer konsistenten Benutzererfahrung, unabhängig davon, ob ein Benutzer Firefox auf seinem Laptop oder Chrome auf seinem Smartphone hat, sind nicht ungewöhnlich. Darüber hinaus besteht ein wachsender Bedarf für Benutzer, auf Anwendungen auf verschiedenen Geräten wie Tablets und Wearables zuzugreifen. Für Tester kann dies eine unmenschliche Anzahl von UI-Testfällen auf allen Browsern und Geräten bedeuten. Es ist unmöglich, Schritt zu halten, und die Notwendigkeit einer visuellen KI-Verifizierung kann eine geeignete Lösung sein.
Visuelles KI-Testen umfasst das Generieren, Analysieren und Vergleichen von Bildern, um mögliche Änderungen der Pixelwerte, sogenannte „visuelle Unterschiede“, zu erkennen. Ein Testläufer wird benötigt, um visuelle Tests in Kombination mit einem Browser-Automatisierungsframework auszuführen, um das Benutzerverhalten nachzuahmen. Screenshots werden zu festgelegten Zeiten aufgenommen und als erwartete Ergebnisse in zukünftigen Vergleichen verwendet. Während des Testlaufs lösen alle möglichen Änderungen einen Screenshot aus und werden mit dem Referenzbild verglichen. Im Falle einer Abweichung wird der Test als fehlgeschlagen gekennzeichnet und ein automatischer Bericht zur Überprüfung durch die Qualitätssicherung erstellt.
Selbstheilendes und adaptives Testen
KI-gestützte Testautomatisierung kann selbstheilend sein, d. h. sie kann sich an Änderungen in der Software oder Testumgebung anpassen, ohne dass ein manuelles Eingreifen erforderlich ist. Dies ist in agilen Entwicklungsumgebungen wertvoll, in denen häufig Änderungen auftreten. Fehlgeschlagene Tests werden während des Testprozesses entdeckt und viele schlagen aufgrund mangelhafter Wartung fehl. Dies bedeutet, dass die Qualitätssicherung Zeit damit verbringt, Testfehler zu beheben, die stattdessen für die Behebung von Softwarefehlern verwendet werden könnte. Manuelle Testwartung kann auch die Produktentwicklung und -einführung verzögern. Selbstheilende Testautomatisierung reduziert (oder eliminiert sogar) die manuelle Testwartung. Dies führt zu weniger fehlgeschlagenen Tests und einer aktuelleren Ansicht des Teststatus.
Zu oft schlagen Tests aufgrund von Änderungen an Objekten oder ihren Eigenschaften in der Benutzeroberfläche fehl. Hier kommt die KI-gestützte selbstheilende Vorgehensweise zum Einsatz. Objekte können auch nach der Änderung ihrer Eigenschaften erkannt werden, wodurch die Notwendigkeit einer Änderung des Skripts effektiv entfällt.
Anstatt den Test scheitern zu lassen, bearbeitet die KI das Skript automatisch, um es an die neuen Objekteigenschaften anzupassen. Die Selbstheilungsfunktion durchsucht, evaluiert, wählt aus und bearbeitet das Skript bei Bedarf innerhalb von Sekundenbruchteilen. Dies spart Zeit und fügt eine weitere Automatisierungsebene hinzu, um manuelle Eingriffe weiter zu reduzieren.
Zusammenfassung
KI befindet sich in der Entwicklung und hat großes Potenzial, die „traditionellen“ Aufgaben des Testers zu übernehmen, wie z. B. das Erstellen, Ausführen und Warten von Testfällen. KI ist in der Lage, große Datenmengen zu analysieren und umfassende Testszenarien beizutragen, die zu höheren Abdeckungsgraden und einer besseren Identifizierung potenzieller Fehler führen. Genauigkeit und Geschwindigkeit nehmen zu, was zu weniger Fehlern und schnelleren Releases führt. Die neue Ära des KI-basierten Testens führt zu einer erhöhten Produktion und entlastet den Tester. In Zukunft werden Tester nicht „nur“ Tester sein, sondern sollten sich zu strategischen Denkern mit einem tiefen Verständnis sowohl der technischen Aspekte als auch der Anforderungen des Geschäfts entwickeln.
Es mag den Anschein haben, dass der Tester in Zukunft ersetzt wird, aber die menschlichen Fähigkeiten sollten nicht unterschätzt werden. KI ist nur so gut wie die Daten, mit denen sie trainiert wurde, und kann menschliche Intuition oder Kreativität nicht ersetzen. Sicher, sie ist vielversprechend, wenn es um die Automatisierung sich wiederholender Aufgaben geht, aber sie kann das kritische Denken und die Problemlösungsfähigkeiten des Testers nicht ersetzen. KI kann nicht die emotionale Intelligenz beitragen, die erforderlich ist, um das Produkt aus der Perspektive des Benutzers zu verstehen und sich auf die Erfahrung zu beziehen. Diese Einschränkung bedeutet, dass die KI Fehler übersehen kann, die sich negativ auf die Benutzererfahrung auswirken. Die Zukunft der Qualitätssicherung liegt darin, die richtige Balance zwischen KI und menschlichem Testen zu finden, wobei KI-basierte Tools den Tester dabei unterstützen, Aufgaben effizienter und genauer zu erledigen. Tester, die bereit sind, etwas über KI zu lernen und in KI-gestützte Testtools zu investieren, sind gut aufgestellt, um in der Zukunft der Testautomatisierung erfolgreich zu sein.
Paul Singh
Paul Singh ist ein analytischer Problemlöser mit großem Interesse an Technologie, der gerne in Teams arbeitet, da er gerne mit anderen Menschen interagiert. Paul hat unter anderem mit explorativen Tests auf Mobilgeräten und im Internet sowie mit Automatisierung in C# und Selenium gearbeitet.