Interview de Frédéric Hardy, créateur d’Atoum, framework de tests unitaires pour PHP

Flattr this!

Je vais vous parler aujourd'hui d'Atoum, un framework de tests unitaires pour PHP encore en développement. En fait, c'est surtout Frédéric, son créateur, qui va s'en charger.

Tout d'abord Frédéric : Bonjour ! Peux tu te présenter brièvement ? Et présenter également ton blog ?

Je suis actuellement architecte logiciel chez PMSIpilot, un éditeur de logiciels à destination des hôpitaux publiques basé à Lyon.
J'y utilise essentiellement PHP, un langage que j'ai découvert en 2000 dans le cadre de mon premier emploi.
Auparavant, j'ai fais 5 ans de C++, à la fois à titre personnel et dans le cadre de mes études, axées sur l'imagerie.
Au cours des années, j'ai également acquis de bonnes connaissances en administration système et réseau, grâce notamment au fait que j'ai travaillé pendant plus de 7 ans pour des opérateurs en télécommunication, ce qui m'a amené à diversifier mes compétences.
Enfin, je me débrouille également en création graphique et en infographie, même si c'est un domaine que j'ai malheureusement laissé de côté, par manque de temps.
Mon blog reflète assez bien ce que je suis, car j'y parle essentiellement de PHP, mais aussi de réseau, de FreeBSD et de gestion de projets sur le mode agile.
D'ailleurs, tu y trouveras un billet qui me résume assez bien (ici).

Allons droit au but, qu'est ce qu'Atoum ?

Actuellement, c'est un framework de tests unitaires spécifiques aux versions de PHP supérieure ou égale à 5.3.
Il a pour objectif affiché d'être simple, moderne et intuitif.

Je crois avoir compris que PHPunit n'est pas vraiment ta tasse de thé. Que lui reproche tu au point de te lancer dans le développement d'un produit "concurrent" ?

La création d'Atoum n'a absolument rien à voir avec PHPUnit et ses éventuels défaut, ou tout autre framework de tests unitaires existant.
Les premières lignes de code de ce qui allait devenir Atoum remonte en effet à 2005.
À l'époque, je venais de créer ma société, et je m'intéressais de plus en plus à la qualité logiciel.
C'est alors que j'ai découvert entre autre le concept des tests unitaires, avec SimpleTest.
Après avoir mis un peu le nez dans le code, j'ai décidé de m'en inspirer pour développer mon propre moteur de tests unitaires, afin qu'il colle au mieux à ma façon de développer.
Je me suis ensuite servi de ce moteur pour (re)développer mon propre framework PHP.
Le tout a ensuite évolué au cours des années, parallèlement à PHP et me servait de laboratoire pour tester les nouvelles fonctionnalités du langage, et cette situation aurait pu perdurer très longtemps.
Cependant, en 2010, je me suis rendu compte de trois choses.
Tout d'abord, j'ai réalisé que le marché des frameworks PHP commençait à être très sérieusement saturé, et qu'il serait très difficile de faire sortir le mien du lot.
Ensuite, j'ai pris conscience que je m'éclatais beaucoup plus à développer ce qui allait devenir Atoum que mon framework en lui-même.
Enfin, j'ai compris que SimpleTest était en train de mourir, et qu'il pouvait être pertinent de proposer une alternative.
J'ai donc laissé tomber le développement de mon framework, et j'en ai extrait ce qui allait devenir Atoum, pour ensuite me concentrer exclusivement sur son développement.
La génèse d'Atoum n'a donc bien rien à voir avec PHPUnit et est plus une prise de conscience du fait qu'un besoin allait émerger et que j'avais dans mes cartons de quoi y répondre tout en prenant mon pied.

Actuellement, où en est le développement? A quand une première release utilisable par le "grand public" ?

Le code d'Atoum a atteint une qualité digne de la production depuis longtemps, grâce entre autre au fait qu'il est conçu en suivant les préceptes agiles, et à l'aide du développement piloté par les tests.
La seule chose qui ne me permet pas de sortir une release est l'absence de site web et documentation, mais nous travaillons activement pour que cela change rapidement.
Il reste également quelques fonctionnalités à peaufiner ou à ajouter pour sortir une version cohérente fonctionnellement.
Je participe cependant à d'autres projets, et le nombre de contributeurs à Atoum est encore réduit.
En conséquence, les choses n'avancent pas aussi vite que je le souhaiterais, mais j'espère tout de même avoir une version 1.0 pour la rentrée de septembre au plus tard.
Cependant, une version de développement est disponible au téléchargement sur http://downloads.atoum.org/nightly sous la forme d'une archive PHAR, qui contient le code d'Atoum le plus récent dont l'intégralité des tests unitaires sont passés sans erreur.
Petite précision, cette version nightly est produite grâce au moteur d'intégration continue intégré à Atoum.
Ce dernier n'a pas en effet pour seule vocation d'être uniquement un framework de tests unitaires.

Reçois tu des aides extérieures ou es-tu seul sur ce projet? Comment doit t'on s'y prendre pour te rejoindre dans ce projet ?

Plus d'une dizaine de personnes ont manifesté leur intérêt pour le projet et suivent son évolution, mais dans les faits, il n'y a pour l'instant qu'un seul contributeur actif au niveau du code, même si je ne désespère pas que les autres trouve le temps nécessaire pour travailler sur le projet.
Je suis donc aidé par François Dussert, qui habite sur Bordeau et qui est également architecte logiciel, mais chez F-Secure.
Il vient d'ailleurs de présenter une conférence au sujet d'Atoum dans le cadre d'un rendez-vous organisé par le Bordeau PUG.
Il a voulu participer au développement d'Atoum car F-Secure ambitionne de l'utiliser dans le cadre de ses développements PHP, et c'est avec joie que j'ai accepté ses contributions au projet.
Nous ne sommes donc pour l'instant que deux à travailler effectivement sur le code d'Atoum, mais comme il va également être utilisé chez PMSIpilot dans le cadre d'un nouveau projet, j'espère que le nombre de contributeurs va augmenter, d'autant qu'une migration de Subversion vers GitHub est prévue à court terme, ce qui devrait faciliter le travail collaboratif.
J'ai de plus également reçu l'aide de Morgan Brunot, aka Oziks sur Twitter et qui est l'un de mes collègues chez PMSIpilot, pour tout ce qui concerne l'aspect graphique et le site web d'Atoum.
Enfin des gens comme Ivan Enderlin, le créateur du framework PHP Hoa, ou Gérald Croes, le père de Copix s'intéressent également au projet, pour diverses raisons, et me font régulièrement des remarques ou des suggestions pertinentes.
Malgré tout, toute aide est la bienvenue, et si quelqu'un souhaite participer au projet, il lui suffit de me contacter.
En effet, entre la rédaction de la documentation, les tests, la création du site d'Atoum et son développement proprement dit, ce n'est pas le travail qui manque.

Merci Frédéric pour ton aimable participation à cette interview !

De rien, passer de l'autre côté du miroir est une expérience intéressante, puisque d'habitude, je suis l'interviewer et non l'interviewé.

En bonus à cette interview, François Dussert met à votre disposition les slides de sa présentation d'Atoum qu'il a effectué au BordeauxPUG.
[slideshare id=8008185&doc=atoum170511-110518044516-phpapp02]

Flattr this!

A propos de Mathieu

Ingénieur développeur web dans la vente par correspondance B2B, adepte de nouvelles technologies et d'innovation. Vous pouvez aussi me retrouver sur Twitter @mathrobin
Cette entrée a été publiée dans PHP, avec comme mot(s)-clef(s) , , , , , , , , , , . Vous pouvez la mettre en favoris avec ce permalien.
  • syndrael

    Hélas il ne tourne que sous 5.3 et la majorité de mes sites s’appuie sur 5.2.x
    S.

  • http://www.mathieurobin.com/ Mathieu

    Il est vrai que c’est gênant pour les sites en production de bonne taille. Mais ceci dit, j’approuve totalement le choix de Frédéric, je le vois comme un encouragement à mettre à jour nos applications. Comme pour nos OS, nos navigateurs, mettre à jour nos versions de serveur est tout aussi important, ne serait-ce que pour les raisons de sécurité.
    Ceci dit, là où on est aidés, vu que c’est un framework de tests unitaires, on peut non seulement s’assurer que tout fonctionne mais en plus on sait vite quelles méthodes testées ne sont pas viables avec PHP 5.3. ça évite de chercher très longtemps. Pratique.

  • http://blog.mageekbox.net mageekguy

    @syndrael : Je sais très bien que le fait que PHP 5.3 sera un frein à l’adoption d’Atoum, mais c’est pleinement assumé car l’un de ses objectifs est justement la promotion de PHP 5.3.

  • http://www.mathieurobin.com/ Mathieu

    Depuis le temps que PHP5.3 est disponible, la question de la migration ne devrait plus se poser. Au passage Frédéric, j’ai pris le temps de tester un peu ce weekend, de m’amuser avec. C’est vraiment pas mal. Je galère encore un peu avec mais ça va venir à l’usage 😉
    Je vais sérieusement réfléchir à l’idée de tester mes devs pro avec. Dès que la doc sera « dispo » histoire d’exploiter à pleine puissance l’outil. Pour le moment, je vais rester sur un usage perso.

  • http://blog.mageekbox.net mageekguy

    Parce que tu parles sur ton blog d’outil que tu n’as pas testé 😉 ?
    Trĉve de plaisanterie, nous sommes en attente de retour sur l’utilisation d’Atoum, soit via qa[At]atoum{DOT}org, soit via IRC, serveur freenode, canal ##atoum.

  • http://www.mathieurobin.com/ Mathieu

    Je te fais mes retours au plus vite. Et en effet, tu viens de ruiner toute ma crédibilité aussi petite soit elle. Je vais donc fermer ce blog :)
    Plus sérieusement, dès que possible, je te fais un retour. Mais j’avouerai qu’avec un peu de doc, je pourrai le faire encore plus vite pour vraiment tester 😉

Articles liés