Industrialisation PHP

13déc/100

Revue de presse Industrialisation PHP de la semaine 50 (2010)

My privates are not public, they are protected

Le choix de la portée d'une méthode ou d'une propriété lors de la conception d'une classe est un sujet qui déchaine les passions. Stefan Koopmanschap apporte sa pierre au débat.

Practical PHP Testing Patterns: Assertion Message

Giorgio Sironi continue sa série d'articles sur l'écriture de tests unitaires en parlant cette fois des messages liés aux assertions. Il explique qu'il faut y prêter attention car cela permet de cerner plus vite la cause du problème en cas d'échec lors de l'exécution des tests.

Getting History of Table Sizes in MySQL

Le toujours excellent blog MySQL Performance Blog propose une méthode toute bête pour stocker régulièrement la taille des tailles MySQL. Le but est d'avoir un historique de l'évolution des tailles pour affiner la planification de capacité.

How To Get Experience Working With Large Datasets

Une application fonctionnant parfaitement peut subitement s'effondrer sous une affluence soudaine et massive de données. Pour anticiper ce genre de problème, on effectue en amont des tests de charge. La difficulté est généralement de trouver suffisamment de données pour charger le système. Phil Whelan propose différentes pistes pour récupérer ou générer de grandes quantités de données réalistes.

Industrialisation des développements : automatisez votre base de données

Le code source et la base de données sont les éléments fondamentaux d'une application web. Pourtant le premier est bien plus simple à maintenir que la seconde. Faire évoluer de manière structurée sur plusieurs environnements une base de données demande de la méthode et de la rigueur. Heureusement, il existe des outils pour simplifier cette tâche.

24juin/100

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.