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

Tests et Performance Java Discussion :

Comportement vs implémentation ? SRP ?


Sujet :

Tests et Performance Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 101
    Points : 71
    Points
    71
    Par défaut Comportement vs implémentation ? SRP ?
    Bonjour,

    Je suis un peu perdu suite à la lecture d'un livre sur JUnit.
    Quelqu'un pourrait, s'il vous plaît, m'expliquer la partie
    Test behavior vs implementation?

    Je vous remercie d'avance pour la prise en considération de cette requête.

    Cordialement,

    Vinz

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Hors contexte c'est un peu difficile de savoir vraiment de quoi tu parles Mais quand on parle de test et de behavior dans la même phrase, ça me fait penser au concept de BDD -> Behavior Driven Development, c'est à dire, une manière d'écrire des tests qui, contrairement aux tests unitaires classiques, ne teste pas les détails d'implémentation d'une partie de code bien isolée, mais plutôt le comportement d'un ensemble d'interactions en utilisant un langage quasiment naturel. En cela, le BDD est une forme de test d'intégration et non plus un test unitaire. Plus d'infos avec les frameworks Cucumber (https://cucumber.io), JBehave (https://jbehave.org) ou encore JGiven (http://jgiven.org) qui sont des "extensions" à JUnit.

    C'est pas facile à expliquer, mais le concept central du BDD est que tu écris des scénarios en langage quasiment naturel (ça pourrait même être le business analyst qui les écrit, même si en pratique c'est une utopie), et avec quelques glues techniques, tu fais en sorte de mapper l'expression de ces scénarios vers le code correspondants:

    Un scénario pourrait s'écrire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    # Scénario "le total est calculé correctement"
    En tant qu'utilisateur
    Lorsque je créé une nouvelle facture destinée au client Toto
    Et que j'ajoute un élément coutant 30€ à la facture
    Alors le total de la facture est de 30€
    Et la balance du client Toto devient -30
    ... le parser du framework (combiné à du code customisé - aka la fameuse "glue" technique) va analyser la structure de l'ensemble et initialiser une nouvelle facture, l'attribuer à Toto, ajouter un élément à cette facture, puis finalement vérifier que le total vaut 30€ et que la balance du client Toto est de -30€.

    Je schématise et prend quelques raccourcis, mais l'idée est là.

    Il va de soit que l'on n'utilise plus de mocks dans le cadre de ce genre de tests (tests d'intégration).
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 101
    Points : 71
    Points
    71
    Par défaut Encore un peu perdu
    En tout premier lieu, je te remercie pour ta réponse. Néanmoins, mon petit cerveau n'a pas tout compris. En fait, je parle de ce que l'on trouve aussi sur des blogs:
    https://teamgaslight.com/blog/testin...implementation
    Désolé, je suis un gros naze en anglais. Par contre, BDD est une autre version de TDD ?

    Je remercie d'avance pour les réponses.

    Cordialement,

    Vinz

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par vinou33 Voir le message
    En fait, je parle de ce que l'on trouve aussi sur des blogs:
    https://teamgaslight.com/blog/testin...implementation
    Alors ça semble être ça en effet ^^ les frameworks que j'ai cité sont des moyens techniques de mettre en place des tests de comportement.

    Citation Envoyé par vinou33 Voir le message
    Par contre, BDD est une autre version de TDD ?
    Nope, BDD est un sous-type du TDD. TDD veut dire qu'on utilisera des tests pour toutes les parties du développement. BDD veut dire qu'on aura une partie des tests dédiés à la vérification du comportement global, sans s'intéresser aux détails (en opposition aux tests unitaires qui ne s'intéressent qu'au fonctionnement d'une toute petite partie du code). BDD + Test unitaires + tests d'intégration = TDD (en simplifié).
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 101
    Points : 71
    Points
    71
    Par défaut
    Merci encore une fois. Et dernière question : qu'est ce qui est le mieux donc ?

  6. #6
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par vinou33 Voir le message
    dernière question : qu'est ce qui est le mieux donc ?
    Les deux mon capitaine

    Ils sont complémentaires, et ne couvrent pas les mêmes objectifs. Selon la doctrine TDD, on doit commencer par les tests unitaires et avoir une grand couverture, puis ensuite investir dans les tests d'intégration (avec du BDD ou pas, c'est à choix). Mais le socle des tests, c'est les tests unitaires.
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  7. #7
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    * même si personnellement, je trouve que le retour sur investissement est meilleur avec les tests d'intégration et le bdd - mais ça c'est un avis personnel subjectif
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 101
    Points : 71
    Points
    71
    Par défaut
    OK. Merci pour les retours et bonne journée.

Discussions similaires

  1. Comment implémenter un comportement commun à plusieurs classes ?
    Par Flint91300 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 28/06/2018, 11h51
  2. [Free Pascal] Comportement de Exec
    Par néo333 dans le forum Free Pascal
    Réponses: 3
    Dernier message: 01/11/2003, 17h46
  3. Réponses: 2
    Dernier message: 22/09/2003, 11h23
  4. Réponses: 2
    Dernier message: 06/07/2002, 12h36
  5. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19

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