Identifiez la source des bugs
Avez-vous déjà imaginé un plan parfait, pour vous rendre compte plus tard qu’il ne convenait pas au monde réel ? Peut-être aviez-vous oublié un détail clé ou ne vous étiez-vous pas rendu compte qu’un élément poserait problème avant qu’il ne soit trop tard ? Cela m’est arrivé.🖐 C’est arrivé à la plupart des gens ! Cela fait partie de la condition humaine.
La même vérité s’applique à l’écriture de code. Quand vous écrivez un programme Java, vous construisez un plan qu’un ordinateur peut suivre pour résoudre un problème. Vous définissez les besoins de vos clients, les interprétez sous forme de règles métiers, puis les traduisez en Java. Ce travail s’effectue avec des cerveaux, des mains et des claviers ; autrement dit, des instruments de l’erreur humaine ! Les coquilles, les manquements à la logique, et les erreurs sont des choses qui arrivent.
Un bug est une erreur dans votre logiciel (qui fait que votre programme fait autre chose que ce à quoi vous vous attendiez).
Les bugs doivent être réparés, mais nul besoin de paniquer. Votre logiciel est un réseau complexe de code, d’idées, et d’architecture logicielle ; donc si vous essayez frénétiquement d’assommer un bug, vous risquez de casser autre chose. Une approche plus structurée vous permettra de découvrir ce qui est à l’origine du bug et de réparer sa cause première.
Bien que les bugs puissent être stressants, ils constituent également une excellente manière d’acquérir de nouvelles connaissances sur votre logiciel. Le fait de les traquer représente une opportunité de comprendre ce qu’il s’est passé, de le rectifier, et d’éviter que cela ne se reproduise. C’est une bonne chose !
Types de bugs
Mieux comprendre les bugs constitue une première étape pour que vous puissiez prioriser ceux qui méritent votre temps. Il existe deux types de bugs principaux :
Pannes
De temps en temps, un bug troublera le flux de votre application à tel point qu’une erreur apparaîtra aux utilisateurs ; il pourrait provoquer l’arrêt de leur programme, ou leur donner un résultat incorrect ! Dans des circonstances extrêmes, cela pourrait occasionner des cris.😱 Vous ne voulez pas faire crier vos utilisateurs.
Les erreurs qui impactent directement vos utilisateurs sont connues sous le nom de pannes. Qu’il s’agisse d’une exception ou d’une application qui plante, lorsque votre utilisateur est impacté de façon négative, le bug devient une priorité.
Des développeurs qui ont été trop paresseux par le passé pour utiliser try et catch ont donné une mauvaise réputation aux applications Java qui spammeraient les utilisateurs avec des exceptions d’aspect technique et de longues stack traces. L’information indique une panne logicielle. Elle est utile aux développeurs, mais non aux utilisateurs, car ils ne peuvent rien y faire. La leçon à retenir est de toujours utiliser catch et de gérer vos exceptions, afin que vos utilisateurs n’aient pas à le faire !
Défauts
Tous les bugs ne gâchent pas la journée de vos utilisateurs. Les défauts sont des bugs qui pourraient exister silencieusement, sans se faire remarquer par les personnes utilisant votre logiciel. Ils provoquent des comportements inattendus dans le code, mais pas suffisamment pour gêner visiblement l’utilisateur.
Par exemple, un message d’erreur pourrait être mal formulé ou affiché avec la mauvaise couleur. Des valeurs monétaires pourraient être arrondies à cinq décimales au lieu de deux, alors que les utilisateurs ne s’intéressent pas à ces valeurs de toute façon.
Dans bien des cas, les tests détecteront ces erreurs, la spécification n’étant pas respectée : néanmoins, ces bugs se glissent en production occasionnellement. Pourquoi cela arrive-t-il ? Tout simplement parce que ces cas n’ont pas été testés, car personne n’a pensé à écrire un test pour ce scénario en particulier, avec toutes ses nuances.
Les défauts seraient donc simplement des pannes moins graves ?
Oui. Les pannes sont les points culminants des défauts. Les défauts créent un effet boule de neige jusqu’à arriver à un problème qui empêche l’utilisation de votre application – autrement dit, une panne ! Souvenez-vous que, quel que soit le nom que vous utilisez, c’est quelque chose que votre logiciel fait alors qu’il ne devrait pas.
En résumé
Les défauts sont des erreurs dans le logiciel qui peuvent rester en sommeil et ne sont pas toujours apparentes.
Les pannes sont causées par des défauts dans le logiciel et empêchent les utilisateurs d’utiliser votre logiciel.
Vous vous demandez comment résoudre ces défauts et ces pannes ? Découvrez la méthodologie du débug dans le prochain chapitre !