03.05.2015 Views

gestion_projet_xp

gestion_projet_xp

gestion_projet_xp

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

76<br />

Les pratiques de l’Extreme Programming<br />

PREMIÈRE PARTIE<br />

Les outils : la famille xUnit<br />

Un ouvrage sur XP ne serait pas complet s’il ne présentait pas l’outil fétiche des programmeurs<br />

XP : un module minimaliste dédié aux tests, comprenant les objets de base qui permettent<br />

de définir des séries de tests unitaires, et plusieurs interfaces utilisateurs – lesquelles sont<br />

différentes les unes des autres, mais réunies par un lien de parenté évident.<br />

Cet outil créé par Erich Gamma et Kent Beck a été adapté pour la quasi-totalité des langages<br />

de programmation pratiqués par plus d’une poignée de développeurs dans le monde. On en<br />

connaît ainsi des implémentations en Java (JUnit), en C++ (CppUnit), en Delphi (Dunit), en<br />

Visual Basic (VBUnit), en Smalltalk/Squeak (SUnit), en Ruby (runit), en Python (PyUnit)…<br />

La liste est longue et ne cesse de s’allonger ; c’est devenu un exercice courant pour les<br />

programmeurs XP d’un certain niveau que de découvrir un nouveau langage de programmation<br />

en écrivant la version adaptée à ce langage du «framework», version qui est traditionnellement<br />

nommée selon le schéma «xUnit», ou x est une lettre ou une syllabe rappelant le nom<br />

du langage.<br />

Un rapide panorama de quelques-unes de ces versions permettra de découvrir rapidement ce<br />

qu’il est possible d’attendre d’un outil de tests unitaires.<br />

Degré 0 : interface texte, avec runit<br />

Deux premiers critères sont essentiels en matière de tests unitaires. Ceux-ci doivent<br />

absolument :<br />

• pouvoir être exécutés rapidement ; s’il faut attendre plusieurs heures ou même de longues<br />

minutes avant de voir le résultat de ses tests, l’ennui l’emportera chez les programmeurs<br />

qui ne prendront plus la peine de les exécuter – et donc, rapidement, ne se donneront plus<br />

la peine de les écrire ;<br />

• fournir un résultat déterministe et sans ambiguïté, de type binaire : OK ou KO ; s’il faut lire<br />

soigneusement le résultat d’un rapport de tests pour savoir si le programme fonctionne ou<br />

non, les tests seront bientôt à la merci d’une erreur humaine – or, c’est l’erreur humaine qui<br />

les a rendus nécessaires à l’origine.<br />

La figure 4-1 présente un rapport de tests exemplaire à cet égard : il a été exécuté si rapidement<br />

que le temps total est arrondi à 0 seconde !

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!