Developpez.com - Rubrique PHP

Le Club des Développeurs et IT Pro

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

Le 2008-08-14 22:03:52, 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
  Discussion forum
21 commentaires
  • zyongh
    Membre éprouvé
    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.
  • Laplix
    Chef de projet PhpMyObject
    Envoyé par david drapeau
    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
  • zyongh
    Membre éprouvé
    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
  • Laplix
    Chef de projet PhpMyObject
    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.
  • Laplix
    Chef de projet PhpMyObject
    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
  • Ashgenesis
    Membre actif
    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.
  • 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 )
  • Laplix
    Chef de projet PhpMyObject
    Pour ceux qui connaissent, quels seraient les avantages/désavantages de PHPUnit par rapport à Simpletest?
  • 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 ?
  • Mr N.
    Expert éminent
    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 !