Revue de presse Industrialisation PHP de la semaine 26 (2010)
Voici la dernière revue de presse avant les vacances. Selon l'actualité, j'espacerai peut-être un peu les revues de presse pendant les deux mois qui arrivent.
10 Tips for Optimizing MySQL Queries (That don’t suck)
Les conseils d'optimisation pullulent sur internet. Malheureusement, le meilleur côtoie parfois le pire comme le montre Jesse Farmer avant de proposer une liste des 10 optimisations pour MySQL qu'il considère utiles.
C'est la fête du test
Dans le prolongement de mon article sur le TestFest PHP 2010, Frédéric Hardy a rédigé un article qui explique en détails comment écrire son premier test unitaire pour PHP.
Xdebug 2.1
Derick Rethans a publié cette semaine la version 2.1 de son outil Xdebug. Cette version est la première à être totalement compatible avec PHP 5.3. Au menu des nouveautés, on trouve notamment la possibilité de tracer l'assignation des variables, de désactiver les opérateurs @ et de savoir quel bout du code a défini des entêtes HTTP.
Do yourself a favour and don’t test using HTTPS
Utiliser des connexion HTTPS en production est une très bonne chose mais cela complique souvent les tests IHM. Adam Goucher explique les raisons du problème et propose de tout simplement ne pas utiliser HTTPS lorsqu'on n'est pas en production.
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.

