Débat PHP : Quelle librairie utilisez-vous pour écrire vos tests ?

Le , par Laplix, Chef de projet PhpMyObject
Je me posais la question.

Personnellement, j'utilise http://simpletest.sourceforge.net/ et même si je ne suis pas un habitué des tests unitaires, j'ai tout de même réussi à écrire rapidement 174 tests à l'intérieur de 13 ou 14 "test cases" pour PhpMyObject. Et après beaucoup de lecture sur le net, je réalise que j'aurais dû faire ceci il y a au moins une décade .

Je vois que que karl3i et AprilONeil utilisent PHPunit mais je constate aussi que pratiquement personne ne semble se soucier de tester leur application. Du moins, c'est ce que le peu de billets sur ce forum laisse entendre.

Est-ce que je me trompe?
L


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de kaymak kaymak - Membre chevronné https://www.developpez.com
le 25/09/2008 à 14:39
Salut,

J'aimerais bien répondre à la question, mais à chaque que j'ai voulu me renseigner (bon sa date de quelques mois maintenant..), trouver des informations sur ces outils, des exemples, je me suis retrouvé le bec dans l'eau.... Donc actuellement c'est manuel.... c'est pesant, car des fois je fais des mises à jour sans être tout à fait certain qu'aucun effet de bord n'est apparu. Et cela est assez lourd à vivre certains jours : \

En tout cas je ne doit pas être le seul dans ce cas là, non ?

Donc si vous avez des infos, ou des exemples à fournir ; )

bye
Avatar de Ashgenesis Ashgenesis - Membre actif https://www.developpez.com
le 26/09/2008 à 14:29
Je suis étonné de voir que tu n'ai rien trouvé sur les tests unitaires c'est pourtant un domaine qui a l'air de se répandre.

un vieille article mais tout de même intéressant,
http://onpk.net/talks/fosdem2005/int...impletest.html
Tu peux aussi te pencher sur les contributions de l'auteur qui utilise depuis pas mal de temp simpletest
Avatar de Laplix Laplix - Chef de projet PhpMyObject https://www.developpez.com
le 26/09/2008 à 18:42
Voici un petit récapitulatif des adresses signalées dans cette discussion ainsi que quelques articles glanés ici et là sur developpez et sur le net.

Les logiciels



Quelques articles sur developpez.com



Sur Wikipedia



Une recherche sur Google avec les mots clés test unitaire retournera également un grand nombre d'articles intéressants sur le sujet.
Avatar de Laplix Laplix - Chef de projet PhpMyObject https://www.developpez.com
le 26/09/2008 à 18:59
@doctorrock

La dernière version de Simpletest, la 1.0.1 publiée en avril 2008, supporte les versions PHP4.2 jusqu'à PHP5.3. Il s'agit de la dernière version qui supportera PHP4. Les prochaines versions supporteront PHP5.0.5+.

Même si j'aime bien Simpletest, je dois avouer que je suis débutant dans le Test Driven Development (TDD) et que pour le moment, j'essaie surtout d'amener les tests à niveau pour PMO. Je vais aller jeter un coup d'oeil sur PHPUnit, question de voir la différence entre les deux et peut-être décider lequel serait mieux approprié pour mon projet. Je ne suis pas si avancé dans mes tests et le choix de l'outil est important au démarrage.

Mr N indique dans son commentaire qu'il a déjà 1200+ tests. Je suis chanceux d'en avoir 10 fois moins. Si, effectivement, PHPUnit s'avère être un meilleur outil, ré-écrire les quelques 200 tests de PhpMyObject ne sera pas trop pénible.
Avatar de Yogui Yogui - Rédacteur https://www.developpez.com
le 29/09/2008 à 11:42
Pour avoir rencontré Sebastian Bergmann à plusieurs reprises par le passé (et sans doute encore prochainement), je peux vous assurer qu'il tient à coeur l'évolution de PHPUnit. Il est parfaitement conscient des problématiques liées aux tests, à tel point qu'il est également fortement impliqué dans PhpUnderControl, un projet qui réutilise CruiseControl pour l'assurance qualité dans les gros développements.
Avatar de Laplix Laplix - Chef de projet PhpMyObject https://www.developpez.com
le 29/09/2008 à 20:10
Pour ma part, il s'agit d'une décision importante. Je suis allé visiter le site de PHPUnit et j'ai bien vu l'évolution de ce framework de tests. J'en ai lu (bon disons plutôt scanné) la documentation et mon sentiment est que PHPUnit sera très utile pour les grosses applications.

Dans mon cas, PMO est une librairie tout de même assez simple et légère. Simpletest est, comme son nom l'indique, "simple". Même si je veux couvrir 100% du code avec des tests, je veux tout de même maintenir l'aspect "simple et facile" de la librairie, y compris dans ses tests.

Personnellement, je crois que pour des applications (ou sites webs) petites à moyennes, Simpletest est le meilleur outil justement à cause de sa simplicité. Par contre, si un projet est prévu complexe, je crois que PHPUnit est la meilleure solution puisqu'elle offre, amha, des outils extrêmement puissants (annotations entre autres) pour exercer la qualité du produit.

Je vais revenir sur ce sujet. Sur Wikipedia, j'ai vu plusieurs frameworks dont certains m'intriguent (je dois retrouver le lien...). L'univers du contrôle de la qualité est très vaste et vraiment très intéressant...
Avatar de fourchette fourchette - Membre habitué https://www.developpez.com
le 09/02/2009 à 10:03
Le dernier msg datant de bientot 6 mois, je me demandais si qqn avait fait un sérieux PhpUnit VS SimpleTest. Les avantages, les inconvenients, etc.

J'ai regardé SimpleTest dernièrement, autant le truc qui émule le browser est à écarter completement (préférer de loin Selenium), autant le reste de la lib a l'air pas mal du tout...
Avatar de fourchette fourchette - Membre habitué https://www.developpez.com
le 27/02/2009 à 12:56


petit message sur ce sujet.

vaste theme que le phpUnit vs SimpleTest

avec le temps j'ai appris à me méfier de tout projet informatique qui a "simple" dans son nom (ceux qui ont gouté à Simple Mail Transfert Protocol ou mieux Simple Network Management Protocol se reconnaitront)

bon j'ai finalement choisi simpletest.... POUR LE MOMENT...

J'ai découvert SimpleTest à un moment où je cherchais à faire du test fonctionnel (simuler un user et ses clics dans le browser) et j'avais donc évalué la partie webTest de cette lib.
=> à jeter
je suis un peu dur, mais en gros ca supporte pas javascript, c'est tres tres limité. Le seul avantage est que ca s'intègre bien dans une suite de test déjà en php (forcement). En pratique je passasis mon temps à lire les noms de champ dans le code htlm au lieu d'avancer. Pour le test fonctionnel, c'est bcp + efficace d'aller voir Selenium (commencer par Selenium IDE).

Par contre, pour ce qui est du test unitaire, cad tester qu'une fonction ou une classe a bien le comportement attendu...
là on est en plein dedans avec phpUnit et SimpleTest.

Pk j'ai pris SimpleTest?

=> ben parce que c'est vraiment ca en fait : simple.
tt betement parce qu'en 5min, j'ai réussi à faire ce que je voulais faire avec SimpleTest, là où apres 15min j'ai laché phpUnit (je suis peut-etre un boulet certes...)

Une lecture très très instructive: le tutoriel de SimpleTest
tres bien fait, ca introduit tout le sujet a travers un cas concret tt en utilisant cette lib, et ca introduit tres bien les questions de design qu'induise le test unitaire.
=> http://www.simpletest.org/fr/first_test_tutorial.html (j'ai mis le lien vers la version fr que j'ai vu à l'instant, moi j'avais lu la version en...)

Attention toutefois.
Quelquesoit la lib que vous choisirez (*), le principal "probleme" d'intégrer du test unitaire si ca n'a pas été fait dès le départ, c'est qu'avant d'écrire le moins 1er petit test, on passe un temps fou à lire sur le sujet et à re-réfléchir son propre code. Cad que "l'approche qualité" induite par le test unitaire peut vous amener à remettre en question toute l'architecture du code. bref, des trucs qu'on n'a pas envie de faire qd on a un timing archi serré et un boss (ou pire un client) sur le dos de longue.

Cela dit. Le jeu en vaut graaave la chandelle. S'il ne vous reste que 20~30% du temps du projet, que vous vous sentez à la bourre avec un code instable, il n'est pas trop tard pour s'y pencher. Ca peut meme sauver le projet.
Au dela... c'est probablement déjà trop tard de toute facon

bon courage

(*) et je pense que phpUnit a de bons avantages que je regretterai pe dans l'avenir... mais bon pour le moment YAGNI !!!
Avatar de gtraxx gtraxx - Membre confirmé https://www.developpez.com
le 30/08/2009 à 23:17
Je déterre ce vieux post car je l'ai vraiment trouvé intéressant.
Je n'ai pas encore eu l'occasion de joué avec les tests unitaires sous php (uniquement pour jquery) et je développe en ce moment plusieurs projets.
Je souhaite y inclure sans trop me fracasser le crâne des tests de qualité sur base de vos recommandations cité plus haut.
Je connais de réputation phpunit mais je le trouve un peux difficile à appréhender lors d'un début de test simple.
Je viens juste de lire "simpleTest" ou du moins de découvrir ce projet.
Les tests unitaire sont ils simple à mettre en place avec simpleTest, est il suffisamment documenté ?
A quoi correspond le projet phpUnderControl ?
Est il possible d'inclure simpleTest dans zend studio 7 ?
Avatar de bilred bilred - Inactif https://www.developpez.com
le 02/10/2009 à 19:22
Moi aussi j'utilise SmpleTest

1- plus facile à installer
2- facile à utiliser
3- docu en fr
4- en plus
Dans ce contexte, SimpleTest aspire à être une solution complète de test pour un développeur PHP et s'appelle "Simple" parce qu'elle devrait être simple à utiliser et à étendre. Ce nom n'était pas vraiment un bon choix. Non seulement cette solution inclut toutes les fonctions classiques qu'on est en droit d'attendre de la part des portages de JUnit et des PHPUnit, mais elle inclut aussi les objets fantaisie ou "mock objects".

vos critique sur mon chois serons les bienvenu.

cordialement
bilred
Avatar de Freyskeyd Freyskeyd - Membre régulier https://www.developpez.com
le 23/02/2012 à 16:19
::

Salut à tous.

J'aimerai avoir un avis sur phpUnit.
J'aimerai réaliser des tests sur des fonctionnements globaux, exemple : exécution de X fonctions, qui font appel à d'autres fonctions etc etc.

J'ai peur que phpUnit soit trop chiant à mettre en place. Au niveau de la création des class de test...

Des avis après utilisations sur des gros projets?

++
Offres d'emploi IT
Ingénieur intégration, validation, qualification du système de drone H/F
Safran - Ile de France - Éragny (95610)
Responsable transverse - engagement métiers H/F
Safran - Ile de France - Corbeil-Essonnes (91100)
Architecte sécurité des systèmes d'information embarqués H/F
Safran - Ile de France - 100 rue de Paris 91300 MASSY

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique PHP