Bug, débug, débuggueur, endpoint, test unitaire, etc : le lexique du bug

Le lexique du bug et du débug : tous les termes et méthodes pour comprendre comment débugguer efficacement une application ou un programme informatique.
Philippe.jpg
Philippe AUBERTIN, Javaman aigriMis à jour le 16 Mars 2022
lexique vocabulaire bug debug

20% de code et 80% de débug : c’est le quotidien d’un développeur.

On exagère peut-être un peu mais vous l’aurez compris : sans bug, un projet informatique n’aurait pas la même saveur !

Pour y voir plus clair dans les différents termes de l’univers du bug et du débug, on vous propose un petit lexique.

Vous êtes prêts ? C’est parti !

Un bug, c’est quoi ?

Il s'agit d'un défaut de conception ou de réalisation d'un programme informatique, qui se manifeste par des anomalies de fonctionnement.

Comme un développeur averti en vaut deux, voici les bugs informatiques les plus fréquents :

  • La variable NULL ou donnée manquante. Bonne nouvelle, c’est facile à corriger, même si trouver le champ n’est pas toujours aisé.

  • Les événements asynchrones, plus compliqués à débugguer car c’est très aléatoire et qu’on ne peut pas utiliser le débuggueur.

L’occasion de rappeler que dans une appli web, il n’y a pas de garantie que deux requêtes arrivent l’une avant l’autre, même si elles sont initiées dans un certain ordre.

Déboguer ou débugguer ?

D’après le Larousse, les deux verbes sont acceptés ! La définition donnée est la suivante : Rechercher et corriger les erreurs d’un programme informatique. On n’aurait pas dit mieux ! Alors pour faire simple, dans cet article on va parler bug, débug & débuggueur :)

Débugguer : ça veut dire quoi ?

Débugguer, c’est utiliser les méthodes qui permettent de déterminer les causes d’un dysfonctionnement, d’une défaillance dans un système, d’un comportement qui n’est pas souhaité dans une application.

Un débuggueur : c’est quoi ?

Le débuggueur, ou débugger, est un outil qui permet de faire du pas à pas pour voir ce qui ne fonctionne pas.

Tous les langages ont des débuggeurs qui leur sont propres. En général, ils sont fournis avec l’environnement de développement.

Depuis quelques années, on peut remonter dans le temps dans la pile d'exécution avec le débuggueur, c’est très pratique pour voir d’où vient une erreur.

On peut également remplacer les variables à chaud, idéal pour tester différents cas !

Breakpoints : définition

Un breakpoint est un point d’arrêt dans le code.

Il sert à regarder le contexte et l’intégralité des variables pour avancer pas à pas. Quand le débuggueur arrive dessus, il rend la main au développeur.

Attention toutefois aux comportements qui peuvent être différents entre le mode débug et la production. En effet, la temporalité n’est pas la même !

Tests unitaires

Procédure connue en informatique et parfois considérée à tort comme secondaire, les tests unitaires, vont examiner un composant développé indépendamment du reste du programme. Ils permettent de vérifier si le résultat est celui attendu.

Une unité testée doit être isolée, si elle dépend d'autres unités, il sera possible de mocker, c’est-à-dire simuler, ces dernières.

Il est recommandé d’écrire les tests en même temps que le code et de les rejouer à chaque ajout ou modification du code pour éviter les régressions.

Une bonne couverture de tests permet d’être certain que les fonctionnalités développées fonctionnent bien avant la livraison, mais aussi de vérifier que le code développé sur une version précédente s’exécute toujours correctement sur la version courante.

Cela assure donc la maintenabilité du code entre chaque nouvelle version et met en évidence les cas de régression avant la mise en production.

On en parle plus précisément sur Java et Spring Boot dans cet article.

Tests end to end

Les tests End to End, ou E2E, sont une technique utilisée pour vérifier si une application se comporte comme prévu, du début à la fin.

Ils consistent à vérifier que l’utilisateur final puisse achever les principaux scénarios d’utilisation de l’application.

On en parle plus en détail sur Angular dans cet article.

Débug en dév vs débug en prod

Le débug en développement

Il a lieu pendant la phase de conception et des tests, avant la mise en production.

Le but : aider à comprendre le comportement de l’application et à corriger le code en amont.

On en profite pour vous rappeler qu’un code de qualité est essentiel ! On a même fait un podcast entièrement dédié à ce sujet, pour l’écouter, c’est par ici.

Le débug en production

Il s’agit de corriger les bugs alors que l’application est en service. Ces derniers sont remontés par les clients, les utilisateurs ou les développeurs eux-mêmes.

Débugguer régulièrement son application est primordial pour le confort des utilisateurs.

Nous pouvons auditer votre code source ou vos performances pour optimiser votre application.

Le mieux est d’en discuter ! Pour nous contacter, c’est par ici !