Notion de bugs

Objectifs

  • Connaître la notion de bug ;

  • Connaître l'origine de certains bugs.

Mise en situation

En informatique, la situation où tout fonctionne est un cas assez rare : il y a potentiellement beaucoup de raisons pour que peu de choses fonctionnent. Dans ce cas là, on parle de bogue informatique.

DéfinitionBug (Bogue)

Un bug (bogue en français) est une anomalie de fonctionnement d'un programme informatique.

FondamentalOrigine des bugs

Les bogues peuvent être dus à :

  • Des erreurs de syntaxe dans le code source d'un programme.

  • Des erreurs de logique dans le code source d'un programme.

  • Des erreurs de logique dans le code source des bibliothèques utilisées par le programme.

ExempleErreur de syntaxe

1
const postcode = 75001
2
3
if (postcode === 75001) {
4
  console.log('Premier arrondissement de Paris')
5
} 
6
els { // erreur de syntaxe
7
  console.log('Autre code postal')
8
}

Ici, l'erreur de syntaxe donne lieu à un arrêt du programme.

ExempleErreur de logique

1
const postcode = 75001
2
3
if (postcode !== 75001) { // Erreur de logique
4
  console.log('Premier arrondissement de Paris')
5
} 
6
else {
7
  console.log('Autre code postal')
8
}

Ici, l'erreur de logique donne lieu à un résultat incorrect.

FondamentalManifestation des bugs dans l'utilisation du programme

Si les erreurs ne sont pas corrigées, plusieurs choses peuvent arriver :

  • Le programme peut ne pas s'exécuter du tout.

  • Le programme peut commencer à s'exécuter mais ensuite s'arrêter brusquement.

  • Le programme peut s'exécuter mais avoir un autre comportement que celui qui est attendu.

ExempleUne erreur de logique courante, la boucle infinie

Soit le code suivant supposé afficher tous les entiers naturels impairs inférieurs à 10 :

1
for (let i = 1; i != 10; i = i + 2) {
2
  console.log(i)
3
}

On se retrouve avec l'exécution de code infinie car la condition i != 10 n'est jamais atteinte. En effet, on part de 1 et on ajoute 2 à chaque fois : on passera de 9 à 11, sans jamais atteindre 10.

La boucle ne s'arrêtera jamais. Une telle boucle s'appelle boucle infinie.

Si ce code est exécuté dans un navigateur, cela peut le ralentir. Dans certains cas, cela peut l'arrêter brusquement.

Avertissement de Firefox suite à une boucle infinie

RemarqueAnecdote : « premier bug » en informatique

Lors de la correction d'un bug du Harvard Mark II, ordinateur conservé à la Smithsonian Institution, celui-ci contenait un cafard, en anglais « bug ». L'insecte a été conservé et attaché aux notes de Grace Hopper qui travaillait sur cet ordinateur à l'époque.

« Elle constata dans son journal d'entretien, conservé à la Smithsonian Institution, en date du 9 septembre 1947, 15 h 45, que deux contacts d'un relais causaient le mauvais fonctionnement du Harvard Mark II, l'un des premiers ordinateurs électromécaniques. »
Premier cas de bogue avéréInformations[1]

Le terme de bug existait cependant avant cette découverte et était déjà utilisé en mécanique.

À retenir

Les bugs sont des anomalies de fonctionnement dues à des erreurs multiples et qui se manifestent par des comportements incorrects divers pour le programme.