Pourquoi les développeurs doivent (toujours) tester leur code

Pourquoi les développeurs doivent (toujours) tester leur code

Les développeurs doivent tester leur code ! C’est une certitude et une obligation. Comme toute personne intervenant sur le projet : développeurs, product owner, business, etc. Chacun, à un moment, devra participer à une phase de test. Et chacun devra réaliser certains types de tests en adéquation avec le niveau de test.

Pourquoi les développeurs doivent tester leur code ? Principalement pour les responsabiliser sur leur travail. Ils produiront ainsi du meilleur code car ils seront plus impliqués.

Mais comment peuvent-ils tester efficacement leur propre travail ? Comment peuvent-ils être honnête dans leur test ?

Les développeurs doivent faire 2 types de tests pour vérifier la qualité au maximum de leur travail. Ainsi ils pourront garantir le bon fonctionnement du système au regard des spécifications techniques. Le premier type de tests est le test de composant. Le second type de tests est la revue du code.

#1 Les tests unitaires ou test de composant

Le composant est l’unité la plus petite dans un ensemble de codes. Il représente une partie d’un programme. Les tests de composants ont donc pour but de vérifier le bon fonctionnement comme spécifié dans les spécifications techniques. Les tests de composants sont aussi appelés tests unitaires. Les tests se font au niveau du code. Les développeurs prennent donc en chargent les tests de composants.

La plupart du temps les tests unitaires font l’objet de scripts de développement pour pouvoir les jouer à chaque livraison.

Pendant de longues années le test unitaire a souvent été vue par les développeurs comme secondaire. Et dans les projets à budgets contraints (ou non) il passe souvent à la trappe. Ce qui est, d’un point de vue de la qualité, une grave erreur. Plus on teste tôt le système et moins il est coûteux de tester. La confiance dans la qualité du logiciel est plus importante. Les phases de tests suivantes se font plus rapidement, avec moins de stress.

D’ailleurs les méthodes de développement type Extreme Programming (XP) ou Test Driven Development l’ont bien compris. Les tests unitaires sont au centre (et plus particulièrement au début) du processus de développement. Premièrement on écrit le test et on l’exécute. Donc il échoue. Puis on développe la fonction pour que le test soit passant. La qualité est ainsi une préoccupation majeure et constante des développeurs.

#2 Revue de code ou test par les pairs

La revue de code est un examen du code par les différents développeurs travaillant sur le projet. Comme pour les tests unitaires, l’objectif est de trouver des bugs de conception au plus tôt afin d’améliorer intrinsèquement la qualité des développements. Et encore une fois, même si la notion de revue de code est connue depuis longtemps, elle est assez peu mise en place par les équipes de développement.

A nouveau avec les méthodes d’extreme programming ou agiles, la revue de code redevient un élément essentiel dans le processus de qualification d’un logiciel.

La revue de code est particulièrement efficace. Sachant que son code va être revu par un tiers qui est lui-même membre de l’équipe, le développeur va s’astreindre à une auto relecture. Comme quand on relit un texte, relire son code permet de corriger les principaux défauts.

Des logiciels existent pour aider dans cette tâche comme SonarQube. Mais à mon sens déléguer tout ou partie de ce travail à un automate c’est remettre en partie en question les fondements et bénéfices de la revue de code par ses pairs. Le développeur relira moins son code. Il sera moins impliqué dans la qualité du code car délégué à une machine. On revient au point de départ.


En conclusion, même si les développeurs ne doivent surtout pas tout tester, ils sont les principaux artisans de la qualité d’un logiciel. Mettre en place ces 2 bonnes pratiques dans vos projets de développements va vous assurer entre autres :

  • Meilleure qualité du code ;
  • Maintenabilité facilitée ;
  • Réduira les coûts de développements ;
  • Optimisera le budget alloué aux tests ;
  • Renforcera la cohésion des équipes.
Written by
Xavier Brice
Join the discussion

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Rocket Your App To the Next Level

Votre Spécialiste Assurance Qualité Pour Vos Sites Web Et Applications Mobiles. Nous fournissons des services de test pour tout ce qui apparaît sur un écran et interagit avec un humain. Parlons test!