Bug


Un bug (en français : insecte) est une erreur dans un programme informatique qui induit au dysfonctionnement du logiciel. La plupart des bugs sont causés par une erreur dans le code du programme, celle-ci n'étant souvent découverte que par les utilisateurs finaux lorsqu'ils exécutent le programme.

Informations générales

Le nom bug est apparu à l'époque où les premiers ordinateurs étaient développés. Les énormes machines à calculer travaillaient avec de grands circuits, des relais et des éléments en partie mécaniques. Il arrivait alors que des insectes s’introduisent dans le boîtier de l'ordinateur et causent un court-circuit ou un dysfonctionnement similaire. Le témoignage d'une telle découverte se trouve dans un journal de bord avec un insecte collé, trouvé en 1947 dans le Mark II Aiken Relay Calculator, après que celui-ci eut montré un dysfonctionnement[1].

L'utilisation du terme bug pour désigner un défaut dans un système mécanique et/ou électrique est encore plus ancienne : Thomas Edison aurait parlé de bugs dès 1878 lorsqu'il rapportait à un ami ses difficultés avec ses inventions[2].

Types de bugs

Les bugs se produisent sous les formes les plus diverses. Dans la mesure où les programmes sont créés par des humains, il faut s'attendre statistiquement à une certaine fréquence d'erreurs dans le code source. Plus un programme est gros, plus la probabilité que des bugs soient détectés soit lors d'un test bêta, soit par l'utilisateur final est grande. Les erreurs peuvent être de différents types.

  1. Les erreurs lexicales sont des fautes d'orthographe ou des mots inconnus. Selon le paradigme de programmation utilisé, seules certaines commandes correctement écrites d'un certain langage (généralement l'anglais) sont possibles. La moindre lettre écrite de manière incorrecte peut causer une erreur de programme.
  2. Les erreurs de syntaxe se caractérisent par le fait que les caractères disponibles du langage de programmation en question n'ont pas été utilisés correctement. Si un point-virgule ou un guillemet manque, le programme peut s'interrompre à ces endroits.
  3. Les erreurs sémantiques se produisent lorsque des parties de programme telles qu'un paramètre ou un argument sont définies de manière incorrecte. La syntaxe peut être tout à fait correcte, mais une erreur dans la déclaration peut entraîner une interruption ou des résultats incorrects.
  4. Si les types d'erreur ci-dessus ne peuvent pas être exclus, mais que le programme contient toujours une erreur non détectée avant le test, on parle alors d'erreurs d'exécution. Le compilateur traduit le programme en code binaire pour que l'ordinateur puisse exécuter le programme. Si des valeurs inattendues apparaissent pour certaines variables, le programme peut s'interrompre, bien que formellement tout semble correct.
  5. Les erreurs d'exécution sont étroitement liées aux erreurs logiques. Les gros programmes en particulier peuvent produire des résultats indésirables en raison d'erreurs logiques dans le code source. Le programme ne s'arrête pas, mais il édite des données qu'il ne devrait pas éditer, marche en boucle ou se suspend. Les erreurs logiques peuvent également produire des failles de sécurité.

Aspect pratique

Initialement, on évite les bugs en planifiant raisonnablement le projet de programmation. C'est ce qu'on appelle le génie logiciel. Les phases d'un projet sont définies en fonction des objectifs du programme. Les processus structurels garantissent que le programme exécute exactement ce qu'il est censé exécuter. Cela inclut également la documentation du processus de développement afin que des modifications simples puissent être apportées par la suite.

Cependant, comme certaines erreurs ne sont découvertes que lorsque de nombreux utilisateurs utilisent le programme, des tests dits alpha et bêta sont effectués avant la publication. Même après la sortie d'un programme, les bugs peuvent être corrigés par des mises à jour, des corrections de bugs ou des correctifs. Le heartbleed est par exemple un bug bien connu.

Importance pour le SEO

Dans le domaine du langage de balisage HTML et des langages de script tels que JavaScript ou JScript, les bugs sont des erreurs dans les documents ou les scripts qui peuvent avoir un impact direct sur le référencement, car il en va de l'accès pour les moteurs de recherche. Un site pleins de bugs n’aura pas les faveurs de Google.

Certains professionnels du SEO utilisent des bugs pour influencer le classement par des méthodes dites Black Hat SEO. Cependant, les consignes aux webmasters en matière de référencement doivent être observées si l'on veut obtenir des effets positifs à long terme et ne pas être sujet à des pénalités ou exclusion de l’index des moteurs de recherche.

Références

  1. Rear Admiral Grace Murray Hopper, http://ei.cs.vt.edu, ouvert le 17.06.2019
  2. Did you know Edison coined the term bug, spectrum.ieee.org, ouvert le 17.06.2019

Pour aller plus loin