Künstliche Intelligenz und ihre Auswirkungen auf die Software-Entwicklung Reaktiver und besser integriert
4. Mai 2023Seit seinem Debüt Ende 2022 hat ChatGPT die Welt im Sturm erobert und die Fantasie zukunftsorientierter wie risikoscheuer Menschen gleichermaßen beflügelt. Parallel dazu hat die Veröffentlichung wichtige und zum Teil überfällige Diskussionen zum Thema künstliche Intelligenz (KI) insgesamt befeuert – über positive Einsatz- und Anwendungsmöglichkeiten, negative Auswirkungen und ethische Fragen. Die Technologie wird zweifelsohne für so gut wie alle Branchen revolutionär sein, vor allem aber für die Software-Entwicklung.
KI wird die Art und Weise verändern, wie Informationen im Lebenszyklus der Software-Entwicklung generiert werden, wie sie fließen und wie man mit diesen Informationen umgeht. Der verbesserte Informationsfluss und die höhere Transparenz wirken sich positiv auf die Software-Entwicklung aus, und setzen Potenziale frei
Anstatt für das Testen und Freigeben einer Codezeile annähernd zwei Wochen zu brauchen, erlauben intelligente Werkzeuge sehr viel schnellere und effizientere Abläufe. Es ist angesichts dessen nicht unrealistisch solche Test- und Freigabezyklen von 14 Tagen auf vielleicht nur einen einzigen zu senken. So kann ein Entwickler heute einen Code schreiben, der dann in seine Toolkette zurückgeschrieben wird.
Dieser sogenannte Commit wird mit dem Rest einer Version gebündelt und mit einigen einfachen automatisierten Tools auf Korrektheit und Funktionalität getestet. Und das schon bevor der Commit an einen Tester für die Qualitätssicherung (QS) geschickt wird. Üblicherweise müssen für solche Tests mehrere Tage veranschlagt werden.
Sind die Tests erfolgreich durchlaufen, folgt der nächste Schritt in Richtung Freigabe. Sind Fehler aufgetreten, wird der Commit zur Überarbeitung zurückgeschickt. Auch das kostet Zeit. Wenn man allerdings eine KI einsetzt, um einen QA-Testfall zu generieren und fehlerhaften Code zu korrigieren, ließe sich diese Nachbearbeitungsschleife eliminieren und Einzelschritte um Tage verkürzen.
KI lässt sich aber auch nutzen, um einen Teil der anfallenden Arbeiten von menschlichen Entwicklern, Software-Architekten oder QA-Testern zu ergänzen. So könnten Entwickler beispielsweise ein KI-Tool abfragen, das auf bewährte Branchenpraktiken, gesetzliche Vorschriften und Artikel trainiert wurde. Auf dieser Basis ließe sich eine Liste von Sicherheitsanforderungen erstellen, die diese Tools bei der Entwicklung neuer Systeme oder Software erfüllen müssen. Ganz ähnlich kann man mithilfe von künstlicher Intelligenz Anwendungsfälle generieren, welche die in den Sicherheitsanforderungen beschriebenen Funktionalitäten im Sinne der Qualitätssicherung testen.
Entwicklungsteams werden nach vielen verschiedenen Maßstäben gemessen. Aber einer, der nahezu universell funktioniert, ist der Umfang an Funktionalität, den sie einer Anwendung hinzufügen. Der Einsatz einer unterstützenden KI beim Erstellen dieser Funktionen kann eine Reihe von Vorteilen haben. So können Entwickler beispielsweise die bestehenden Funktionsziele erfüllen, sich aber gleichzeitig auf andere Bereiche wie Qualität, Sicherheit und Wartungsfähigkeit konzentrieren. Oder sie können die Anzahl der bereitgestellten Funktionen insgesamt erhöhen.
Markteinführung beschleunigen
Dadurch lässt sich die Zeit bis zur Markteinführung verkürzen, gerade in solchen Branchen, in denen es besonders auf Geschwindigkeit ankommt. Aber es ist ebenso möglich eine bessere, zuverlässigere Software zu entwickeln, wenn etwa die Nutzungsdauer im Vordergrund steht.
Mit anderen Worten: Unternehmen, die KI sorgfältig und bewusst in ihre Arbeitsabläufe integrieren, werden davon profitieren und einen Vorteil gegenüber denen haben, die das nicht tun. Nichtsdestotrotz werden sämtliche Anwendungsfälle einer KI auf absehbare Zeit hin überwacht werden müssen. Das gilt zumindest so lange wie sogenannte „Halluzinationen“ auftreten oder eine KI dazu neigt, selbstbewusst Fakten zu artikulieren, die nicht der Realität entsprechen.
Es gibt bestimmte Arten von „Angriffen“, die eher auf Fehler und Versehen zurückgehen, als dass es sich um den ambitionierten Hack eines erfahrenen Angreifers handelt. Das Ausnutzen einer unbeaufsichtigten KI oder einer Software, die von solch einer KI geschrieben wurde, gehört zur ersten Kategorie.
Nehmen wir als Beispiel die schnelle Einführung von Cloud-Technologien. Mit der Verbreitung von Cloud-Hosting häuften sich auch die schlagzeilenträchtigen Datenschutzverletzungen, wenn wieder jemand private oder sensible Daten in einem Cloud-Datenspeicher-Bucket gefunden hatte. Aufgrund von Standard-Zugriffsregeln für jeden zugänglich. Jede neue Technologie, von Personalcomputern über Webserver bis hin zu Smartphones, bringt ihre spezifischen Schwachstellen mit. Das ist bei von einer KI bereitgestellten Diensten nicht anders.
Schwachstellen und Sicherheitsprobleme
Ob es darum geht, den Prozess der Entscheidungsfindung einer KI auszutricksen, eine KI zur Preisgabe von Geheimnissen zu verleiten oder die einer KI zugrunde liegende Softwareplattform anzugreifen: Es werden neue Schwachstellen und Sicherheitsprobleme auftauchen, die durch die Software selbst entstehen. Sobald Angreifer mit den üblichen Softwarefehlern vertraut sind, die von einer KI mit Halluzinationen geschrieben wurden, werden sie diese Schwachstellen rigoros und routinemäßig ausnutzen.
Dabei kann es sich um ein Versehen handeln oder um fehlende Steuerelemente, die von der KI nicht vorgesehen waren, oder um zusätzliche Features, die für das Funktionieren einer Anwendung nicht nötig sind, aber trotzdem eingebaut wurden. Erst wenn Forschende ein besseres Verständnis über die Art von Halluzinationen bei unterschiedlichen KI-Modellen gewinnen, werden sie prognostizieren können, welche Fehler in der von diesen Modellen geschriebenen Software womöglich auftauchen werden.
KI wird eine nicht zu unterschätzende Bedeutung haben, wenn es gilt, die Software-Entwicklung sicherer und effizienter zu machen. Wenn Firmen angesichts dieser jüngsten technischen Entwicklungen einfach wie gewohnt weitermachen, könnte dies für ihr technisches und wirtschaftliches Überlegen fatal enden. Vielmehr sollten Entwickler, Software-Architekten und QS-Tester die von der KI geleistete Arbeit aufmerksam verfolgen. Und sie als ein Werkzeug betrachten, mit dem sich existierende Prozesse verbessern lassen, statt KI-basierte Tools unbesehen zu übernehmen oder zu verteufeln.
Boris Cipot ist Senior Sales Engineer bei der Synopsys SIG.