Après avoir programmé, il faut s'assurer que ton programme fonctionne correctement et qu'il est compréhensible.
Tester un programme consiste à vérifier qu'il fonctionne correctement avec différentes valeurs d'entrée. On utilise des jeux d'essais qui comprennent des cas normaux et des cas limites.
Types de tests
- Cas normaux : valeurs habituelles (ex: âge = 14)
- Cas limites : valeurs extrêmes (ex: âge = 0 ou 150)
- Cas d'erreur : valeurs incorrectes (ex: âge = -5)
Mise en pratique
Programme Scratch qui calcule le prix avec réduction :
- demander [Quel est le prix ?] et attendre
- mettre [prix] à (réponse)
- si <(prix) > 50> alors
- mettre [prix final] à ((prix) * 0.8)
- sinon
- mettre [prix final] à (prix)
- fin
- dire (joindre [Prix à payer : ] et (prix final))
Tests : prix=30 (pas de réduction), prix=100 (réduction à 80), prix=50 (limite), prix=0 (cas extrême).
Déboguer signifie trouver et corriger les erreurs dans un programme. La méthode consiste à afficher des valeurs intermédiaires pour localiser l'instruction fautive.
Méthode de débogage
- Identifie le problème (résultat incorrect)
- Affiche les valeurs des variables à différents moments
- Localise l'instruction fautive
- Corrige l'erreur
- Reteste le programme
Mise en pratique
Programme avec erreur (calcul de moyenne) :
- mettre [somme] à (0)
- demander [Note 1 ?] et attendre
- ajouter (réponse) à [somme]
- demander [Note 2 ?] et attendre
- ajouter (réponse) à [somme]
- mettre [moyenne] à ((somme) / 3)
- dire (moyenne)
Erreur : division par 3 au lieu de 2. Débogage : afficher (somme) avant la division pour vérifier.
Documenter un programme consiste à le rendre compréhensible en utilisant des noms de variables explicites et en ajoutant des commentaires utiles.
Bonnes pratiques
- Variables : noms clairs (ex: vitesseVoiture au lieu de v)
- Commentaires : expliquer le pourquoi, pas le quoi
- Structure : organiser le code en sections logiques
Mise en pratique
Programme bien documenté :
- // Jeu de devinette de nombre
- mettre [nombreSecret] à (nombre aléatoire entre (1) et (100))
- mettre [nombreEssais] à (0)
- répéter jusqu'à ce que <(reponseJoueur) = (nombreSecret)>
- demander [Devine le nombre entre 1 et 100] et attendre
- mettre [reponseJoueur] à (réponse)
- ajouter (1) à [nombreEssais]
- // Indice pour aider le joueur
- si <(reponseJoueur) > (nombreSecret)> alors
- dire [C'est moins !] pendant (2) secondes
- sinon
- dire [C'est plus !] pendant (2) secondes
- fin
- fin
- dire (joindre [Bravo ! Trouvé en ] et (joindre (nombreEssais) et [ essais]))
Finaliser un programme consiste à vérifier qu'il respecte tous les critères de réussite définis au départ et qu'il fonctionne de manière fiable.
Critères de réussite
- Fonctionnalité : le programme fait ce qui est demandé
- Fiabilité : il fonctionne à chaque exécution
- Robustesse : il gère les erreurs possibles
- Interface : l'utilisateur comprend comment l'utiliser
Mise en pratique
Vérification d'un convertisseur euros/dollars :
- quand drapeau vert cliqué
- mettre [tauxChange] à (1.1)
- toujours
- demander [Montant en euros ?] et attendre
- si <(réponse) > (0)> alors
- mettre [dollars] à ((réponse) * (tauxChange))
- dire (joindre (réponse) et (joindre [ € = ] et (joindre (dollars) et [ $])))
- sinon
- dire [Erreur : montant invalide] pendant (2) secondes
- fin
- fin
Critères validés : conversion correcte, gestion des erreurs, interface claire.
À retenir
Super ! Tu es maintenant prêt à passer un test sur le chapitre entier d'algorithmique et programmation !