3 Min. Lesezeit

Software Test von und mit KI

Künstliche Intelligenz (KI) und Softwaretest sind zwei wichtige Themen der heutigen Software- und Systementwicklung. Die Anwendung mit- oder aufeinander birgt die Chance für enorme Synergien.

Künstliche Intelligenz befindet sich obgleich schon seit Jahrzehnten in der Forschung – in den vergangenen Jahren auf einem sehr medienwirksamen Siegeszug. Alle Aufgaben scheinen lösbar, jede menschliche Intelligenz unnötig, die möglichen Folgen kontrollierbar. Es gibt sehr viele überzeugende Demonstrationen. Ein Beispiel sind KI-gesteuerte Computerspieler, die in Form von Alpha GO den weltbesten GO-Spieler Lee Sedol besiegen. GO ist übrigens deutlich komplexer als Schach und die Spielabläufe sind hier daher ungleich schwieriger vorherzusagen. Andere KI-Anwendungen können zielsicher die Inhalte von Bildern erkennen. Das eröffnet unterschiedlichste Anwendungszwecke von der frühzeitigen Diagnose von gefährlichen Krankheiten bis hin zur Überwachung des öffentlichen Raumes. Aber ist es so einfach?

Hypes

Selbstverständlich wirken die präsentierten Ergebnisse sehr überzeugend. Doch ist der Weg, den die KI zum Erreichen des Ergebnisses gewählt hat, immer wirklich intuitiv? Untersuchungen haben gezeigt, dass einige Bilder beispielsweise nicht anhand der eigentlich abgebildeten Pferde als Pferdebild klassifiziert wurden. Stattdessen anhand des ebenfalls auf vielen Pferdebildern vorhandenen Stückchen Walds. Andere anhand der Signatur des Fotografen (der eben öfter Pferde fotografiert). Somit wurde das Wunder der KI an einigen mit verfrühten Lorbeeren versehenen Beispielen entzaubert. Erinnerungen an das Pferd “Kluger Hans” wurden wach, das nur zum Schein zählen konnte.

Fehlschläge

Darüber hinaus wurden auch Fehlschläge wie der Unfall eines UBER-Fahrzeugs medial ausgeschlachtet, sodass man autonome Fahrzeuge schon bald für eine Gefahr halten musste. Man übersieht dann leicht, dass allein in Brandenburg pro Woche durchschnittlich 2 bis 3 Menschen bei Verkehrsunfällen ums Leben kommen. Hier könnte auch eine nicht ganz perfekte KI durchaus Vorteile bieten. Aber dahinter stehen auch andere Fragen. Entsprechend wird diese Technologie mal übertrieben in den Himmel gehoben und mal verdammt, bevor die Zusammenhänge klar sind.

Ich sehe hier also sowohl im Guten als auch im Schlechten eine Übertreibung. Trotz allen Hypes hat KI sehr viel Potential, auch in sicherheitskritischen Anwendungen. Die Voraussetzung dafür ist natürlich, dass diese Technologie gut abgesichert werden kann.

In diesem Zusammenhang kann man sich etliche Fragen stellen. Ich reiße im Folgenden ein paar davon zu verschiedenen Teilthemen an und biete somit einen Einstieg. Zu tiefergehenden Fragen ist die Wissenschaft, wie gesagt, seit Jahrzehnten mit Fragen rund um dieses Thema beschäftigt.

Bewertung der KI

Zunächst spielt Statistik hier eine große Rolle und wird zur internen Bewertung von Situationen, Bildern usw. herangezogen. Mithilfe der Konfusionsmatrix können Vorhersage und Realität für binäre Klassifikatoren bewertet werden: Was wird korrekt vorhergesagt? Wo und wie irrt die KI?

Für die Bewertung dieser Resultate gibt es verschiedene Mittel. Zum Beispiel das harmonische Mittel aus Genauigkeit und Sensitivität, auch F1-Score genannt. In jedem Fall ist klar, dass die dem Ergebnis beigemessene Bedeutung je nach Domäne unterschiedlich ausfällt. So ist beispielsweise die fehlerhafte Diagnose auf Existenz eines (tatsächlich nicht vorhandenen) Tumors nicht so schlimm. Das Nichterkennen eines (tatsächlich vorhandenen) Tumors für die Lebenserwartung des Patienten aber sehr wohl.

Test-Know-how

Weiterhin stellt sich dem geübten Tester natürlich noch eine Frage: Welche der ihm bereits seit vielen Jahren bekannten Bordmittel aus dem Bereich der Qualitätssicherung hier anwendbar sind.

  • Sind White-Box-Testverfahren überhaupt sinnvoll oder ähnelt das eher den noch umstrittenen Versuchen zur Bestimmung von menschlicher Intelligenz?
  • Ist es sinnvoll, den Test in verschiedene Teststufen zu unterteilen, wie wir es vom V-Modell kennen? Für komplexe Systeme, die einen oder mehrere auf KI basierende Algorithmen im Inneren verbergen, ist dies durchaus sinnvoll. Ist das auch für das Maschinenlernen mit einer Vielzahl an Zwischenschichten sinnvoll? Das führt in Richtung Erklärbarkeit der Implementierung.
  • Worauf achten wir beim Test eigentlich? Geht es nur darum, dass der Algorithmus bessere Ergebnisse erzeugt als der Vorgänger oder unterteilen wir etwas genauer? Nach funktionalen Tests und nicht-funktionalen? Wie sieht es mit IT-Security aus? Schon minimale Änderungen an der Gestaltung von Verkehrszeichen können Auswirkungen haben: wenn ein autonomes Fahrzeug die “30” auf einem kmH-Schild als “80” interpretiert und entsprechend schwungvoll durch die Stadt fahren will. Ebenso katastrophal können Auswirkungen von inkonsistenten Situationen wie das Stoppschild auf der Autobahn sein.
  • Weiterhin stellt sich die Frage, wann das selbstlernende System eigentlich wirklich lernen darf? Permanent im Einsatz? Dann könnte ein selbstfahrendes Fahrzeug eines Pendlers sehr bald auf die Eigenheiten der täglichen Strecke trainiert sein. Der Rest wird “vergessen”. Oder sollte die KI doch eher nur im Service oder in der Entwicklung lernen dürfen? Was sind Beschränkungen in Abhängigkeit von der Anwendungsdomäne?

KI für den Test

Auf der anderen Seite verlockt uns Tester natürlich ein anderer Gedanke, nämlich die unbegrenzten Möglichkeiten der Künstlichen Intelligenz auch für den Softwaretest selbst zu nutzen. Auch hierfür gibt es interessante Entwicklungen. Als ein Anwendungsbereich sticht der Performanztest ins Auge. Dabei kann die KI in Abhängigkeit der Eingabedaten Auffälligkeiten im Systemverhalten und der Systemlast erkennen. Diese Beobachtungen könnten genutzt werden, um das System näher und näher an die Belastungsgrenze zu führen oder darüber hinaus.

Das Finden von Ähnlichkeiten und Gemeinsamkeiten kann in vielen weiteren Feldern Anwendung finden. Für Fehlermeldungen, Testspezifikationen, Log-Dateien des Testobjekts, die Generierung von Testdaten basierend auf Datenformatbeschreibungen oder Testabläufen basierend auf der Codeanalyse. Ein weiteres spannendes Thema ist der Einsatz einer KI als Testorakel. Hierbei stellt sich noch eine Frage: kann eine KI, die als Testorakel dient, nicht auch gleich als zu testendes System genutzt werden? Und kann sie es sogar besser als das Original? Darüber hinaus stellt sich auch gleich die Frage nach den Grenzen: welche Entscheidungen können und wollen wir einer KI überlassen? Manch einer fühlt sich hier an das Trolley-Problem erinnert. Dieses ist schon für Menschen unlösbar oder zumindest meist nur schwer rechtfertigbar. Wenn ein tödlicher Unfall unvermeidlich ist und man den Ausgang noch beeinflussen kann, wer darf leben und wer muss sterben?

Diese und weitere Gedanken sind ein Einstieg in diese hochinteressante Thematik. Sie ist gerade wirtschaftlich sehr interessant und wird noch viele spannende Jahre vor sich haben.

1 Min. Lesezeit

Qualität und Testen im SAP-Umfeld

SAP, das etwas andere IT-System SAP unterscheidet sich grundlegend von anderen IT-Systemen durch seine Komplexität, den Integrationsgrad und die...

Weiterlesen

Modellierungsmetriken für UML-Diagramme

UML-Quantitäts-Metriken Quantitäts-Metriken sind Zählungen der im UML-Modell enthaltenen Diagramm- und Modelltypen. Die Modelltypen werden weiter...

Weiterlesen

1 Min. Lesezeit

Gut sein, besser werden

Es ist unbestritten: der strukturierte Software-Test hat sich als Profession in der IT-Branche etabliert. Nicht zu testen kann sich kaum noch ein...

Weiterlesen