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

Python Discussion :

construire une batterie de tests de non régression


Sujet :

Python

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut construire une batterie de tests de non régression
    Bonjours,

    voila je lance se sujet car j'ai pas trouvé sur le site des exemple ou des tutos pour des débutant. après quelque jours de recherche et d'échange sur le forum de développez.net(dailleurs merci a tous les intervenant) j'ai pu écrire ce code:
    Code : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    import unittest
    import os
    import sys
    import time
    import pdb
     
    from  fftest_classe import *
     
    class fftestTestBase(unittest.TestCase):
    	""" entrees et sorties basiques"""
     
    	#pdb.set_trace()         #breakpoint              
    	def setUp(self):     #appeler avant chaque test
    		timestamp = time.strftime("%Y%m%d_%H%M%S", time.gmtime())
    		logfile = "fftestTestBase_"+timestamp+".log"
    		self.a = ATester("COM3",logfile)
    		print ("fftestMain.fftestTestBase.setUp()  is OK")
     
     
    	def test_ping(self):
    		print("doc: %s" % self.a.ping.func_doc)
    		result = self.a.ping()         #expected result -->to be change
    		self.assertEqual(self.a.ping(),result )
    		print ("fftestMain.fftestTestBase.ping()  is OK")
     
     
     
    	def test_find(self, node):
    		print("doc: %s" % self.a.find.func_doc)
    		pdb.set_trace()         #breakpoint
     		result = self.a.find(node)  #expected result -->to be change
    		self.assertEqual(self.a.find(node),result )
    		print ("fftestMain.fftestTestBase.test_find()  is OK")
     
     
    if __name__ == "__main__":
    	unittest.main()
    le problème que j'ai actuellement est que pour la fonction "test_find", je n'arrive pas a mettre l'argument "node", il n'est pas accepté par la fonction a testé "find(self, node)
    j'ai essayé de debuguer avec PBD mais je n'arrive pas a voir la valeur de "node"
    si vous connaissez un site ou il parle de test unitaire en python, car je ne trouve pas des exemples concret histoire de savoir comment sa fonctionne

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 718
    Par défaut
    Salut,
    le problème que j'ai actuellement est que pour la fonction "test_find", je n'arrive pas a mettre l'argument "node", il n'est pas accepté par la fonction a testé "find(self, node)
    test_find est indirectement appelé par unittest.main(): vous ne pouvez pas lui passer les paramètres que vous voulez.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	def test_find(self, node):
    		print("doc: %s" % self.a.find.func_doc)
    		pdb.set_trace()         #breakpoint
     		result = self.a.find(node)  #expected result -->to be change
    		self.assertEqual(self.a.find(node),result )
    		print ("fftestMain.fftestTestBase.test_find()  is OK")
    La vraie question est de savoir quelles sont les valeurs permises de "node" et quels sont les résultats correspondant de find?
    Rien ne vous empêche par la suite de créer une méthode find_test(self, node) qui factorisera le test pour cette valeur de "node".
    - W
    PS:
    si vous connaissez un site ou il parle de test unitaire en python, car je ne trouve pas des exemples concret histoire de savoir comment sa fonctionne
    Que sont des tests unitaires indépendamment du langage? Ce n'est pas Python mais des techniques/methodologies de construction, tests de logiciels écrits dans n'importe quel langage.
    Comment mettre en oeuvre des tests unitaire en Python? C'est ce que vous faites avec unittest
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut
    merci wiztricks,
    effectivement , j'ai regarder dans le script de la classe a testé, du coup j'ai pu récupérer les valeurs permise de "node"
    la sa marche bien mais il faut connaitre les résultats correspondant de find, et sa c'est au chef de projet de me le dire.
    pour les testes unitaires je me dis que je dois faire:
    1-classe de test quand tout fonctionne correctement (bonne valeur de node et résultat attendu == find)
    2-classe de testes pour levé des exception si erreur d'arguments
    ..........
    sa vous parez correcte!!!!

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 718
    Par défaut
    Salut,
    Citation Envoyé par rosty38 Voir le message
    la sa marche bien mais il faut connaitre les résultats correspondant de find, et sa c'est au chef de projet de me le dire.
    Comme vous faites dans la non régression, vous pourriez décrêter que çà doit faire demain ce que çà fait aujourd'hui, i.e.
    • prendre une suite de valeurs pour node,
    • notez les résultats quelque part,
    • le coup suivant on s'assure qu'on obtient les mêmes résultats pour la suite de valeurs définie de node.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Par défaut
    Et pour un exemple concret, il peut-être utile de regarder les chapitres 13 et 14 de Dive into Python qui illustrent bien l'utilisation d'unittest.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut
    * prendre une suite de valeurs pour node,
    * notez les résultats quelque part,
    * le coup suivant on s'assure qu'on obtient les mêmes résultats pour la suite de valeurs définie de node.
    effectivement c'est ce que j'ai l'intention de faire mais il y a un Hic, c'est que quand je lance mon script de test il ne lance pas les méthodes de ma classe à tester , pour voir si le matériel réponds (je dois tester un Firmeware)
    or que dans mon SetUp je fais bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    self.a = ClasseATester(param1,param2)
    j'ai un autre soucis, l'initialisation se fait plusieurs fois a l'appel d'une Test_Methode, pensez vous que c'est a cause de l'absence d'une fonction TeamDown() ????

    cordialement

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 167
    Par défaut
    problème 1 résolu, en fait j'avais effacer la méthode Main() qui démarre le port COM , mais maintenant le problème est que lorsque je lance mon script de teste il me lance le script a tester sans passer par la classe de teste unitaire . et quand je le supprime sa fonctionne a nouveau mais impossible d'ouvrir le port COM vue que j'ai supprimer le main().

Discussions similaires

  1. Test de non régression
    Par j0hn01 dans le forum Général Java
    Réponses: 2
    Dernier message: 23/04/2012, 08h25
  2. tests de non-régression de RoR
    Par duboisa dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 18/05/2010, 17h42
  3. Tests de non régression environnement Cognos
    Par ashlose dans le forum Cognos
    Réponses: 3
    Dernier message: 09/03/2010, 10h42
  4. Logiciels open source pour Tests de non-régression, robustesse, etc.
    Par Fanto117 dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 14/04/2008, 17h43
  5. [outil] Test non régression
    Par guen dans le forum Access
    Réponses: 1
    Dernier message: 13/05/2007, 12h02

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