in tester test tdd ~ de lecture.

Tester c'est douter

Qui n'a jamais entendu cela de la bouche d'un développeur inexpérimenté ou qui ne s'est jamais fait charier par ses collègues parce que vous passez trop de temps à écrire vos classes de tests ?
Pourtant les tests sont indispensables aujourd'hui et voici les raisons qui me poussent aujourd'hui à faire passer le message à tous ceux qui en douteraient encore.

Test en java

Tester pour refactorer

Un bon développeur est un développeur qui écrit du code propre, lisible par autrui et refactorable à souhait.

Pour le code propre et lisible par autrui, voici ce qu'il faut respecter :

  • concevoir avant de foncer tête baissée
  • nommer intelligemment vos classes/variables en exprimant l'intention afin d'avoir du code autodocumenter
  • Respecter au maximum les principes KISS, DRY et YAGNI

Pour la partie refactorable, voici l'unique solution :

  • les tests

Parce que le temps passe et que les fonctionnalités s'accumulent, parce que les développeurs historiques sont partis, parce que des changements ont été fait par-ci par-là, etc. afin d'éviter d'avoir peur de modifier du code et de provoquer des régressions, la seule façon de se rassurer ce sont les tests qui passent toujours "au vert" car ils décrivent à eux seuls le comportement de votre application.

Les différents types de tests

Qu'ils soient manuels ou automatisés, les tests font partie intégrante du développement d'une application, en voici une liste non exhaustive de par mon expérience :

Chaque type de test est généralement à la charge d'une équipe différente, ceux à la charge du développeur sont essentiellement les tests unitaires et d'intégration, les tests fonctionnels dans une moindre mesure.

Développer par les tests (TDD)

Je ne suis pas particulièrement convaincu par cette approche, non pas par scepticisme mais plus par manque de pratique, je n'ai encore jamais vraiment eu l'occasion de travailler de cette façon ni même d'assister à des conférences sur le sujet.

Le développement dirigé par les tests est basé sur un cycle à 3 états : Red, Green et Refactor

  • Red : écrire un premier test et vérifier qu'il échoue (car le code qu'il teste n'existe pas), afin de vérifier que le test est valide
  • Green : écrire juste le code suffisant pour passer le test et vérifier que le test passe
  • Refactor : réusiner le code, c'est-à-dire l'améliorer tout en gardant les mêmes fonctionnalités

La mise en pratique du TDD est particulièrement mis en avant avec l'approche de développement populaire actuel : le Craftmanship.

Ne pas tester c'est douter !

ne-pas-tester-cest-douter