09/09/2011

Couverture de code de PHP : un avis sur la polémique de PHP 5.3.7 ?

Si vous êtes intéressé par la couverture de code de PHP* (la manière dont les fonctions natives du langage sont testées par des Tests unitaires), il est très intéressant de consulter http://gcov.php.net/ .

Ce site contient en temps réel les compte-rendus de la couverture de la version en cours de PHP (PHP 5.3) et la la prochaine version (PHP 5.4)

Vous y trouverez :

  • la couverture de code
  • les compte-rendus de compilation
  • la liste des fonctions en erreur / warning
  • la liste des fonctions non testées

Ce site va peut être mettre fin aux polémiques sur le workflow des versions de PHP. En effet, on se souvient tous de l'affaire récente de PHP 5.3.7 qui a révélé de grosses lacunes dans le langage (à savoir que les versions stables de PHP contiennent en réalité de nombreuses fonctions dont les tests unitaires échouent).

J'ai bien envie de tirer alors un petit bilan, qui n'engage que moi, mais sur lequel j'aimerai avoir votre avis. Je pense que depuis PHP 5.3, PHP s'est largement professionnalisé, grâce à d'une part un nouveau modèle Orienté Objet plus riche, d'autre part l'appropriation par les développeurs des outils de PIC (Plate-forme d'intégration continue) et de phpUnit en particulier.

Cette professionnalisation a amené de nouveaux types de développeurs PHP, avec de nouvelles exigences, auxquelles PHP tente de répondre aujourd'hui.

Je pense alors que, oui on peut critiquer le processus actuel de mise en production de PHP, car avec PHP 5.3.7 PHP a été la "risée" du web (j'éxagère exprès, mais disons que ça ne l'aide pas à effacer l'image très négative des développeurs PHP, qui sont souvent considérés comme des "sous-développeurs", même encore aujourd'hui).

Mais c'est sur la bonne voie. PHP se professionnalise, se réorganise (processus de votes, passage de subversion à git...), se réoriente. Le langage répond de mieux en mieux à nos exigences de qualité (il suffit de voir le nombre de type d'exceptions dans la SPL par exemple, ou encore l'apparition des Traits dans PHP 5.4). Bref, je trouve dommage de jeter la pierre, comme certains l'ont fait, à un langage qui est dans une phase de transition, et, je l'espère, de transition positive.

Et vous ? Pensez-vous également que cette phase de transition soit positive ? Il serait aussi intéressant de savoir ce qu'en pensent des développeurs d'autres langages, pour connaître des avis extérieurs...

____________

* note pour  ceux qui ne sont pas familiarisés avec les tests unitaires, il est peut-être temps de vous y mettre :-) . L'outil le plus utilisé est PhpUnit, mais un "nouveau" venu qui a l'air bien conçu mais que j'ai pas encore eu l'occasion de tester est Atoum, de Frédéric Hardy.

Pour générer un compte rendu de la couverture de code avec phpUnit, cette simple commande suffit :

phpunit  --coverage-html /chemin/du/rapport/ /chemin/des/tests/unitaires
blog comments powered by Disqus