Définition de bug (informatique)

Qu’est ce que : Définition de bug (informatique)

Les premiers ordinateurs modernes n’étaient pas exactement petits, et ne fonctionnaient pas non plus de la même manière, mais sur la base de pièces mécaniques et électroniques plus grandes.Nous nous plaçons, en termes de temps, pendant la Seconde Guerre mondiale, et plus précisément en 1944, lorsque l’ordinateur Mark II (construit par IBM à Harvard) a subi une défaillance d’un relais électromagnétique, qui était alors un composant primordial pour un ordinateur.

En ouvrant l’ordinateur et en cherchant le relais concerné, les responsables ont constaté qu’un papillon de nuit (en anglais, bug) s’était glissé dans le système, se heurtant au relais, qui était resté ouvert.

Depuis lors, chaque fois qu’une erreur quelconque se produisait dans l’ordinateur, les scientifiques chargés de sa gestion ont commencé à parler de bogue, un terme devenu populaire pour désigner toutes sortes de problèmes et d’erreurs qui empêchaient le fonctionnement normal du matériel.

Avec le temps et l’augmentation de la fiabilité du matériel parallèlement à sa miniaturisation, la plupart des problèmes dont souffrent les ordinateurs sont restés dans la partie logicielle, bien que le terme ‘bug’ soit devenu un terme populaire pour désigner ces erreurs.

Comment devons-nous comprendre un bug au sens moderne du terme ? Eh bien, tout simplement, comme une défaillance au moment de la programmation, qui fait qu’une partie du code source contient une erreur essentielle, ce qui fait que le programme résultant a des problèmes au moment de l’exécution.
Les bogues peuvent donner lieu à des problèmes qui se répètent chaque fois que l’utilisateur fait une série de choses, ou lorsqu’une série de circonstances se produisent qui ne se répètent pas toujours en faisant les mêmes choses dans le même ordre, mais qui dépendent de facteurs externes au programme.
Ainsi, par exemple, nous pouvons avoir des conflits entre un programme et un autre programme différent chargé en mémoire, mais le problème survient lorsque nous avons fait une série de choses avec les deux applications.

Parmi les bogues les plus courants en programmation, nous avons la division par zéro, le dépassement de tampon, la violation de mémoire, les erreurs d’opérations avec un traitement non prévu dans le programme, l’accès incorrect aux variables,…

Les outils de programmation offrent généralement des solutions pour détecter et corriger ces problèmes, tout d’abord en examinant le code source et en appliquant des règles logiques (par exemple, si l’on accède à une variable avant de la déclarer et de définir son type), puis au moyen d’outils de test du code qui nous permettent de jouer avec les valeurs saisies et d’examiner les registres contenant des informations sur l’exécution.
Ce processus est appelé ‘débogage’, du terme anglais debug (nettoyer les bugs).

Le côté le plus sombre des bogues est qu’ils peuvent ouvrir la porte à l’exécution de logiciels malveillants sur le système qui exécute le programme affecté.

Car une fois le bogue déclenché, il existe des moyens d’exploiter le problème causé dans le système d’exploitation pour exécuter du code arbitraire injecté de l’extérieur.
Ajoutez à cela les privilèges qui peuvent être obtenus sur le système, et vous avez un danger potentiel très sérieux qui a été exploité à de nombreuses reprises par des cybercriminels pour accéder à des systèmes tiers.