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 :

[Tests] Test unitaire VS test fonctionnel (qualité VS charge de travail)


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Inscrit en
    Février 2004
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 342
    Par défaut [Tests] Test unitaire VS test fonctionnel (qualité VS charge de travail)
    Voilà,

    je reprends une vieille appli web en php peu maintenue que j'avais codée il y 4 ans. A l'époque, un des gros items que j'ai hésité à implémenter pour finalement laisser tomber: le test automatique. (oui aujourd'hui je m'en mords les doigts...:p)

    Aujourd'hui l'appli est critique, ses data aussi. Pas moyen d'introduire de la regression avec des nouvelles feats.

    Donc je voudrais mettre en place ce qu'il y aurait du y avoir depuis le début: un systeme de test automatique de l'appli.

    J'ai vu plusieurs approches:
    1. le test unitaire brut : on teste fonction par fonction via un script
    2. le test foncitonnel: on se fout du code et on "simule" le fonctionnement de l'appli avec un robot qui effectue des operations de base depuis le browser comme le ferait le user final. ex: taper blabla dans le champ nom, cliquer sur OK, vérifier que le message "nom bien enregistré" apparaisse, etc.

    D'intuition j'ai le sentiment que les deux sont complémentaires. Par contre j'ai relativement peu de tps à y consacrer donc je ne pourrais pas tt faire.
    Donc voilà ma question:
    d'après vous, quelle technique de test automatique utiliser pour
    => maximiser la qualité perçue (par le client)
    => en minimisant la charge de travail et le risque de regression

    ?

    merci

    ps: j'ai souvent vu des toolkits qui proposent soit l'un (phpunit?), soit l'autre
    (ex: selenium), rarement les deux à la fois. Peut-etre SimpleTest fait les deux mais leur site prévient que le support de javascript est faible là où justement il y a un bon volume de javascript dans l'appli...
    si peu de tps pour tt évaluer

  2. #2
    Membre éclairé

    Inscrit en
    Février 2004
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 342
    Par défaut
    pour ceux que ca interesse...

    finalement je me suis dirigé vers Selenium.
    L'écriture des scenario de tests est quasi automatique (ie ca "enregistre" ce qu'on fait dans firefox). IL faut surtout modifier qqs click() and clickAndWait() ajouter des pause() si on fait des appels à javascript, et ne pas oublier des traitres WaitForPAgeToLoad() (j'ai pas mal galéré avant de le voir celui-là...)

    au final, j'ai rapidement écrit des scenario de test dont la couverture fonctionnelle est proche de 80% ce qui est tout à fait satisfaisant.
    Certes tout n'est pas couvert. c'est par exemple impossible de vérifier des fichiers téléchargés.

    En tt cas, c'est sympa, je suis vraiment rassuré sur la qualité du code que je met en prod. Le petit plus sympa c'est que contrairement à du test unitaire assez "geekeux", le script de selenium IDE fait tt de suite sens pour mes clients qui visuellement comprennent tout de suite l'interet.

    Que du bonheur.

  3. #3
    Membre éclairé

    Inscrit en
    Février 2004
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 342
    Par défaut
    un petit détail

    Selenium IDE est un plugin de firefox à la base (donc les tests ne sont effectués que depuis firefox).
    Par contre, il est possible d'exploiter les scenario de test dans internet explorer, safari, opera, etc. mais la manip serait plus compliquée (utilisation de Selenium RC si je ne m'abuse)

    evaluation en cours

  4. #4
    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
    Par défaut
    Bonjour,

    Vu le peu de temps que tu pouvais y consacrer, je crois que tu as choisi la bonne solution.

    Ceci dit, perso, je crois que la vraie solution consiste à produire les deux niveaux de tests. Selenium pour les tests fonctionnels ou systèmes et PHPUnit ou Simpletest pour assurer la qualité du code et valider que nous n'avons rien cassé en apportant des modifications.

    Si tout à coup l'application est devenue critique et que des évolutions sont prévues, je crois que les tests unitaires deviennent essentiels. Ne serait-ce que pour nous protéger des défectuosités/anomalies/bogues/concomberies que nous allons y ajouter nécessairement... (j'ai toujours pensé que notre travail ne consiste pas à produire du code mais plutôt à gérer les bogues... c'est pourquoi je ne suis plus programmeur mais chasseur ... et testeur et débogueur et commentateur et etc. tout pour améliorer la qualité et réduire le travail de maintenance!)

    Tourelou,
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

  5. #5
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut test automatique fonctionnel
    Bonjour,
    Je étudiante en informatique, j'ai commancé un stage de fin d'étude autant ingénieur de qualité, mon projet et de faire un outil de test automatique fonctionnel(non régression).
    D'aprés vos message je vois que vous avez beaucoup d'éxpérience en ce dommaine! est ce que vous pouvez me dire les outils les plus importants sur le marché veut dire comparaison entre ces différants outils.
    je vous remerci d'avance.

  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
    Par défaut
    Citation Envoyé par lilibey Voir le message
    Bonjour,
    Je étudiante en informatique, j'ai commancé un stage de fin d'étude autant ingénieur de qualité, mon projet et de faire un outil de test automatique fonctionnel(non régression).
    D'aprés vos message je vois que vous avez beaucoup d'éxpérience en ce dommaine! est ce que vous pouvez me dire les outils les plus importants sur le marché veut dire comparaison entre ces différants outils.
    je vous remerci d'avance.
    Bonjour Lilibey,

    Tout dépend cde ce que tu veux tester. Les produits cités dans les billets ci-haut sont généralement utilisés pour tester des sites ou applications web.

    En fonctionnel, Selenium fait le travail à ce niveau comme l'a si bien décrit fourchette.

    Si par contre, tu veux tester, toujours en fonctionnel, une application windows, tu peux peut-être t'inspirer de pyWinAuto ou de ses frères sur http://openqa.org.

    Finalement, je ne suis pas en mesure de te fournir un comparatif entre les principaux joueurs. Il y a sûrement plusieurs outils commerciaux sur le marché mais perso, je n'ai touché qu'à ceux cités ci-haut et ces temps-ci, pyWinAuto, tous logiciels libres.

    Tu peux peut-être aussi jeter un coup d'oeil sur Expect (http://expect.nist.gov), autoexpect (http://expect.nist.gov/example/autoe...xpect.man.html) et sur AutoHotKey (http://autohotkey.com).

    En espérant que ceci t'aide un peu,
    Laplix
    Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.

    Laplix
    http://pmo.developpez.com/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/07/2010, 05h35
  2. Tests non unitaires
    Par sbrisard dans le forum Langage
    Réponses: 5
    Dernier message: 09/09/2009, 09h28
  3. [CruiseControl] Comment avoir les résultats de test non-unitaires ?
    Par SimonTab dans le forum Intégration Continue
    Réponses: 0
    Dernier message: 26/06/2008, 10h30

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