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

Pourquoi tester un logiciel

Après cette leçon: Je peux dire quel genre de test trouve quel genre de faute.

Leçon de 50 min3 commandesLab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Qu’est-ce que le test logiciel ?

Tester un logiciel, c’est le faire tourner avec des cas choisis pour y trouver des erreurs avant que les utilisateurs ne les rencontrent. Un bon test dit vite si le programme fait ce qu’on attend. On évite ainsi de découvrir un bogue le jour de la mise en ligne.

Prenons une boutique en ligne. Un panier contient un article à 0,10 € et un autre à 0,20 €. Le programme affiche 0,30000000000000004 €. Personne n’a voulu cela, et personne ne l’a vu avant la vente.

À la fin de cette leçon

Remarque

Je peux dire quel genre de test trouve quel genre de faute.

Mots-clés

MotCe que ça veut direExemple
Fautel’erreur écrite dans le code, aussi appelée défautune mauvaise formule
Défaillancece que l’on voit quand la faute s’exécuteun total faux
Test unitaireun test qui vérifie une seule fonction
Test d’intégrationun test qui vérifie que deux parties travaillent bien ensemble
Test systèmeun test qui parcourt le programme entier, comme un utilisateur
Régressionune fonction qui marchait et qui ne marche plus après un changement

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

Une faute n’est pas une défaillance

Une faute est l’erreur écrite dans le code, par exemple une mauvaise formule. Une défaillance est ce que l’on voit quand cette ligne s’exécute : un mauvais total, un plantage.

La faute existe dès l’écriture. La défaillance n’apparaît que si un cas la déclenche. Un programme peut donc contenir une faute pendant des mois sans que personne la voie.

Voir la défaillance du total

Commande
python3 -c "print(0.1 + 0.2)"

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.

Corriger la faute : compter en centimes

Commande
python3 -c "print(10 + 20)"

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.

La faute se cache derrière la défaillance

La première commande affiche 0.30000000000000004. Python garde un nombre décimal sous une forme approchée, donc l’addition n’est pas exacte.

La défaillance est le total bizarre. La faute est d’avoir compté de l’argent en nombres décimaux. La seconde commande compte en centimes : 10 + 20 donne 30, sans reste.

Quel test trouve quelle faute ?

On teste à plusieurs niveaux, du plus petit au plus grand. Chaque niveau cherche une sorte de faute que les autres voient mal.

Le tableau suit une librairie en ligne. Lisez-le ligne par ligne.

Exemple travaillé : un bogue, un niveau

NiveauCe qu’il testeFaute qu’il trouveExemple dans la librairie
Unitaireune seule fonctionun calcul fauxla remise de 10 % donne un mauvais prix
Intégrationdeux parties ensembleun format qui ne correspond pasle panier envoie des euros, le paiement attend des centimes
Systèmele programme entierun parcours qui échoueimpossible de payer après avoir changé l’adresse
Acceptationle besoin du clientune fonction oubliée ou mal comprisela facture n’affiche pas la TVA demandée

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

Un bogue trouvé tard coûte cher

Corriger une faute coûte plus cher à chaque étape où elle passe sans être vue. Pendant l’écriture, on la répare en quelques minutes. Chez les clients, il faut aussi prévenir, réparer les données et regagner la confiance.

Les durées du tableau sont un exemple pour donner un ordre de grandeur, pas une mesure.

Exemple travaillé : une même faute, quatre moments

Où on la trouveTemps pour la réparerQui est touché
À l’écriture5 minutesune personne
Au test d’intégration1 heurel’équipe
À la recette chez le client1 journéel’équipe et le client
Après la mise en ligne3 joursl’équipe et tous les utilisateurs

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

Un journal garde la trace d’une défaillance

Un programme en service écrit souvent ce qui lui arrive dans un journal, un fichier de lignes datées. Une ligne ERROR est une défaillance que quelqu’un peut lire.

Le labo contient un journal. La commande qui suit affiche la première ligne ERROR. Son message est en anglais, car il vient du labo, et sa date change à chaque labo.

Lire une défaillance dans le journal

Commande
grep -m 1 ERROR /var/log/test.log

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 qu’un test réussi prouve que le programme est correct. Il prouve seulement que ce cas-là marche. Les tests montrent la présence de fautes, jamais leur absence.

Classer un rapport de bogue par niveau

Un rapport de bogue dit où la défaillance se montre. Une seule fonction fausse relève d’un test unitaire. Deux modules qui se parlent mal relèvent d’un test d’intégration.

Tout le programme qui échoue relève d’un test système. Un besoin mal compris relève d’un test d’acceptation. Le devoir vous fait écrire ce classement en Python.

À propos de ce labo et de sa source: Lab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

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.