40
1 J’ai un bug, qu’est-ce que je peux faire ? Samuel Thibault 7 Mars 2017

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

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: J’ai un bug, qu’est-ce que je peux faire

1

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

Samuel Thibault

7 Mars 2017

Page 2: J’ai un bug, qu’est-ce que je peux faire

2

Qu’est-ce qu’un bug ?

Page 3: J’ai un bug, qu’est-ce que je peux faire

3

Qu’est-ce qu’un bug ?

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

● Erreur

● Situation

Page 4: J’ai un bug, qu’est-ce que je peux faire

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é

Page 5: J’ai un bug, qu’est-ce que je peux faire

5

Qu’est-ce qu’un bug ?

Page 6: J’ai un bug, qu’est-ce que je peux faire

6

Qu’est-ce qu’un bug ?

Page 7: J’ai un bug, qu’est-ce que je peux faire

7

Qu’est-ce qu’un bug ?

Page 8: J’ai un bug, qu’est-ce que je peux faire

8

Qu’est-ce qu’un bug ?

Page 9: J’ai un bug, qu’est-ce que je peux faire

9

Qu’est-ce qu’un bug ?

Page 10: J’ai un bug, qu’est-ce que je peux faire

10

Qu’est-ce qu’un bug ?

Page 11: J’ai un bug, qu’est-ce que je peux faire

11

Qu’est-ce qu’un bug ?

1

2 3

4

Page 12: J’ai un bug, qu’est-ce que je peux faire

12

Qu’est-ce qu’un bug ?

1

23

4

Page 13: J’ai un bug, qu’est-ce que je peux faire

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

Page 14: J’ai un bug, qu’est-ce que je peux faire

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● ...

Page 15: J’ai un bug, qu’est-ce que je peux faire

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

Page 16: J’ai un bug, qu’est-ce que je peux faire

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

Page 17: J’ai un bug, qu’est-ce que je peux faire

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

Page 18: J’ai un bug, qu’est-ce que je peux faire

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 !

Page 19: J’ai un bug, qu’est-ce que je peux faire

19

Qu’est-ce qu’un bug ?

Page 20: J’ai un bug, qu’est-ce que je peux faire

20

Qu’est-ce qu’un bug ?

Page 21: J’ai un bug, qu’est-ce que je peux faire

21

Qu’est-ce qu’un bug ?

Page 22: J’ai un bug, qu’est-ce que je peux faire

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 !

Page 23: J’ai un bug, qu’est-ce que je peux faire

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 !

Page 24: J’ai un bug, qu’est-ce que je peux faire

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

Page 25: J’ai un bug, qu’est-ce que je peux faire

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 !

Page 26: J’ai un bug, qu’est-ce que je peux faire

26

Quoi faire ?

Page 27: J’ai un bug, qu’est-ce que je peux 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

Page 28: J’ai un bug, qu’est-ce que je peux faire

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

Page 29: J’ai un bug, qu’est-ce que je peux faire

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

Page 30: J’ai un bug, qu’est-ce que je peux faire

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

Page 31: J’ai un bug, qu’est-ce que je peux faire

31

Un rapport de bug !

Page 32: J’ai un bug, qu’est-ce que je peux faire

32

Un rapport de bug

Un des intérêts du logiciel libre● Contact fort avec les développeurs !● En profiter !

Page 33: J’ai un bug, qu’est-ce que je peux faire

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

Page 34: J’ai un bug, qu’est-ce que je peux faire

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

Page 35: J’ai un bug, qu’est-ce que je peux faire

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 :)– “Docteur, j’ai mal”

Page 36: J’ai un bug, qu’est-ce que je peux faire

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

Page 37: J’ai un bug, qu’est-ce que je peux faire

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● Ne pas s’en contenter !

Page 38: J’ai un bug, qu’est-ce que je peux faire

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

Page 39: J’ai un bug, qu’est-ce que je peux faire

39

Un rapport de bug

Discussion avec le développeur● Pas évident● Technique● En anglais● Communautés comme GIROLL peut faire

intermédiaire

Page 40: J’ai un bug, qu’est-ce que je peux faire

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 !