Séance éditoriale SCOLAR·IA · Informatique

Une fonction testée une fois est-elle correcte ?

Définir des cas de test qui révèlent des défauts.

Lycée55 minutes indicativesCorrigé inclus

Adaptation locale : il s'agit d'une proposition pédagogique transversale, non d'une séance officiellement validée pour un programme national. Adaptez l'intitulé du niveau, la durée et les exigences aux textes de votre établissement.

Ouvrir la fiche élève imprimable →Sans éléments de correction

Préparation de l'enseignant

Prérequis
Listes et valeurs de retour Python ; première approche des exceptions.
Matériel
Interpréteur Python local et tableau entrée/attendu/observé.
Question de lancement
Pourquoi un code qui marche sur [4] échoue-t-il sur [] ?

Situation de départ

Une IA utilise max(valeurs) pour une fonction censée accepter aussi une liste vide.

Données et support de l’exercice

Contrat : renvoyer le maximum ou None si liste vide ; cas [], [4], [-2,-5], [3,3].

Déroulement pédagogique

  1. 1. Observer et rechercher (10 min)

    Faire le tableau des résultats attendus pour chaque entrée.

  2. 2. Confronter et argumenter (25 min)

    Exécuter le code et caractériser le cas qui échoue.

  3. 3. Réinvestir individuellement (20 min)

    Proposer un correctif et concevoir un cas supplémentaire.

Questions à poser aux élèves

  1. Note le résultat attendu pour chacun des quatre cas de test.
  2. Réécris la fonction pour qu'elle respecte le contrat sur liste vide.

Production attendue

Table de tests et version corrigée.

Accompagnement guidé

Proposer une fonction partiellement écrite avec garde « if not valeurs ».

Pour aller plus loin

Tester des nombres décimaux et discuter le contrat si tous ne sont pas comparables.

Autre variante

Avancés : tests paramétrés et invariants.

Afficher les éléments de correction (enseignant)

max([]) déclenche ValueError ; «max(valeurs) if valeurs else None» correspond au contrat.

Erreurs fréquentes à anticiper

  • Ignorer une liste vide comme cas improbable.
  • Assimiler absence de résultat et erreur de programme.

Vérification de fin de séance

Question : Que renvoie max([]) en Python avant correction ?

Réponse ou élément attendu : La fonction lève une exception ValueError.

Les élèves doivent pouvoir justifier leur travail indépendamment d’une réponse fournie par l’IA.

Grille d'évaluation formative

Attribuer 0 point si le critère n'est pas satisfait, 1 point s'il est partiellement atteint, 2 points s'il est atteint avec justification. Total indicatif : 6 points, à adapter au contexte.

Critères observables
Critère012
Contrat correctement explicité.☐☐☐
Cas limites couverts par les tests.☐☐☐
Correctif validé par les quatre exemples.☐☐☐

Il s'agit d'un outil d'observation, non d'un barème officiel.

Proposition d’utilisation de l’IA

L'enseignant peut adapter ce prompt à son outil autorisé ; aucune donnée d'élève n'est requise.

Propose des cas de test limites, sans fournir d'abord une implémentation.

Point de vigilance

Ne pas exécuter du code inconnu hors d'un environnement contrôlé.