TestFest PHP 2010
Une campagne baptisée TestFest est organisée chaque année par la communauté PHP. Cette année elle s'étale du 1er mai au 31 août bien que son annonce officielle vienne seulement d'être faite.
Son but est d'élargir le cercle des personnes qui écrivent des tests unitaires pour PHP. Il s'agit bien de tests pour vérifier le comportement du langage lui-même. Si PHP est écrit en C, les tests sont eux rédigés au format PHPT. Ce format est relativement facile à prendre en main du fait de sa simplicité. La seule chose déroutante au début est que l''on teste forcément par rapport à un affichage. Pour les fonctions qui n'en produisent pas, ce qui est le cas de la plupart d'entre elles, on affiche le contenu de la valeur de retour au moyen des fonctions echo() ou var_dump().
PHP possède déjà plus de 7 000 tests mais il reste des parties qui sont peu couvertes par des tests unitaires. On peut les repérer grâce à la liste des fonctions testées et au rapport de couverture de code.
Une fois la fonction à tester choisie et le test rédigé, il est temps de l'exécuter. Pour cela, il faut mettre en place un environnement contenant les dernières versions des branches 5.2 et 5.3 ainsi que du tronc du code source. Cette année, des instructions détaillées sont fournies pour Windows, Mac OS X et Ubuntu. Ce dernier bénéficie en plus d'un script qui automatise l'ensemble du processus de mise en place. Bien que conçu pour Ubuntu 9.10, il fonctionne parfaitement sur la version 10.04 sortie récemment.
Des manifestations locales sont organisées un peu partout dans le monde par des volontaires pour aider toutes les bonnes volontés à faire leurs premières armes. Avec un peu d'accompagnement, on écrit son premier test en moins d'une heure et beaucoup moins pour les suivants. C'est très gratifiant de savoir qu'on contribue directement à la qualité de PHP et que des morceaux de son propre code sont distribués avec PHP.
Pour le moment, aucune manifestation n'est prévue en France mais n'hésitez pas à proposer d'en organiser une si vous le souhaitez. Enfin, le TestFest vise à initier des vocations. Si vous souhaitez continuer au-delà de la campagne, n'hésitez pas à le faire.
Mise à jour : Frédéric Hardy a rédigé un article très détaillé sur l'écriture de tests unitaires pour PHP que je vous encourage à lire.

