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

Test Discussion :

Explication du test unitaire et comment l'automatiser


Sujet :

Test

  1. #1
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut Explication du test unitaire et comment l'automatiser
    Bonjour,

    Svp ne me donnez pas le lien sur Wikipédia car je l'ai déjà lu!

    Par ex si je veux faire un test unitaire sur Notepad, comment vais-je procéder?

  2. #2
    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
    Citation Envoyé par randriano Voir le message
    Bonjour,

    Svp ne me donnez pas le lien sur Wikipédia car je l'ai déjà lu!

    Par ex si je veux faire un test unitaire sur Notepad, comment vais-je procéder?
    Sur quel techno travailles tu ?

    Selon la techno tu vas avoir des méthodes te permettant de faciliter l'écriture des tests et des outils pour les automatiser.

    Dans l'absolu un test unitaire est un test te permettant de valider les différents cas d'une fonction.
    Imaginons une méthode qui te permet de valider une date, ton test devrais avoir par exemple un cas de date valide et plusieurs cas qui devrait échoué (je donne mon exemple en c#, mais ça doit être relativement simple à comprendre, enfin j'espère ).

    Les tests sont écrit de façon à être intégrer dans NUnit un outil de test unitaire du monde .net

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    // l'attribut TestFixture permet de dire que la classe contient des tests
    [TestFixture]
    public class TestNombres
    {
     
     
       [Test]
       public void TestDateSyntax()
     
       {
     
          // CheckDate est la méthode qu'on doit tester
          Assert.IsTrue(Date.CheckDate ("10/10/2008"));
     
          // Assert est une méthode de debug dans C#
          Assert.IsFalse(Date.CheckDate ("100/10/2008"));
     
          Assert.IsFalse(Date.CheckDate ("10:10:2009"));
     
          Assert.IsFalse(Date.CheckDate ("10/2008"));
     
       }
    }

    Maintenant qu'on a écrit le test avec notre EDI, on peut utiliser notre outil Nunit pour automatiser le test et le résultat devrait être vrai pour que ta méthode soit valider. Par la suite tu peux utiliser des outils qui lors de la génération des livrables exécute les tests et rend un rapport ...

    Si tu es dans le monde .net tu peux voir ce tutorial :

    http://jab.developpez.com/tutoriels/dotnet/nunit/

    Si tu es dans le monde Java il y a Junit et il y a un tuto dans DVP.

    Pour le reste il faut poser la question dans le forum adéquat ;-)

  3. #3
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    Je travaille en C++ avec Visual C++!

    Donc le test unitaire c'est pour les développeurs? J'avais posé la question: Par ex si je veux faire un test unitaire sur Notepad, comment vais-je procéder? , c'est donc faux

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 15
    Points : 21
    Points
    21
    Par défaut
    Les tests unitaires (le développement et l'exécution) sont uniquement destinés aux développeurs. Par contre, les rapports de couverture et d'exécution des tests unitaires peuvent être présenté à un client, car ces rapports donnent une estimation de la stabilité d'une application.

    Un test unitaire est destiné à tester une fonctionnalité élémentaire d'une application (typiquement une méthode dans une classe). Faire autre chose, ce n'est plus du test unitaire, c'est du test d'intégration, du test de validation, de la recette fonctionnelle, etc.

    Ceci dit, les frameworks de test unitaire (xUnit) tel que JUnit pour Java, unittest pour Python, etc. permettent de faire autre chose que du test untaire.

  5. #5
    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
    Citation Envoyé par randriano Voir le message
    Je travaille en C++ avec Visual C++!

    Donc le test unitaire c'est pour les développeurs?
    Oh oui, d'ailleurs une méthodo très intéressante recommande d'écrire le test unitaire avant d'écrire le code, c'est Test Driven Developpement (tu trouveras beaucoup de lecture à ce sujet si ça t'intéresse ;-) ), y a une autre mine d'or d'infos c'est http://www.testdriven.com/modules/news/

    Pour c++ il me semble que y a cppUnit qui fonctionne comme Junit et Nunit (edit: je confirme avec en plus des exemples ;-) http://gamesfromwithin.com/?p=29 ).

    Je pense que le mieux pour démystifier les tests unitaires et de suivre un petit tuto pour les mettre en pratique ;-)

  6. #6
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    Bof, j'avais une vision erronée du test comme si on donnait les exécutables de l'application pour que le testeur le teste, or c'est le test fonctionnel (GUI) non?

    Si vous m'expliquez un peu le fonctionnement des frameworks de test unitaire? Surtout avec mon application C++! Les tutos d'ici sont pour Java (JUnit) un environnement et langage dont je me suis complètement rouillé

  7. #7
    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
    Citation Envoyé par randriano Voir le message
    Bof, j'avais une vision erronée du test comme si on donnait les exécutables de l'application pour que le testeur le teste, or c'est le test fonctionnel (GUI) non?

    Si vous m'expliquez un peu le fonctionnement des frameworks de test unitaire? Surtout avec mon application C++! Les tutos d'ici sont pour Java (JUnit) un environnement et langage dont je me suis complètement rouillé
    Avec une petite recherche de 3 sec j'ai trouvé un tuto de DVP sur cppUnit ;-)

    http://matthieu-brucher.developpez.c...s/cpp/cppUnit/

  8. #8
    Membre actif Avatar de tipiak
    Inscrit en
    Juillet 2003
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2003
    Messages : 205
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par randriano Voir le message
    Bof, j'avais une vision erronée du test comme si on donnait les exécutables de l'application pour que le testeur le teste, or c'est le test fonctionnel (GUI) non?
    tu as les phases de tests:
    souvent on rencontre en gros (et aussi selon la méthodo selon laquelle on se rapproche le plus):
    - unitaire : tu test un composant, une classe ... (le plus souvent à la charge du développement) (donc si tu test un composant du GUI tu peux très bien te retrouver avec un GUI dans ton objet du test)
    -intégration : test l'assemblage des composants (souvent à la charge des equipes d'intégrations et / ou du développement) : teste les interfaces des composants (donc selon la stratégie d'intégration tu peux également te retrouver avec un GUI dans l'objet du test)

    - système (c'est le premier niveau avec un système dans son entier : donc intégré) souvent effectué par les testeurs (mais test sous le lead de la maitrise d'oeuvre)
    - acceptance (meme objet du test que pour les tests système sauf que le lead est la maitrise d'ouvrage)


    et ensuite à tous les niveaux de ces phases de tests, tu va avoir la nature (ou le type de test)
    test fonctionnel : valider une règle métier (par exemple)
    mais aussi les différents tests non fonctionnel par exemple la performance
    (tu peux très bien faire un test de perf sur une Méthode précise en Unit test, que de faire un test de perf sur l'ensemble en system test)
    tu peux aussi avoir tests de robustesse , d'ergonomie, de sécurité ....

    et encore transversallement à ces phases de tests et types de tests tu va avoir le but du test (à quoi il sert) :
    - test d'affirmation : tu as un nouveau dev, des points à controler : exigences (tu vérifie que ces exigences sont délivrées par le produit ou non)

    - test de confirmation : suite à un test d'affirmation échoué, qq1 a corrigé l'objet du test pour répondre au test en échec, tu relance donc ton test pour controler que la modification est bien réalisée

    - test de non-regression : suite à modification / correction (qui doivent avoir eu leurs tests d'affirmation ou de confirmation) tu valides qu'il n'y a pas d'effet de bord sur d'autres exigences de l'objet du test

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Je me permets de remonter ce sujet parce qu'on me propose une mission d'homologateur sur des systèmes de monétique dans une banque.

    Je ne suis pas un grand fan de développement, c'est pour ça que le métier de testeur/homologateur peut m'intéresser mais en vous lisant, je commence à croire que c'est un dérivé du métier de développeur...

    Finalement, pour résumer, ce travail consiste à lire le code des développeurs et à coder pour tester le code des autres?

    Si on n'est pas un bon développeur, on peut être un bon testeur?

    Merci d'avance pour vos réponses.

  10. #10
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par sms81 Voir le message
    Je me permets de remonter ce sujet parce qu'on me propose une mission d'homologateur sur des systèmes de monétique dans une banque.

    Je ne suis pas un grand fan de développement, c'est pour ça que le métier de testeur/homologateur peut m'intéresser mais en vous lisant, je commence à croire que c'est un dérivé du métier de développeur...
    tout dépend du niveau de test que tu pratique

    - Au niveau unitaire: tu teste chaque class/methodes de ton application. pour pouvoir le faire tu dois avoir la possibilité d'appeler toutes les fonctions internes du soft de façon indépendante. (en général tu as un accès aux sources)

    - Au niveau test fonctionnel: tu teste ton appli de l'extérieur. Tu utilise les api pour valider qu'elles font ce qui est prévu (en général un produit packagé sans les sources suffit).

    - Au niveau intégration: tu teste que ton applis fonctionnent correctement lorsqu'elle travaille avec d'autres (typiquement tu as ton application qui doit interagir avec un autre et tu vérifie que cette interaction fonctionne correctement)

    ...



    Finalement, pour résumer, ce travail consiste à lire le code des développeurs et à coder pour tester le code des autres?
    En théorie si les spec et la conception détaillées sont bien faites et à jour tu n'as pas besoin du code source pour tester.

    Si on n'est pas un bon développeur, on peut être un bon testeur?
    certains préfèrent développer, d'autres préfèrent trouver les merdes laissée par les autres, c'est une question de gout.
    les deux sont assez indispensable si tu veux faire un produit stable.

    le plus important pour les test est de définir la stratégie de test ton projet va adopter, et de mettre en place un plant de test associé. avec ces elément tu définit qui test quoi, comment avec quels outils dans quel but, quels sont les cas de test .....

    http://fr.wikipedia.org/wiki/Test_(informatique)
    www.univ-angers.fr/docs/etudquassi/ST05_09.pdf
    google + test + logiciel + stratégie

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Merci jabbounet pour ta réponse

    Je vais me documenter sur les différents types de test.

Discussions similaires

  1. Tests unitaires, comment bouchonner les webservices ?
    Par snopims dans le forum Services Web
    Réponses: 2
    Dernier message: 19/12/2011, 10h59
  2. Réponses: 3
    Dernier message: 21/07/2010, 16h09
  3. [Export] Comment ne pas inclure les tests unitaires au JAR
    Par zaboug dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 04/06/2010, 14h33
  4. Réponses: 0
    Dernier message: 16/06/2009, 11h41
  5. Réponses: 4
    Dernier message: 10/04/2008, 09h26

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