Dev Web - L©S ßlog - CyberSDF

L©S ßlog - CyberSDF

jeudi 8 septembre 2005

La recherche d'erreur en programmation : debug

Vous avez tous entendu dire « il y a un bug dans le programme » oui mais c'est quoi exactement un bug ? Un bug est tout simplement une erreur quelque par dans un programme, erreur qu'il faut bien sur identifier et corriger.

Il existe trois familles d'erreurs :

Erreur de syntaxe : « syntax error »

C'est le type d'erreur la plus répandue, tout programmeur quel que soit son niveau se heurte à ce genre d'erreur. Cette erreur est généralement bloquante et le programme refuse soit de s'exécuter soit d'aller au delà d'où le bug se trouve.

Petit rappel sur ce qu'est la syntaxe :
Tout comme une langue parlée un langage de programmation suit un certain nombre de règles grammaticales et orthographiques arbitraires établis à sa conception.
Exemple de règle grammaticale : Chaque appel à une fonction doit commencer par une majuscule et qu'une instruction se termine par un point-virgule.
Exemple de règle orthographique : Print(‘coucou le monde') ;
Si vous vous manquez quelque part (oubli du point-virgule, au lieu d'écrire Print vous écrivez Pint, etc.) vous aurez un superbe message d'erreur.

Ce sont généralement les erreurs les plus fréquentes lorsque l'on débute dans un langage de programmation ou tout bêtement une erreur de frappe qui se glisse dans une instruction car on est allé un peu vite.
Heureusement, certains éditeurs proposent une colorisation syntaxique qui reconnaissent le langage que vous utilisez et qui aide grandement à voir ou on s'est trompé et surtout de le remarquer bien avant de se lancer dans l'exécution du programme.

Erreur à l'exécution : « Run-time error »

Une erreur d'exécution, également appelée exception apparaît lorsque le programme est déjà en cours d'exécution mais qu'il s'est passé quelque chose d'anormal du genre une ressource introuvable (lecture d'un ficher qui n'existe plus ou base de donnée injoignable, etc.). Ce genre d'erreur est totalement imprévisible mais on peu tout de même se prémunir de leurs effets néfastes en déterminant les plus probables et en programmant « un retour sur erreur »
(Exemple : base de donnée injoignable => message mes plus plates excuses, on répare ça ASAP).

Erreur sémantique (erreur de logique)

C'est l'erreur la plus difficile à détecter. En effet elle n'a aucune incidence sur l'exécution elle-même du programme, aucun message d'erreur mais le résultat obtenu n'est pas celui attendu.
Ce genre d'erreur renvoi souvent à la relecture complète du code voir à repartir à l'étape papier crayon (étape que tout bon programmeur se doit de respecter).

Recherche d'erreur

Même si c'est souvent fastidieux c'est à mon avis un aspect de la programmation qui est très passionnant car il apporte beaucoup plus que l'on pense en premier lieu. En effet vous devez emmètre des hypothèses pour déterminer le ou les processus qui ont conduits au résultat constaté, bref une véritable enquête digne de colombo :-) , relire les documentations pour être sur de ce que vous avez écrit, reprendre votre code, procéder par petite touches et voir le comportement, etc. Il existe bien sur des méthodes d'analyse ainsi que des programmes spécifique aux débugage mais franchement rien ne m'a vraiment convaincu si ce n'est de jouer moi-même les fouineurs de code et d'utiliser mes méthodes à moi que j'ai :-)

Toutes les fautes d'orthographes présentes sur ce site sont protégées par la licence Logo Creative common Creative common

 |  Valid XHTML  |  Valid CSS  |  Dotclear  |  Design décliné de [ON]Simple par [ NikO ]
Hébergé par Typhon.Network