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

Méthodes Discussion :

Test driven development


Sujet :

Méthodes

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 330
    Points : 85
    Points
    85
    Par défaut Test driven development
    Salut,

    Je viens de lire [ame="http://fr.wikipedia.org/wiki/Test_Driven_Development"]l' article de wikipedia[/ame] à ce sujet.

    Je comprends tout à fait l'intérêt d'écrire le code de test avant le code à tester. Par contre je comprends beaucoup plus difficilement l'intérêt de commencer par écrire le code juste suffisant pour passer le test puis de le refactoriser. Quel est l'intérêt ? Pourquoi ne pas chercher à écrire directement du code le plus abouti possible ?

  2. #2
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    Pourquoi ne pas chercher à écrire directement du code le plus abouti possible ?
    Rappels : faites simple, mais pas plus simple (Einstein) ; L'optimisation prématurée est la racine de tous les maux (ou presque) en programmation (Knuth).

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Parce que croire qu'on peut écrire un code non perfectible dés le premier coup est au mieux un fantasme et au pire très dangereux ...

    Si tu reprend n'importe quel code que t'as écris, normalement si tu le reprend à zéro une seconde fois tu va forcément mieux l'écrire, non ? Au moins tu vas chercher à mieux l'écrire ...

    Je cite Robert C.Martin qui dans son excellent livre Coder Proprement compare l'écriture d'un code à l'écriture littéraire et le besoin indispensable de refactoriser son code, à l'image de l'utilisation d'un brouillon et sa relecture lors d'une rédaction ...

    Le TDD pousse cette réflexion à son extrême, il faut écrire fonctionnelle, simple et se relire ensuite en améliorant le code et l'enrichissant.

  4. #4
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Citation Envoyé par rad_hass Voir le message
    Parce que croire qu'on peut écrire un code non perfectible dés le premier coup est au mieux un fantasme et au pire très dangereux ...
    +1. L'être humain est ainsi fait qu'il est utopique d'espérer pondre un code parfait du premier coup. Les paramètres sont souvent trop nombreux pour les prendre tous en compte d'entrée de jeu de manière satisfaisante.

    A la place, on procède donc par petits pas, de manière à constituer une boule de neige qui grandit au fur et à mesure. Cette vision itérative et incrémentale est d'ailleurs la clé des méthodes agiles qui l'appliquent, au-delà du code, au cycle de vie du produit logiciel tout entier.

    Bien sûr, il y a parfois des incréments évidents qu'on intègrera de manière naturelle sans leur consacrer de cycle TDD supplémentaire. Par exemple, si tu repères que la méthode utilitaire sur une chaine de caractères dont tu as besoin existe déjà dans ton code, tu ne vas pas la réécrire pour ensuite la supprimer lors de la phase de refactoring. Autant l'utiliser tout de suite. Cependant, beaucoup de code smells apparaissent lors de la phase de refactoring et uniquement là, cela vaut donc la peine d'y consacrer une étape entière après que ton test soit passé au vert.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Points : 807
    Points
    807
    Par défaut
    Si le code auquel tu penses doit faire plus de choses que le test que tu écris, peut-être convient-il d'ajouter des cas de tests?

    De toutes façon, si tu rajoutes d'autres choses à ton code que le minimum, en faisant de la couverture de tests ça se verra de suite que certaines parties ne sont pas testée.

Discussions similaires

  1. Test-Driven Development - By Example
    Par forum dans le forum Livres
    Réponses: 0
    Dernier message: 15/07/2014, 21h32
  2. [Livre] Test-Driven Development - By Example
    Par zoom61 dans le forum Livres
    Réponses: 0
    Dernier message: 15/07/2014, 21h32
  3. Réponses: 4
    Dernier message: 15/12/2011, 10h54
  4. Test driven development
    Par Elendhil dans le forum Débuter avec Java
    Réponses: 15
    Dernier message: 08/06/2011, 10h48

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