Logo Time4Digital Logo Time4Digital
  • Agence Web
  • Services
    Aperçu de tous les services
    Web development and software development
    Support pour votre site web & application web
    Agence de sites web innovants et durables
    Marketing en ligne & optimisation des moteurs de recherche
    Systèmes de gestion de contenu
    Solutions E-Commerce
    Agence SEO locale
  • Portefeuille
  • Sites Web
  • Équipe
  • Insights
  • Réserver
    rdv.
  • Check
    SEO gratuit
  • English
  • Deutsch
  • French

Porte de qualité IA: Utilisant ChatGPT et IA pour améliorer la qualité du code

Écrit le 21.11.2024 16:35 by jt

Une solution logicielle devra toujours être en évolution. C'est pour cette raison que nous abordons le sujet du contrôle de qualité et l'IA dans cet article. La question de la maintenance et du développement ultérieur constitue ensemble avec l'exploitation la priorité absolue. Grâce à diverses approches (organisation de l’équipe, état d’esprit de l’entreprise), on essaye souvent de maintenir le cycle de livraison aussi court que possible. Une telle dynamique ne peut fonctionner de manière fiable que si un degré élevé d’automatisme et de transparence est disponible. Une partie importante de ceci est le Quality Gate

Que siginife la porte de qualité?

Avec un Quality Gate (porte de qualité), la sortie des prochaines étapes du projet est déterminée à l'avance sur la base de critères de qualité. Comment évaluer la qualité du code dans ce contexte? Généralement, de nombreuses techniques relevant du "Clean Code" s’articulent autour de la question suivante: comment écrire du code dans une équipe de programmeurs afin que les nouveaux membres puissent commencer à travailler immédiatement sans longue période de formation? En plus de l'analyse statique du code (complexité, heuristiques de bugs, etc. - mot-clé Sonarqube, la revue de code est une solution possible.

Qui est responsable pour la revue du code?

La revue du code permet le transfer du savoir-faire des collègues experiencés vers des nouveaux membres d'équipe.

Cette activité a tendance de prendre beaucoup de temps, donc par conséquent, les architectes de logiciel devront principalement s'occuper de cette tâche.

Parlons de la pipeline de déploiement, qui ressemble à ceci:

  1. Écrire & commettre du code
  2. Déclencher le build du code (tests d'acceptation, tests unitaires, tests d'intégration, etc.)
  3. Porte de qualité (standards Clean Code, sécurité, licences)

La revue du code est créée après ces pas.

Code Review & Quality Gate

Le rôle de l'IA

Essayons une interface de complétion de code d'OpenAI, qui peut aider aux contrôles de qualité du code. Notre exemple de projet comporte deux différentes méthodes, une en Typescript et une autre en Java. La fonction Typescripte effectue une simple addition:

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

La classe Java elle-même est assez incompréhensible, avec des conventions de dénomination dénuées de sens:

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;
    }

Tentons notre chance:

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

Nous utilisons l'API createCompletion d'OpenAI

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

Nous voici:

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

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

Bien que l'on ne sache pas encore clairement ce que fait la classe, la fonctionnalité a été découverte en quelques secondes.

On peut faire de même pour la fonction Typescript:

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

En confiant la fonction Java à ChatGPT, l'IA a rapidement découvert que la fonction inintelligible vérifie en fait si le paramètre est un palindrome ou non. D'IA peut a donc bien compris le but de la fonction:

L’IA et ses avantages pour Quality Gate

Porte de qualité IA

Retournons au sujet et analysons les avantages de l'IA pour la porte de qualité. Est-ce que l'IA peut être utilisée pour générer des tests pour nouveau code?
Si la methode est concise et sans trop d'effets secondaires, elle est probablement interpretable et testable par l'IA.
À l’inverse, cela signifie que l’IA peut agir comme un filtre pour mettre en évidence les endroits pertinents pour la révision du code.
Grâce à l’utilisation de l’intelligence artificielle, notre pipeline est différent:

  1. Écrire & commettre du code
  2. Déclencher le build du code (tests d'acceptation, tests unitaires, tests d'intégration, etc.)
  3. Revue du code avec l'IA
  4. Porte de qualité (standards Clean Code, sécurité, licences)

KI in Deployment Pipelines

L'IA peut être intégrée de cette manière dans la pipeline de deploymenent et être appliquée dans les aspects de sécurité concernant notre code. En conséquence, la stabilité, maintenabilité et la qualité du logiciel sera bien augmenté, mais le plus important résultat obtenu grâce à l'utilisation de l'IA est k0augmentation de la productivité d'un cycle de développement.

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

2C, op der Gare
L-6850 Manternach

Téléphone: + 352 29 20 21

Sur nous

La société time4digital S.à r.L. est specialisée sur le développement des solutions logicielles sous forme d'applications web et mobiles.

Contactez nous!
Juridique
  • Mentions légales
  • Protection des données
  • Cookie Consent

    Modifier les paramètres de confidentialité
Gehe zu
  • Home
  • Sur nous
  • Services
  • Portefeuille
  • Notre équipe
  • Contact

© time4digital S.à r.l.

Notre site web utilise des cookies.

Ces cookies sont essentiels pour la fonctionnalité du site.

Protège contre les attaques de type "cross-site request forgery".

Fournisseur: Time4Digital
Durée de conservation: Ce cookie n'est conservé que pendant la session de navigation en cours.

Sauvegarde la session PHP actuelle.

Fournisseur: Time4Digital
Durée de conservation: Ce cookie n'est conservé que pendant la session de navigation en cours.

Ces cookies sont facultatifs et n'affectent pas la fonctionnalité du site.

Ce cookie est lié à Google Universal Analytics - une mise à jour importante du service d'analyse plus fréquemment utilisé de Google. Ce cookie est utilisé pour distinguer les utilisateurs uniques en leur attribuant un numéro généré de manière aléatoire comme identifiant client. Il est inclus dans chaque demande de page sur un site web et est utilisé pour calculer les données relatives aux visiteurs, aux sessions et aux campagnes pour les rapports d'analyse du site web.

Fournisseur: Google
Durée de conservation: 1 année 1 mois

Ce cookie est utilisé par Google Analytics pour obtenir le statut de la session.

Fournisseur: Google
Durée de conservation: 1 année 1 mois