Softwaretest

Künstliche Intelligenz für den Softwaretest

30. Mai 2023, 6:00 Uhr | Von Igor Kirilenko
© AddMeshCube|stock.adobe.com

Der Test von Code spielt eine entscheidende Rolle, wenn es darum geht, Software zu entwickeln, die sowohl Compliance-Standards als auch Qualitätsanforderungen entsprechen muss. Mit dem Einsatz von KI lassen sich robuste Softwaretests realisieren und Verbesserungen im Entwicklungsprozess erzielen.

Diesen Artikel anhören

Nach einem Bericht von Statista soll die Zahl der weltweiten Entwickler von 24,5 Mio. im Jahr 2020 auf 28,7 Mio. in 2024 ansteigen. Damit einher geht ein Anstieg bei Software-Releases, der wiederum die Notwendigkeit zur Automatisierung von Softwaretests antreibt. Im Zuge von Softwaretests lassen sich Laufzeitfehler, Skalierbarkeitsprobleme, Sicherheitsschwachstellen und vieles mehr entdecken und beheben. Weil der Testprozess in der Regel sehr anspruchsvoll ist, wird eine Automatisierung erforderlich. Hier kommt KI ins Spiel: Ihre Integration ermöglicht, dass die Testautomatisierung für Software besonders effizient und nahtlos abläuft.

passend zum Thema

KI bei der Testautomatisierung für Software

Mit der Anwendung von KI in Tools für den Softwaretests soll der Lebenszyklus der Softwareentwicklung (SDLC, Software Development Life Cycle) vereinfacht werden (Bild 1). Durch die Einbeziehung von logischem Denken zur Problemlösung und in einigen Fällen auch maschinellem Lernen (ML) kann KI dazu beitragen, banale und langwierige Aufgaben in der Entwicklung und beim Testen zu automatisieren und zu reduzieren. Natürlich verfügen die Tools zur Testautomatisierungs bereits über KI, aber sie haben ihre Grenzen. In der Softwareentwicklung kann KI dann glänzen, wenn sie diese Einschränkungen aufhebt. Ihr Wert steigt, je mehr sie die direkte Beteiligung des Entwicklers oder Testers an den alltäglichsten Aufgaben senkt.

Künstliche Intelligenz und Machine Learning eröffnen für alle Ebenen des Software- tests Vorteile
Bild 1. Künstliche Intelligenz und Machine Learning eröffnen für alle Ebenen des Software- tests Vorteile.
© Parasoft

Der Bedarf an menschlicher Intelligenz bei der Anwendung von Geschäftslogik, strategischem Denken, kreativen Ideen und dergleichen ist immer noch groß genug. Beispielsweise führen die meisten, wenn nicht sogar alle Tools zur Testautomatisierung Tests aus und liefern Ergebnisse. Aber sie wissen nicht, welche Tests sie laufen lassen sollen, darum führen sie alle oder eine vorgegebene Gruppe von Tests durch. Wie wäre es, wenn ein KI-fähiger Bot den aktuellen Status der Tests, die jüngsten Codeänderungen, die Codeabdeckung und andere Metriken überprüfen und dann entscheiden könnte, welche Tests notwendig sind, und diese ausführt?

Die Entscheidungsfindung auf der Grundlage sich ändernder Daten ist ein Beispiel für die Anwendung von KI. Führende Unternehmen wie Parasoft beherrschen automatisierte Softwaretests auf dieser Ebene.

Wie ML die KI verbessert

Maschinelles Lernen kann die KI verbessern, weil es Algorithmen anwendet, mit denen sich das Tool automatisch verbessern kann, indem es große Mengen an Daten sammelt, die durch Tests erzeugt werden. Als Teilbereich der allgemeinen KI-Forschung konzentriert sich die ML-Forschung auf das Entscheidungsmanagement auf der Grundlage von zuvor beobachteten Daten. Dies ist ein wichtiger Aspekt der KI insgesamt, denn Intelligenz erfordert eine Anpassung der Entscheidungsfindung, wenn sich das Lernen verbessert.

Bei Softwaretests ist ML jedoch nicht immer notwendig, sondern manchmal lässt sich ein KI-gestütztes Tool am besten manuell auf das Unternehmen abstimmen, das es einsetzt. Dann kann jedes Mal dieselbe Logik und Argumentation angewendet werden, unabhängig vom Ergebnis. In anderen Fällen ist das Sammeln von Daten der Schlüssel zum Entscheidungsprozess. Hier kann ML äußerst wertvoll sein, da es zunächst nur wenige Daten benötigt und sich im Zuge der Datensammlung verbessert oder anpasst. Beispielsweise können Codeabdeckung, Ergebnisse statischer Analysen, Testergebnisse oder andere Softwaremetriken der KI im Zeitverlauf Informationen über den Zustand des Softwareprojekts liefern.

Reale Beispiele für KI und ML im Softwaretest

KI und ML sind wichtige Bereiche der laufenden Forschung und Entwicklung bei Parasoft. Die daraus gewonnenen Erkenntnisse bringen immer wieder neue und spannende Möglichkeiten zur Integration dieser Technologien in die Produkte, wie die folgenden praktischen Beispiele aufzeigen.

Größere Akzeptanz der statischen Analyse durch KI

Eines der Hindernisse für die erfolgreiche Einführung statischer Analysewerkzeuge ist die Verwaltung einer großen Anzahl von Warnungen und der Umgang mit falsch-positiven Befunden in den Ergebnissen. Softwareentwickler, die eine alte oder bestehende Codebasis analysieren, haben mit den anfänglichen Ergebnissen der statischen Analyse zu kämpfen und sind von dieser Erfahrung so abgeschreckt, dass sie keine weiteren Anstrengungen unternehmen. Ein Grund für diese Überforderung ist die Anzahl der Standards, Checkers, Empfehlungen und Metriken, die moderne statische Analysetools bieten.

Softwareentwicklungsteams müssen besondere Qualitätsanforderungen erfüllen. Aber es gibt keine allgemeingültigen Empfehlungen für Prüfprogramme oder Programmierstandards. Jedes Team hat seine eigene Definition von »falsch positiv«, was oft eher »egal« als »das ist technisch falsch« bedeutet. Die Lösung von Parasoft besteht in der Anwendung von KI und ML, um die von statischen Analysen gemeldeten Ergebnisse zu priorisieren und so die Benutzerfreundlichkeit und Akzeptanz solcher Tools zu verbessern.

Parasoft erleichtert die Klassifizierung der Ergebnisse in der Ausgabe eines statischen Analysewerkzeugs mithilfe von KI
Bild 2. Parasoft erleichtert die Klassifizierung der Ergebnisse in der Ausgabe eines statischen Analysewerkzeugs mithilfe von KI
© Parasoft

Die Methode von Parasoft überprüft eine kleine Anzahl von Ergebnissen und erstellt einen Filter (Klassifikator) auf der Grundlage der mit diesen Ergebnissen verbundenen Metadaten (Bild 2). Er basiert auf den Resultaten früherer Einstufungen von Ergebnissen der statischen Analyse im Zusammenhang mit der Unterdrückung irrelevanter Warnungen in der Vergangenheit und der Priorisierung sinnvoller Fundstellen, die innerhalb der Codebasis behoben werden sollen. Die Ergebnisse werden in zwei Kategorien eingeteilt:

  • Von Interesse für das Team zur Untersuchung
  • Elemente, die unterdrückt werden können.

Dies verbessert die Benutzerfreundlichkeit erheblich, da die Entwickler zu den Warnungen geleitet werden, die mit größter Wahrscheinlichkeit auf ihr Projekt zutreffen.

Die Kombination von KI- und ML-Techniken optimiert die Leistung der Entwickler und behebt zugleich wichtige Code-Probleme
Bild 3. Die Kombination von KI- und ML-Techniken optimiert die Leistung der Entwickler und behebt zugleich wichtige Code-Probleme
© Parasoft

Zusätzlich wurde eine Engine zur Erkennung von Hotspots zusammen mit einem fortschrittlichen KI-basierten Modell implementiert, die Verstöße an Entwickler mit den besten Fähigkeiten und Erfahrungen zuweist – basierend auf Vorfällen, die sie in der Vergangenheit behoben haben (Bild 3). So reduzieren diese Innovationen den manuellen Aufwand bei der Einführung und Nutzung der statischen Analyse sofort.


  1. Künstliche Intelligenz für den Softwaretest
  2. Automatisiertes Erstellen und Parametrisieren von Unit-Tests mit KI

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Parasoft Corp.

Weitere Artikel zu Parasoft

Weitere Artikel zu Entwicklungswerkzeuge

Weitere Artikel zu Echtzeit-/Embedded Software