IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

Quelle librairie utilisez-vous pour écrire vos tests ? [Débat]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut Quelle librairie utilisez-vous pour écrire vos tests ?
    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

  2. #2
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut test ou profiling
    Je fais les tests au fur et à mesure du développement. En fait je séquence le projet en mini-projets jusqu'à obtenir des tâches d'une durée inférieure à 16h à accomplir. (méthode Sprint connue aussi sous le nom de Agile). Puis pour chaque tâche réalisée je teste.

    Lorsque j'hésite entre plusieurs méthodes, je profile avec Xdebug pour savoir laquelle est la plus efficace et la plus rapide. Enfin ça c'était dans le passé car aujourd'hui je manque cruellement de temps pour ce genre de plaisir. Comme quoi, les bonnes habitudes sont bien plus facile à perdre que les mauvaises.

  3. #3
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut
    Citation Envoyé par david drapeau Voir le message
    JLorsque j'hésite entre plusieurs méthodes, je profile avec Xdebug pour savoir laquelle est la plus efficace et la plus rapide.
    Mmm, j'ai bien essayé d'installer Xdebug il y a quelques mois mais sans succès. Un problème de compatibilité de version si je me rappelle bien. J'ai laissé tomber après quelques jours.

    Je roule un WAMP personnel et quelquefois, j'ai de a difficulté à faire fonctionner tout ça ensemble

  4. #4
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut
    Pour ce qui est de l'environnement, en pro j'utilise Xampp1.6.6 sous Win XP et en perso, j'utilise Debian avec PHP6 et MySQL6.0.2alpha et Apache2.2.9

  5. #5
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut Pro v/s perso
    Pour être honnête, je ne fais pas de développement web professionnellement. Je suis analyste/programmeur pour une entreprise qui écrit des logiciels de gestion et celui sur lequel je travaille est programmé en Informix 4GL, compilé avec Généro de 4Js et existe depuis la fin des années '90.

    C'est pourquoi, en perso, je fais du PHP/MySql depuis plusieurs années, pour avoir un peu de jazz dans ma vie

    Au départ, j'ai utilisé FoxServ si je me rappelle bien mais depuis quelques années, je préfère installer mon environnement manuellement. Ce qui me faire quelquefois des problèmes, exemple Xdebug.

    Donc je vis avec Apache/2.0.63 (Win32) DAV/2 SVN/1.1.3 mod_python/3.3.1 Python/2.5.1 PHP/5.2.5 Server et Mysql 3, 4, 5, 5.1 et 6 que je démarre/arrête selon le besoin. J'ai aussi quelques autres versions de PHP au cas où (mais pas encore PHP6). J'utilise Trac/subversion pour la gestion de mes projets. Plein de plaisir!

    Finalement, j'utilise Simpletest pour les tests unitaires de PHP et Selenium pour les tests fonctionnels web.

    Mais, comme mon plus récent projet doit devenir une application Adobe Air, je vais explorer la possibilité d'utiliser pywinauto pour les tests fonctionnels. Cela va me permettre d'étudier un peu python.

  6. #6
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut Personne ne teste?
    Sauf David et quelques autres, il semble que personne ne teste ses applications!

    Je me trompe sûrement! Je sais, je sais, tester est une tâche pénible. Mais... Une application de qualité demande des tests exhaustifs. Du moins, c'est ce que j'ai appris au cours de ma vie de programmeur.

    À moins que vous ayez une recette à succès qui vous permet de ne pas évoquer vos problèmes sur le forum de Tests PHP. Ce dernier a été créé pour partager vos trucs et astuces, obtenir réponse à vos problèmes, etc.

    Si vous avez effectivement une recette à succès, J'aimerais bien la connaître. Je suis en train d'écrire de nombreux tests contre la librairie PhpMyObject et oui, je l'avoue, je trouve le temps long. J'utilise SimpleTest et j'apprends beaucoup.

    Donc, comment faites-vous vos tests?

    • Manuellement?
    • Avec un logiciel?
    • Et si oui, lequel?


    Tourelou,
    Laplix

  7. #7
    Membre actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 183
    Points : 207
    Points
    207
    Par défaut
    Je débute dans l'utilisation des tests et je ne vois pas encore toutes les subtilités d'utilisation mais pour le peu de test que je fait c'est avec phpunit

    Je développe principalement avec Zend Framework qui utilise phpunit pour leur tests unitaires.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Zend_Test en ce qui concerne le Zend Framework ( un article va venir ).
    C'est une surcouche de PHPUnit permettant de tester fonctionnellement l'appli et le modèle MVC ( couplé à Selenium c'est bien bon )

  9. #9
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut
    Pour ceux qui connaissent, quels seraient les avantages/désavantages de PHPUnit par rapport à Simpletest?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Je connais mal SimpleTest, mais à l'époque, PHPUnit était beaucoup plus maintenu que ST, et surtout possède un support 100% PHP5 (est ce le cas aujourd'hui de ST ?)
    Je sais pas si ca a changé, mais ya des commits dans PHPUnit tous les jours, le projet donne vraiment l'impression d'avancer à toute vitesse (la version 3.3.0 est là, et la version 4 que j'attends avec impatience est sur les rails)

    Des news de ST ?

  11. #11
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Hello,

    J'utilise aussi SimpleTest. Je suis dans un contexte procédural, donc pas testable unitairement, mais qui au fur et à mesure du temps, se voit migrer vers l'objet. Tout nouvelle fonctionnalité est testée unitairement (en prime en mode TDD si possible) ainsi que tout refactoring. à l'exception des périodes de rush où je n'ai clairement pas le temps d'écrire du test unitaire. c'est rageant car je sais que je le paierai plus tard mais parfois faut savoir mettre de l'eau dans son vin et livrer un produit plus ou moins dans les temps !

    A l'époque où je devais choisir entre SimpleTest et PHPUnit, ST offrait les mocks et d'autres fonctionnalités qui ont fait penché la balance. Dorénavant je sais que PHPUnit a largement rattraper son retard, mais ST répond à mon besoin alors je ne vais pas changer...

    Je n'ai pas beaucoup de test unitaires, seulement 1200, mais je compte bien faire grimper ce nombre !

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    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

  13. #13
    Membre actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 183
    Points : 207
    Points
    207
    Par défaut
    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

  14. #14
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut
    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.

  15. #15
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut
    @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.

  16. #16
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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.

  17. #17
    Chef de projet PhpMyObject
    Avatar de Laplix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 210
    Points
    210
    Par défaut
    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...

  18. #18
    Membre habitué

    Inscrit en
    Février 2004
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 342
    Points : 197
    Points
    197
    Par défaut
    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...

  19. #19
    Membre habitué

    Inscrit en
    Février 2004
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 342
    Points : 197
    Points
    197
    Par défaut


    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 !!!

  20. #20
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    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 ?

Discussions similaires

  1. Quel outil utilisez vous pour concevoir vos bases de données
    Par Matthieu Brucher dans le forum Outils
    Réponses: 93
    Dernier message: 01/08/2014, 16h20
  2. Réponses: 3
    Dernier message: 07/09/2011, 17h40
  3. Quels outils utilisez-vous pour créer vos rubans?
    Par Arkham46 dans le forum Microsoft Office
    Réponses: 2
    Dernier message: 02/01/2011, 23h27
  4. Réponses: 7
    Dernier message: 12/04/2010, 23h52
  5. Réponses: 11
    Dernier message: 07/04/2009, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo