Blog

KI-unterstütztes Testen: Mythen und Fakten zur künstlichen Intelligenz

Xebia
by  Xebia
18 Mar, 2019
Xebia Background Header Wave

Wir leben im Zeitalter des Time-to-Market-Prinzips. Die Konkurrenz schläft nicht und obwohl man mit Massnahmen aus dem DevOps-Baukasten sowohl Entwicklung als auch Betrieb stetig zu optimieren versucht, kämpft man doch verzweifelt mit immer komplexerer Software, deren Qualitätssicherungsaufwand trotz Automatisierung manchmal kaum noch zu bewältigen ist. Stets wurde seitens der Hersteller vollmundig versprochen, Testautomatisierung schenke wertvolle Zeit, nehme uns Arbeit ab, kaum jemand warnte hingegen vor:

 

  • Der Wartung, die nicht selten in zeitraubend mühseliger Kleinstarbeit gipfelt.
  • End-to-End-Testfällen, die wegen jedes Husters des Webservers scheitern.
  • Langwierigen Analysemarathons mit häufig frustrierendem Ergebnis.
  • Dem ans Absurde grenzenden Aufwand beim Registrieren von GUI-Objekten.

 

Gäbe es doch bloss eine «intelligente Maschine», die all jene Aufgaben übernimmt und uns endlich wieder auf das Wesentliche, nämlich das Testen von Applikationen, konzentrieren lässt. Wer auch immer etwas Derartiges auf den Markt brächte, dürfte an einer verzweifelten Kundschaft, die es einem förmlich aus der Hand risse, ein Vermögen verdienen.

Möglicherweise ist es nun soweit: Dank findigen Mathematikern und kreativen Programmierern stehen die ersten Werkzeuge in den Startlöchern, die mit ihrer scheinbaren Intelligenz für uns in die Bresche springen. Doch bevor wir uns in späteren Episoden meiner Blogserie konkreten Beispielen zuwenden, ist es wichtig, uns zunächst etwas vertieft mit der Materie zu beschäftigen und einige Missverständnisse auszuräumen.

 

HAL 9000

 

Künstliche Intelligenz - Woran denken Sie dabei? Ich behaupte, die meisten von uns beantworteten diese Frage wohl mit der Kontroverse rund um das autonome Fahren, den so genannt «virtuellen Assistenten» wie Apples Siri oder Amazons Alexa sowie dem fiktiven Maschinenwesen «Skynet». Diese Behauptung bestätigte sich, als ich kürzlich die Gelegenheit nutzte, Freunde und Familie zum Thema «KI» auszufragen. Dabei schien mir insbesondere meine eigene Generation stark von Filmen wie «Terminator» geprägt zu sein. Merkwürdigerweise nannte niemand «HAL 9000», jene künstliche Intelligenz, die in Stanley Kubricks epochalem Meisterwerk «2001: A Space Odyssey» «kaltblütig» vier von fünf Menschen an Bord der «USS Discovery One» tötet und seine Taten anschliessend gegenüber Dave Bowman, dem einzig verbliebenen Besatzungsmitglied, mit sanfter Stimme rechtfertigt: «This mission is too important for me to allow you to jeopardize it.»

«Künstliche Existenzen» sind also längst fester Bestandteil der Popkultur, was den typisch menschlichen Argwohn gegenüber Unbekanntem zusätzlich nährt. All die für Hollywood so typischen Geschichten haben der Gesellschaft leider eine völlig verzerrte Vorstellung davon vermittelt, was die Wissenschaft auf diesem Gebiet bisher tatsächlich erreicht hat.

 

Künstliche Intelligenz - Was bedeutet das eigentlich?

 

Diese Frage alleine stellt ein Dilemma dar, weil nämlich schon nur der Begriff Intelligenz als solches bestenfalls schwammig definiert ist1. Beziehen wir uns auf Künstliche Intelligenz als Teilgebiet der Computerwissenschaften, wird dieses als «die Lehre der Automatisierung intelligenten Verhaltens, sowie des maschinellen Lernens» beschrieben. Die Vertreter jener Lehre teilen ihr Fachgebiet wiederum in zwei Hauptkategorien auf, sogenannt «schwache» sowie «starke KIs»2. Während den vergangenen rund zwanzig Jahren geisterte der Begriff KI vermehrt durch die Medien und den allgemeinen gesellschaftlichen Diskurs. Nicht zuletzt aufgrund etlicher Projekte im Bereich des autonomen Fahrens, wie sie Google und Konsorten sehr öffentlichkeitswirksam vorantreiben. Leider hat auch ebendiese Aufmerksamkeit dafür gesorgt, dass allem Anschein nach viele Menschen glauben, es gäbe bereits Vertreter der oben erwähnten «starken KIs», also vollständige maschinelle Nachbildungen jener physischen Prozesse, die kognitive Fähigkeiten wie Denken, Lernen oder Problemlösen ermöglichen. Dem ist allerdings NICHT so. Wir werden uns womöglich noch sehr lange gedulden müssen, bis wir auf echte Durchbrüche auf diesem Gebiet hoffen dürfen!

 

Starke und schwache KIs

 

Was bisher aber mit recht beeindruckendem Erfolg zustande gebracht wurde, sind Maschinen, die unter die Kategorie der schwachen KIs fallen. Dabei handelt es sich in den allermeisten Fällen um regelbasierte Systeme, die letztendlich aber immer nur höchstens teilweise «intelligent» sind. Wir kommen täglich mit Beispielen schwacher KIs in Kontakt:

 

  • Das Navigationssystem Ihres Autos
  • Der SBB-Fahrplan
  • Googles Suchmaschine

 

Schwache KIs können auch äusserst komplex sein!

 

Selbstfahrende Autos, so aufwändig aufgebaut sie auch sein mögen, gehören ebenso zu den schwachen KIs, die im Grunde genommen alle auf vordefinierten Regelwerken und Verhaltensweisen basieren, die «intelligentes Verhalten» lediglich imitieren. Nichtsdestotrotz gelang es zum Beispiel IBM mit zwei Vertretern besonders komplexer schwacher KIs die Öffentlichkeit schwer zu beeindrucken. Nachdem er sich 1996 noch geschlagen geben musste, verpasste der zwischenzeitlich weiter optimierte «Deep Blue» nur ein Jahr später als erster Computer überhaupt dem damaligen Schachweltmeister Garri Kasparow unter regulären Turnierbedingungen die Niederlage seines Lebens. Was zunächst einigermassen ausgeglichen begann, endete mit dem moralischen Zusammenbruch der russischen Schachlegende. Einem Gegner, der rund 200 Millionen Stellungen PRO SEKUNDE zu berechnen vermag, war selbst er nicht gewachsen. «Deep Blue» konnte allerdings nicht dynamisch auf die Züge seines Gegners reagieren, so verfügte er lediglich über eine Datenbank unzähliger berühmter Partien und wurde vom Entwicklerteam während des Wettkampfs ständig optimiert und feinjustiert. «Deep Blue» habe mit unfairen Mitteln gewonnen, hiess es.

 

IBM fühlte sich herausgefordert und liess «Deep Blues» jüngeren Bruder «Watson» 2011 in der Quizsendung «Jeopardy» gegen zwei Rekordgewinner antreten. «Watson» arbeitete dabei völlig selbstständig, seine nervösen Schöpfer sassen unbeteiligt im Publikum. Am Ende trat ein, was kaum jemand erwartet hatte. «Watson» stampfte seine menschlichen Kontrahenten in Grund und Boden. IBMs Maschine war in der Lage, das abstrakte, gesprochene Wort zu verstehen, Zusammenhänge zwischen Unmengen an Informationen dynamisch herzustellen, Erkenntnisse daraus abzuleiten, verschiedene Möglichkeiten gegeneinander abzuwägen und sich letztendlich für die plausibelste Antwort zu entscheiden. Eine «lernende Maschine» also. Auf einmal war ein bisher wenig bekannter Begriff in aller Munde: «Machine Learning»

 

Watson bei Jeopardy

 

«Machine Learning» – Was darf ich mir darunter vorstellen?

 

Unter diesem Begriff werden allerlei Themen wie z.B. «neuronale Netze» oder «Deep Learning» zusammengefasst, auf die einzugehen, den Rahmen deutlich sprengen würde. Im weitesten Sinne geht es darum, einem Rechner beizubringen, Aufgaben mit Hilfe aus Daten gezogenen Erkenntnissen zu bewältigen, statt ihn wie bisher, gezielt für konkrete Aufgaben zu programmieren. Die Maschine soll nicht stupid Dinge auswendig lernen, sie soll Muster und Gesetzmässigkeiten in den Daten erkennen und verallgemeinern. Kurz gesagt, geht es um die «Generierung von Wissen aus Erfahrung»3.

 

«Watson», der inzwischen zu einem medizinischen Diagnostiker umfunktioniert wurde, kann auf eine wahrhaft gigantische Datenbank aus unzähligen Krankenakten zurückgreifen. Übergibt man ihm die persönlichen Informationen eines Patienten, seine Symptome, seinen Krankheitsverlauf etc., versucht er darin Muster zu erkennen, vergleicht diese anschliessend mit all den ihm zur Verfügung stehenden Krankenakten und wägt die gezogenen Erkenntnisse dann so lange gegeneinander ab, bis er schliesslich die Entscheidung trifft, an welcher Krankheit der Patient WAHRSCHEINLICH leidet und wie man ihn behandeln könnte. Je grösser die Menge an Erfahrungen, aus denen er schöpfen kann, desto genauer kann er diagnostizieren. Google geht sehr ähnlich vor, wenn es um die Wahl der Werbung geht, die dem Benutzer angezeigt werden soll. Anhand des Nutzerverhaltens werden die Interessen des Anwenders heuristisch ermittelt.

 

«Machine Learning» - Inwiefern hilft mir das denn nun beim Testen?

 

Wie bereits zu Beginn des Beitrags angesprochen, leidet die Qualitätssicherung unter ständig zunehmendem Aufwand. Dinge, die bisher nicht automatisiert werden konnten, weil sie über das reine, stupide Abarbeiten von Volumenaufgaben hinausgehen, können nun auf einmal doch dem Rechner überlassen werden, denn neuartige Testautomatisierungswerkzeuge sind dank KI-unterstützten Techniken wie Mustererkennung und erfahrungsbasiertem Lernen in der Lage, selbstständig:

 

  • Grafische Benutzeroberflächen zu analysieren, um relevante Objekte zu registrieren.
  • Anhand der gefundenen Objekte abzuschätzen, welche Testfälle in welcher Anzahl für die geforderte Testabdeckung notwendig sind.
  • Gewisse Wartungsarbeiten an existierenden Skripten vorzunehmen.
  • Optische Veränderungen am Layout einer Maske oder einem generierten Dokument aufzudecken.

 

Die Möglichkeiten beschränken sich allerdings keineswegs auf die Testautomatisierung. Potentielle Einsatzgebiete sind auch:

 

  • Die Erzeugung von Testberichten anhand erkannter Muster in Unmengen an Testresultaten, die einem Menschen möglicherweise nie oder viel zu spät auffielen.
  • Die erfahrungsbasierte Auswahl und Priorisierung von Regressionstestfällen.
  • Risikobasiertes Testen in verlässlichen Zahlen ausdrücken.

 

Auf einige der obenerwähnten Punkte werde ich in weiteren Artikeln gezielt eingehen. Bereits jetzt aber steht fest: Der Einsatz «künstlicher Intelligenz» bietet der Softwarequalitätssicherungsbranche bisher ungeahnte und enorme Chancen, aber ergreifen müssen wir sie schon selber!

Einmal haben wir ChatGpt auf die Probe gestellt und es gebeten eine Rest-API automatisiert zu testen inklusive Code-Erstellung. Was dabei rausgekommen ist können Sie hier nachlesen.

Questions?

Get in touch with us to learn more about the subject and related solutions