Logo Time4Digital Logo Time4Digital
  • Webagentur
  • Dienstleistungen
    Alle Dienstleistungen im Überblick
    Webentwicklung und Softwareentwicklung
    Support für Ihre Website & Webanwendung
    Innovative & nachhaltige Webseiten Agentur
    Onlinemarketing & Suchmaschinen-Optimierung
    Content Management Systeme
    E-Commerce-Lösungen
    Lokale SEO Agentur
  • Portfolio
  • Webseiten
  • Team
  • Insights
  • Termin
    buchen
  • Gratis
    SEO Check
  • English
  • Deutsch
  • French

KI Quality Gate: Wie ChatGPT und KI Code-Qualität verbessern

Geschrieben am 13.03.2024 06:56 von jt

Eine Softwarelösung sollte stets im Fluss sein. Deshalb beschäftigen wir uns in diesem Blogbeitrag mit dem Thema Quality Gate und KI. Die Frage nach Wartung und Weiterentwicklung steht zusammen mit dem Betrieb an erster Stelle. Durch diverse Ansätze (Organisation im Team, Firmen-Mindset) versucht man oft den Auslieferungszyklus möglichst kurz zu halten. Solche Dynamiken können nur dann verlässlich funktionieren, wenn ein hoher Grad an Automatismus und Transparenz vorhanden ist. Ein wichtiger Teil davon ist das Quality Gate, das dazu beiträgt, die Code-Qualität zu verbessern.

Was bedeutet Quality Gate

Bei einem Quality Gate (deutsch Qualitätsprüfpunkte) wird die Freigabe der nächsten Projektschritte anhand von Qualitätskriterien im Voraus eindeutig bestimmt. Wie kann in diesem Zusammenhang die Qualität von Code beurteilt werden? Im Allgemeinen drehen sich viele Techniken, die unter "Clean Code" fallen, um folgende Frage: Wie kann in einem Team von Programmierern Code geschrieben werden, sodass neue Teammitglieder sofort mit Ihrer Arbeit loslegen können ohne lange Einarbeitungszeit? Neben der statischen Code Analyse (Komplexität, Bug-Heuristik, usw. - Stichwort Sonarqube) ist Code Review eine mögliche Lösung.

Wer ist verantwortlich für Code Review?

Code Review ermöglicht Know-How Transfer von erfahrenen Arbeitskollegen an neue Teammitglieder.

Oft ist es eine Tätigkeit, die viel Zeit in Anspruch nimmt. Deshalb sollten sich in erster Linie Software Architekten um diese Aufgabe kümmern.

Kommen wir zum Thema Deployment Pipeline. Diese sieht wie folgt aus:

  1. Code Schreiben & Commit
  2. Trigger Build (Unit Tests, Akzeptanztests, Integrationstests, ...)
  3. Quality Gate (Clean Code Standards, Security, Lizenzen, ...)


Erst danach entsteht der Code Review.

Code Review & Quality Gate

Die Rolle der KI

Lass uns eine Code Completion Schnittelle von Open AI ausprobieren, die bei Code Qualität Checks unterstützen kann. Unser Beispielprojekt hat 2 verschiedene Methoden. Einmal in Typescript, einmal in Java. Typescript ist eine simple Funktion zum Addieren:

function add(x, y) {   return x + y;}

Die Java Klasse an sich ist ziemlich unverständlich, mit Namenskonventionen die uns nichts sagen:

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class SomeClass {

    static boolean sA(final String s) {
       
        String bKram = s;
        String sFe = fo(bKram);
        return bKram.equals(sFe);
    }

    static String fo(String bKram) {
        List<String> faef = Stream.of(bKram).map(c-> c).collect(Collectors.toList());
        StringBuilder dram = new StringBuilder(bKram).reverse();
       
        if(Objects.nonNull(faef)) {
            return dram.toString();
        }
       return null;
    }

Versuchen wir unser Glück:

const question = "Can you write Unit Test for this Code : ";

Wir nutzen die createCompletion API von OpenAI

const completion = await openai.createCompletion({
        model: "text-davinci-003",
        prompt: question + fileContents,
        temperature: 0,
        max_tokens: 3600,
    });

Here we are:

@Test
public void testSA() {
    String s = "test";
    assertTrue(SomeClass.sA(s));
}

@Test
public void testFo() {
    String s = "test";
    assertEquals("tset", SomeClass.fo(s));
}

Es ist zwar immer noch nicht klar, was die Klasse so macht, aber die Funktionalität wurde rausgepresst, und zwar in Sekunden.

Das Gleiche lässt sich für Typescript abfragen:

describe('add function', () => {
  it('should add two numbers', () => {
    expect(add(1, 2)).toEqual(3);
  });
});

Hierbei bemerkt OpenAI - ChatGPT, dass es sich um Palyndrome handelt. Die künstliche Intelligenz versteht infolgedessen das Ziel der Funktion:

KI und Ihr Nutzen für Quality Gate

KI Quality Gate

Kommen wir zum Thema zurück und analysieren den Nutzen von KI für Quality Gate. Bedeutet also neuer Code, dass eine KI dafür Tests schreiben kann?
Wenn eine Methode kurzgefasst wurde und wenig Nebeneffekte aufweist, ist sie vermutlich durch KI interpretierbar und testbar.
Dies beutet im Umkehrschluss, dass KI als Filter fungieren kann, um Stellen hervorzuheben, die eine Relevanz für Code Review darstellen.
Durch den Einsatz von Künstlicher Intelligenz sieht unsere Pipeline gleich anders aus:

  1. Code schreiben & Commit
  2. Trigger Build (Unit Tests, Akzeptanztests, Integrationstests, ...)
  3. AI Code Review
  4. Quality Gate (Clean Code Standards, Security, Lizenzen, ..)

KI in Deployment Pipelines

Auf diese Art kann KI in Deployment Pipelines integriert werden und findet zudem Anwendung bei Security Aspekten im Hinblick auf unseren geschriebenen Code. Infolgedessen wird die Stabilität, Wartbarkeit und die Qualität der ausgelieferten Software erhöht. Das Wichtigste Ergebnis das durch den Einsatz von KI in Hinblick auf Quality Gate erzielt wird, ist die Steigerung der Produktivität von einem Development Zyklus.

  • Facebook
  • LinkedIn
  • WhatsApp
  • E-mail
  • Twitter
time4digital S.à r.l.

2C, op der Gare
L-6850 Manternach

Telefon: + 352 29 20 21

Über uns

Die Firma time4digital SARL ist spezialisiert auf die Entwicklung spezifischer Software Lösungen in Form von Web- und mobile Anwendungen.

Kontaktieren Sie uns!
Legales
  • Impressum
  • Datenschutz
  • Cookie Consent

    Privatsphäre-Einstellungen ändern
Gehe zu
  • Home
  • Über uns
  • Services
  • Portfolio
  • Unser Team
  • Kontakt

© time4digital S.à r.l.

Unsere Webseite verwendet Cookies.

Diese Cookies sind erforderlich für die Funktionalität der Webseite.

Schützt vor Cross-Site-Request-Forgery-Angriffen.

Anbieter: Time4Digital
Speicherdauer: Dieses Cookie bleibt nur für die aktuelle Browsersitzung bestehen.

Speichert die aktuelle PHP-Sitzung.

Anbieter: Time4Digital
Speicherdauer: Dieses Cookie bleibt nur für die aktuelle Browsersitzung bestehen.

Diese Cookies sind optional und beeinträchtigen die Funktionalität der Webseite nicht.

Dieser Cookie steht im Zusammenhang mit Google Universal Analytics - einer bedeutenden Aktualisierung des häufiger verwendeten Analysedienstes von Google. Dieses Cookie wird verwendet, um eindeutige Nutzer zu unterscheiden, indem eine zufällig generierte Nummer als Kundenkennung zugewiesen wird. Es ist in jeder Seitenanforderung auf einer Website enthalten und wird zur Berechnung von Besucher-, Sitzungs- und Kampagnendaten für die Analyseberichte der Website verwendet.

Anbieter: Google
Speicherdauer: 1 Jahr 1 Monat

Dieses Cookie wird von Google Analytics verwendet, um den Sitzungsstatus zu erhalten.

Anbieter: Google
Speicherdauer: 1 Jahr 1 Monat