• Aucun résultat trouvé

J’ai un bug, qu’est-ce que je peux faire ?

N/A
N/A
Protected

Academic year: 2022

Partager "J’ai un bug, qu’est-ce que je peux faire ?"

Copied!
40
0
0

Texte intégral

(1)

J’ai un bug,

qu’est-ce que je peux faire ?

Samuel Thibault

7 Mars 2017

(2)

2

Qu’est-ce qu’un bug ?

(3)

Qu’est-ce qu’un bug ?

Un comportement erroné dû à une situation imprévue

Erreur

Situation

(4)

4

Qu’est-ce qu’un bug ?

Un comportement erroné dû à une situation imprévue

Erreur

Le programmeur a mal fait son boulot, il n’a pas pensé à tout

Situation

Le logiciel s’est retrouvé dans une situation particulière à laquelle le programmeur n’avait pas pensé

(5)

Qu’est-ce qu’un bug ?

(6)

6

Qu’est-ce qu’un bug ?

(7)

Qu’est-ce qu’un bug ?

(8)

8

Qu’est-ce qu’un bug ?

(9)

Qu’est-ce qu’un bug ?

(10)

10

Qu’est-ce qu’un bug ?

(11)

Qu’est-ce qu’un bug ?

1

2 3

4

(12)

12

Qu’est-ce qu’un bug ?

1 3 2

4

(13)

Qu’est-ce qu’un bug ?

Programme pour 4

Tirer la timbale 4 de l’emplacement 1

Tirer la timbale 1 de l’emplacement 4

Pousser la timbale 4 à l’emplacement 4

Pousser la timbale 1 à l’emplacement 1

Tirer la timbale 3 de l’emplacement 2

Tirer la timbale 2 de l’emplacement 3

Pousser la timbale 3 à l’emplacement 3 Pousser la timbale 2 à l’emplacement 2

(14)

14

Qu’est-ce qu’un bug ?

Programme pour N

Tirer la timbale N de l’emplacement 1

Tirer la timbale 1 de l’emplacement N

Pousser la timbale N à l’emplacement N

Pousser la timbale 1 à l’emplacement 1

Tirer la timbale N-1 de l’emplacement 2

Tirer la timbale 2 de l’emplacement N-1

Pousser la timbale N-1 à l’emplacement N-1

Pousser la timbale 2 à l’emplacement 2

...

(15)

Qu’est-ce qu’un bug ?

Programme pour N

Pour i entre 0 et N-1

Tirer la timbale N-i de l’emplacement i+1

Tirer la timbale i+1 de l’emplacement N-i

Pousser la timbale N-i à l’emplacement N-i

Pousser la timbale i+1 à l’emplacement i+1

(16)

16

Qu’est-ce qu’un bug ?

Programme pour N

Pour i entre 0 et N-1

Tirer la timbale N-i de l’emplacement i+1

Tirer la timbale i+1 de l’emplacement N-i

Pousser la timbale N-i à l’emplacement N-i

Pousser la timbale i+1 à l’emplacement i+1

Et paf le bug!

Pour N=4

On échange 4 et 1

On échange 3 et 2

On échange 2 et 3

On échange 1 et 4

(17)

Qu’est-ce qu’un bug ?

Programme pour N

Pour i entre 0 et (N-1)/2

Tirer la timbale N-i de l’emplacement i+1

Tirer la timbale i+1 de l’emplacement N-i

Pousser la timbale N-i à l’emplacement N-i

Pousser la timbale i+1 à l’emplacement i+1

(18)

18

Qu’est-ce qu’un bug ?

Un client me dit

“Il fait bien ce qu’il faut, mais au moment où il a fini, il tire une timbale, puis devient fou !”

Comprends pas, testé pourtant !

(19)

Qu’est-ce qu’un bug ?

(20)

20

Qu’est-ce qu’un bug ?

(21)

Qu’est-ce qu’un bug ?

(22)

22

Qu’est-ce qu’un bug ?

Programme

Pour I entre 0 et (N-1)/2

Tirer la timbale N-i de l’emplacement i+1

Tirer la timbale i+1 de l’emplacement N-i

Pousser la timbale N-i à l’emplacement N-i

Pousser la timbale i+1 à l’emplacement i+1

Ici N=5 !

(N-1)/2 = 2, le robot fait 3 tours !

(23)

Qu’est-ce qu’un bug ?

Ici N=5 !

On n’avait testé que pour N=2, 4, 6

N=5 est une situation inhabituelle, imprévue

Ce n’est pas une faute !

(24)

24

Mythe : « mauvaise manip »

« J’ai fait une mauvaise manip »

Cela n’existe pas

En général un bug

Au pire, une mécompréhension

Sélectionner tout le texte, puis « suppr »

Il n’est pas censé y avoir de comportement

« interdit » pour l’utilisateur

Robustesse du logiciel

(25)

Mythe : « c’est juste moi »

« Nan mais c’est moi, je ne sais pas y faire avec les ordis »

Oui et non

Utilisation particulière de l’ordi

Matériel particulier

Combinaison particulière de logiciels

D’autre aussi l’auront !

Faire corriger !

(26)

26

Quoi faire ?

(27)

Débugguer !

Résoudre un bug = résoudre une énigme Comme un détective

Enquêter

Émettre des hypothèses

Invalider des hypothèses

Rassembler les résultats

Résoudre le problème

(28)

28

Débugguer !

Enquêter

À quel moment précis se produit le bug ?

Quelle action a-t-on faite juste avant ?

Est-ce que ça le fait tout le temps ?

Même après avoir redémarré l’ordi ?

Est-ce que ça le fait dans tous les cas ?

Avec n’importe quel document ?

Quelles que soient les actions faites avant ?

Est-ce que ça l’a toujours fait ?

Quelles versions du logiciel posent problème ?

Essayer la dernière version

(29)

Débugguer !

Enquêter

Donne des indices sur ce qui déclenche le bug

La situation particulière

Ce qu’il faut éviter de faire en attendant qu’il soit corrigé

Ce qu’il faut chercher sur Internet pour trouver des solutions de contournement

Quoi dire dans un forum pour trouver de l’aide

Ce qu’il faut faire pour reproduire le bug

(30)

30

Chercher sur Internet

Nom du logiciel

Les éléments de la situation particulière

Message d’erreur éventuel

Mettre des guillemets: “error truc machin”

Utiliser le vocabulaire approprié

Avec de la chance

Forum avec solution

Rapport de bug avec solution

Essayer en Anglais aussi

(31)

Un rapport de bug !

(32)

32

Un rapport de bug

Un des intérêts du logiciel libre

Contact fort avec les développeurs !

En profiter !

(33)

Un rapport de bug

Quoi mettre dedans ?

Le contexte

L’action qu’on a faite

Le résultat obtenu

Le résultat attendu

Les indices de l’enquête

(34)

34

Un rapport de bug

Contexte et action

Assez d’information pour pouvoir reproduire le bug

Idéal, le développeur se débrouille ensuite

Ne rien négliger

Déterminer en quoi la situation est particulière !

Mieux vaut trop d’information que pas assez

Pénible d’avoir à tirer les vers du nez

(35)

Un rapport de bug

Le résultat obtenu

Être précis !

Le diable est dans les détails

Pensez aux enquêtes de Sherlock Holmes & co

Message d’erreur

Précieux !

Pas fait pour être compris, c’est normal !

Tout mettre

“fatal error” c’est pas suffisant :)

(36)

36

Un rapport de bug

Le résultat attendu

Très important aussi !

Notamment si ce n’est pas un bug

Enfin, du coup, bug de documentation

Ou alors fonctionalité manquante

(37)

Un rapport de bug

Discussion avec le développeur

Comme si vous appeliez un médecin au téléphone…

Il ne voit pas votre écran

Rien n’est évident pour lui

Essayer ce qu’il vous demande

Tout ce qu’il vous demande

Fournira éventuellement solution de

contournement

(38)

38

Un rapport de bug

Discussion avec le développeur

Apprendre à appliquer un patch et recompiler

Apprendre à installer les packages debug et

obtenir une backtrace

(39)

Un rapport de bug

Discussion avec le développeur

Pas évident

Technique

En anglais

Communautés comme GIROLL peut faire

intermédiaire

(40)

40

Conclusion

Résoudre un bug

Enquête = 90% du travail

Très difficile sans être devant l’ordi

Un utilisateur peut en faire une grande partie

Logiciel libre

Fort contact entre développeurs et utilisateurs

En profiter !

Références

Documents relatifs

Remarque : pour trouver les commandes de la boucle POUR, vous pouvez faire SHIFT, PRGM, F1, F6. Pour le tableau de déroulement, il faudra rajouter une colonne pour la

Compétence : remettre les mots d’une phrase dans l’ordre.. Consigne : découpe, range et colle les étiquettes en suivant

Consigne : Le Petit Chaperon Rouge est perdu; elle ne sait plus quel chemin prendre pour se rendre chez sa grand- mère.. , trouver un chemin sans se faire manger par

• Combien de routeur rencontre-t-on pour communiquer avec les noms de domaines cités plus haut. • Où sont-ils

Pour mener la lecture, nous étudierons l’ancrage dans la situa- tion d’énonciation, les intentions de l’écriture et la différence entre ces trois types d’écrits à travers

Bousculé, apostrophé, harcelé, l'auditeur ne sait plus si le bulletin météorologique qui annonce la neige a trait à la journée d'hier ou à celle de demain ; et il se retrouve en

Pour repérer la thèse défendue, il convient tout d'abord de trouver le thème du texte.. On peut ensuite chercher le jugement ou le sentiment du locuteur à propos de

Dessinez ici quelque chose qui est très cher, bleu