Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Tester du code généré

Après cette leçon: Je peux écrire des cas de test, avec leur réponse attendue, pour vérifier un code que je n’ai pas écrit.

Leçon de 60 min3 commandesLab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Comment tester du code écrit par un assistant ?

Tester du code généré consiste à l’exécuter sur des exemples dont vous connaissez déjà la réponse, avant de l’utiliser. C’est la seule façon de savoir s’il marche, puisque l’assistant ne le lance pas.

Une boutique en ligne offre la livraison dès 30 euros. Si le code oublie le cas de 30 euros pile, des clients paient une livraison qui devait être gratuite.

À la fin de cette leçon

Remarque

Je peux écrire des cas de test, avec leur réponse attendue, pour vérifier un code que je n’ai pas écrit.

Mots-clés

MotCe que ça veut direExemple
Cas de testune entrée et le résultat attendu pour cette entrée
Valeur limiteune valeur au bord d’une règle3000 pour un seuil de 3000
Résultat attendula réponse juste, calculée avant de lancer le code
Résultat obtenula réponse que le code rend vraiment
Échecun cas où le résultat obtenu diffère de l’attendu

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Écrivez la réponse attendue avant de lancer

Calculez d’abord à la main ce que le code doit rendre. Lancez ensuite, et comparez.

Si vous lancez d’abord, le résultat affiché vous influence : on le trouve vite « plausible ». Une réponse écrite avant n’a pas ce défaut.

Des cas pour une règle de livraison

Total du panierAttenduPourquoi ce cas
2999 centimesPayanteJuste sous le seuil
3000 centimesGratuiteExactement le seuil
3001 centimesGratuiteJuste au-dessus du seuil
0 centimePayanteUn panier vide

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un code généré, essayé sur les cas

Code: python
def livraison_gratuite(total_centimes):
    return total_centimes > 3000

cas = [[2999, False], [3000, True], [3001, True], [0, False]]
for un_cas in cas:
    valeur = un_cas[0]
    attendu = un_cas[1]
    obtenu = livraison_gratuite(valeur)
    if obtenu == attendu:
        print("ok", valeur)
    else:
        print("ECHEC", valeur, "attendu", attendu, "obtenu", obtenu)

Le cas du seuil trouve la faute

Le code compare avec > : il oublie le cas du seuil. Seul le cas de 3000 centimes échoue. Les trois autres passent, ce qui montre pourquoi on teste les bords.

Un test sur 5000 centimes seulement aurait passé. La faute serait restée cachée.

Méfiez-vous des tests écrits par l’assistant

Un assistant sait aussi écrire des tests. Mais s’il a mal compris la règle, ses tests partagent sa faute. Ils passent, et ils sont faux.

Écrivez au moins quelques cas vous-même, à partir de la règle que vous connaissez. Lisez aussi ceux de l’assistant : un test sans assertion ne vérifie rien.

Prédire puis lancer, dans le laboratoire

Dans le projet de la boutique, la fonction change rend la monnaie en pence. Pour un paiement de 500 et un flapjack à 120, calculez : 500 moins 120 donne 380.

Écrivez votre réponse, puis lancez la commande. Les deux commandes suivantes appellent total et asPounds : prévoyez 35 et £0.35 de la même façon.

Calculer la monnaie sur 500 avec un flapjack

Commande
docker exec -w /home/node/project agent node -e "const s = require('./shop'); console.log(s.change(500, ['flapjack']))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Calculer le total d’une pomme

Commande
docker exec -w /home/node/project agent node -e "const s = require('./shop'); console.log(s.total(['apple']))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Afficher 35 pence en livres

Commande
docker exec -w /home/node/project agent node -e "const s = require('./shop'); console.log(s.asPounds(35))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Erreur fréquente

Attention

Beaucoup pensent que si les tests de l’assistant passent, le code est juste. Ces tests vérifient ce que l’assistant a compris, pas ce que vous avez voulu. Écrivez vous-même des cas, surtout aux bords, avant de faire confiance.

Construire les cas et trouver ceux qui échouent

Dans le devoir, une règle dit qu’une valeur est acceptée de bas à haut, bornes comprises. Vous construisez la liste des cas de test. Ce sont les valeurs de bas - 1 à bas + 1 et de haut - 1 à haut + 1, sans doublon, de la plus petite à la plus grande.

Chaque cas porte sa réponse attendue. Vous écrivez ensuite une fonction qui rend les valeurs où le code testé se trompe.

À propos de ce labo et de sa source: Lab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.