NSI (terminale) · Chapitre 10 · Exercice d'entraînement
Des tests qui passent, une fonction fausse
Modularité, mise au point et tests · Jeux de tests · niveau 2
Énoncé
Des tests qui passent, une fonction fausse. Un élève propose la fonction et les tests suivants.
def maximum_liste(t):
m = 0
for x in t:
if x > m:
m = x
return m
assert maximum_liste([3, 7, 2]) == 7
assert maximum_liste([5]) == 5
assert maximum_liste([4, 4, 1]) == 4
print("tests OK")
- Les trois assertions passent-elles ?
- Trouver une liste non vide pour laquelle la fonction renvoie un résultat faux. De quelle famille d'erreur s'agit-il ?
- Quelle catégorie de cas manquait au jeu de tests ? Que faut-il en conclure sur la valeur d'un test qui passe ?
- Corriger la fonction, vérifier la précondition «
tnon vide » par une assertion, et compléter le jeu de tests.
Un exercice à chercher : son corrigé n'est pas publié. Sur Adloun, le tuteur guide par questions, sans donner la réponse.