SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
from pycon.pyconfr import talk




           Testons en Python
     un retour d'expérience sur l'optimisation
             d'un process validation
class myTalk(talk):

    # introduction générale

    def __init__(self,
                 ISTQB=CFTL,
                 goals=[tester,
                        team] ):

        ...
Introduction
Qui suis-je ?

● Ingénieur Validation Logiciel chez Parrot depuis près de
  3 ans

● Python comme moteur des scripts de validation
  logicielle, des librairies et de l'automatisation des tests.

● Certification ISTQB (International Software Testing
  Qualifications Board) - Niveau Fondation
Introduction
Ce n'est pas...
Introduction
Ce n'est pas...
Introduction
c'est :
● Un retour d'expérience pour :
       ■ partager les idées...
       ■ ... et les erreurs !


● Python utilisé dans le domaine de la
  validation des logiciels embarqués

● Un exemple d'application des pratiques
  courantes
Introduction
Qu'est ce que la Validation Logicielle ?

ISTQB : Norme ISO 9126 (qualité logicielle)

   ●   Fonctionnabilité
   ●   Fiabilité
   ●   Utilisabilité
   ●   Rendement
   ●   Maintenabilité
   ●   Portabilité
Introduction

Que recherche le        Que recherche le
testeur ?               département validation ?

● découvrir de          ● Réaliser un maximum
  nouveaux bugs au        de tests en un
  sein du produit         minimum de temps

● tester de nouvelles   ● Trouver un maximum
  features                de bugs
Introduction

               let's do it FAST !

● Factoriser    (librairies)
● Automatiser (outils)
● Scénariser    (pool de script)
● Tester
def Part1(test_case, framework):

    # base de la validation

    import unittest
    ...
Validation Logicielle en Python
Qu'est ce qu'un cas de test ?

  Cas de test : un ensemble de valeurs d'entrée, de
  préconditions d‘exécution, de résultats attendus et de
  postconditions d‘exécution, développées pour un
  objectif ou une condition de tests particulier, tel
  qu'exécuter un chemin particulier d'un programme ou
  vérifier le respect d‘une exigence spécifique [d‘après
  ISTQB - IEEE 610]

Ce qui est facilement transposable au sein d'un
script
Validation Logicielle en Python
Un wrapper de unittest (Fast)

                  Pytestemb

Historique :
   ● Développé en interne, puis open source
   ● https://github.com/biluti/pytestemb
   ● version actuelle : 1.4.0
   ● version 2.0 en cours de développement
Validation Logicielle en Python
Un wrapper de unittest - Pytestemb
permet de gérer les scénarios des tests :
  ●   valeurs d'entrée
  ●   préconditions d‘exécution
  ●   résultats attendus
  ●   postconditions d‘exécution
  ●   objectif/condition de tests particulier
  ●   chemin particulier d'un programme
Validation Logicielle en Python
Un wrapper de unittest - Pytestemb
Exemple de script avec pytestemb
     import pytestemb as test

     if __name__ == "__main__":

       test.set_setup(pre_conditions)
       test.add_test_case(disconnect_during_playing_iPod)
       test.set_cleanup(post_conditions)

       test.run_script()
Validation Logicielle en Python
Un wrapper de unittest - Pytestemb
Exemple de script avec pytestemb

     def pre_conditions():
       pipe.create()
       pipe.connect()

     def post_conditions():
       pipe.disconnect()
       pipe.destroy()
Validation Logicielle en Python
Un wrapper de unittest - Pytestemb
Exemple de script avec pytestemb
     def disconnect_during_playing_iPod():
       # test coded here...
       pytestemb.assert_equal(exp1, exp2, "exp1 is != exp2")
       ....

       pytestemb.assert_true_fatal(is_present, "iPod not connected")
Validation Logicielle en Python
De la nécessité d'avoir un pool de test (faSt)

- Plusieurs scénarios
   - Plusieurs test cases
       -Plusieurs scripts
- La gestion des paramètres locaux
- La réutilisation de scénarios basiques (test
unitaires) pour des scénarios plus complexes
(test fonctionnels / recettes)
Validation Logicielle en Python
L'automatisation (fAst)
  test automation: The use of software to
  perform or support test activities, e.g. test
  management, test design, test execution
  and results checking. [ISTQB Glossary]

En cela, le Python permet de répondre à
certaines problématiques...
Validation Logicielle en Python
L'automatisation (fAst)


         ... MAIS NE PAS EN ABUSER
             AU SEIN DES SCRIPTS !
def Part2(*tools):

    # présentation des outils

    for tool in tools:
        tool.present()
Outils et Librairies
Pourquoi une librairie métier ?
  ● Des aspects spécifiques impliquent une
     factorisation du code orienté métier
  ● Certaines opérations seront réalisées par
     TOUS les testeurs, plusieurs fois par jour

Restreinte ? Open-source ?
  ● Au choix...
  ● ... mais le choix open-source n'est pas
     toujours utile pour le reste du monde !
Outils et Librairies
Que mettre dans la librairie ?

● modules d'automatisation
   ○ spécifique métier (pyserial, pybluez, ...)


● modules d'import/export resultats et tests
   ○ interface avec les bases de données


● modules d'installation-distribution
   ○ pour la release au sein de l'équipe (setuptools)
Outils et Librairies
Les campagnes de tests
      <XMLProjectVersion Version="2.1"/>
      <MetaCampaigns>
        <MetaCampaign Info="" Name="PLAYER">
          <Campaign Name="PLAYER_MSC"/>
          <Campaign Name="PLAYER_STARTUP"/>
        </MetaCampaign>
      </MetaCampaigns>
      <Campaigns>
        <Campaign Info="" Name="PLAYER_MSC">
          <Script Path="script.command.PLAYER" Type="TST" Name="cmd_CSSV_(MSC)"/>
          <Script Path="script.command.PLAYER" Type="TST" Name="cmd_CWNG_(MSC)"/>
        </Campaign>
        <Campaign Info="" Name="PLAYER_STARTUP">
          <Script Path="script.command.PLAYER" Type="TST" Name="cmd_CGPS_(startup)"/>
...
Outils et Librairies
Outils et Librairies
Les serveurs de tests
def Conclusion(Part1, Part2):

    # listing des notions vues

    dir(Part1)
    dir(Part2)
Quel gain ?
Pour le testeur ?              Pour le département ?

● Les scripts à écrire sont    ● Le pool de scripts gère
  plus faciles car l'univers     les regressions et les
  validation est déjà en         campagnes, tout est
  place                          facilement réutilisable

● L'automatisation permet      ● Les outils permettent un
  de rejouer et réutiliser       gain de temps dans la
  des scénarios                  gestion et l'import/export
                                 des résultats
Utilisation de Python
Python comme moteur des scripts
Mais aussi dans les outils et librairies

Python est utilisé de bout en bout
  ● idéal pour les changements dans l'équipe
  ● idéal pour la maintenance
  ● idéal pour la gestion des packages
Merci !

Mail:    guillaume.buret@parrot.com
Twitter: @g_buret

Weitere ähnliche Inhalte

Was ist angesagt?

Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDXavier NOPRE
 
Traits : de la théorie à la pratique
Traits : de la théorie à la pratiqueTraits : de la théorie à la pratique
Traits : de la théorie à la pratiqueFrederic Hardy
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introductionlaurent bristiel
 
Test unitaire
Test unitaireTest unitaire
Test unitaireIsenDev
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebChristophe Rochefolle
 
Présentation de Robot framework
Présentation de Robot frameworkPrésentation de Robot framework
Présentation de Robot frameworkgilleslenfant
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureJonathan Bonzy
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techMarine Karam
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileDenis Voituron
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transcolaurent_opnworks
 
Intro sur les tests unitaires
Intro sur les tests unitairesIntro sur les tests unitaires
Intro sur les tests unitairesPHPPRO
 
Testinfra pyconfr 2017
Testinfra pyconfr 2017Testinfra pyconfr 2017
Testinfra pyconfr 2017Logilab
 
Les tests behat par la pratique
Les tests behat par la pratiqueLes tests behat par la pratique
Les tests behat par la pratiqueGuilhem Bourgoin
 

Was ist angesagt? (20)

Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
 
Traits : de la théorie à la pratique
Traits : de la théorie à la pratiqueTraits : de la théorie à la pratique
Traits : de la théorie à la pratique
 
J Unit
J UnitJ Unit
J Unit
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introduction
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Xhprof
XhprofXhprof
Xhprof
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et Web
 
Présentation de Robot framework
Présentation de Robot frameworkPrésentation de Robot framework
Présentation de Robot framework
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Flex Unit Testing
Flex Unit TestingFlex Unit Testing
Flex Unit Testing
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue tech
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
Intro sur les tests unitaires
Intro sur les tests unitairesIntro sur les tests unitaires
Intro sur les tests unitaires
 
Université du soir - TDD
Université du soir - TDDUniversité du soir - TDD
Université du soir - TDD
 
JAVA 8
JAVA 8JAVA 8
JAVA 8
 
Testinfra pyconfr 2017
Testinfra pyconfr 2017Testinfra pyconfr 2017
Testinfra pyconfr 2017
 
Architecture Plug-in en LabVIEW : de la conception à la réalisation
Architecture Plug-in en LabVIEW : de la conception à la réalisationArchitecture Plug-in en LabVIEW : de la conception à la réalisation
Architecture Plug-in en LabVIEW : de la conception à la réalisation
 
Les tests behat par la pratique
Les tests behat par la pratiqueLes tests behat par la pratique
Les tests behat par la pratique
 

Andere mochten auch

Test planning & estimation
Test planning & estimationTest planning & estimation
Test planning & estimationLeslie Smart
 
Code Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec pythonCode Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec pythonbbourgois
 
Programmation objet
Programmation objetProgrammation objet
Programmation objetAntoine Taly
 
Présentation de l'appication Nao Beer Buddy
Présentation de l'appication Nao Beer BuddyPrésentation de l'appication Nao Beer Buddy
Présentation de l'appication Nao Beer Buddybbourgois
 
Grile évaluation rappel de cours
Grile évaluation rappel de coursGrile évaluation rappel de cours
Grile évaluation rappel de coursAntoine Taly
 
Cryptography basics
Cryptography basicsCryptography basics
Cryptography basicsShellmates
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Emeric Tapachès
 
Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sqlbchesneau
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Pythonyboussard
 
Python in Computer Vision
Python in Computer VisionPython in Computer Vision
Python in Computer VisionBrian Thorne
 
Cours fabrication mécanique5
Cours fabrication mécanique5Cours fabrication mécanique5
Cours fabrication mécanique5bendrisk
 
Cours fabrication mécanique1
Cours fabrication mécanique1Cours fabrication mécanique1
Cours fabrication mécanique1bendrisk
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels Bilel Abed
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec OdooHassan WAHSISS
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonMohammed TAMALI
 
Notion de fonction en Python
Notion de fonction en PythonNotion de fonction en Python
Notion de fonction en PythonSylvain Leroux
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 

Andere mochten auch (20)

Test planning & estimation
Test planning & estimationTest planning & estimation
Test planning & estimation
 
Code Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec pythonCode Week 2014 - atelier d'initiation à la programmation avec python
Code Week 2014 - atelier d'initiation à la programmation avec python
 
Programmation objet
Programmation objetProgrammation objet
Programmation objet
 
Biopython
BiopythonBiopython
Biopython
 
Présentation de l'appication Nao Beer Buddy
Présentation de l'appication Nao Beer BuddyPrésentation de l'appication Nao Beer Buddy
Présentation de l'appication Nao Beer Buddy
 
Grile évaluation rappel de cours
Grile évaluation rappel de coursGrile évaluation rappel de cours
Grile évaluation rappel de cours
 
PhD Proposal
PhD ProposalPhD Proposal
PhD Proposal
 
Cryptography basics
Cryptography basicsCryptography basics
Cryptography basics
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
 
Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sql
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Python
 
Python in Computer Vision
Python in Computer VisionPython in Computer Vision
Python in Computer Vision
 
Cours fabrication mécanique5
Cours fabrication mécanique5Cours fabrication mécanique5
Cours fabrication mécanique5
 
Cours fabrication mécanique1
Cours fabrication mécanique1Cours fabrication mécanique1
Cours fabrication mécanique1
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec Odoo
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
 
Notion de fonction en Python
Notion de fonction en PythonNotion de fonction en Python
Notion de fonction en Python
 
ModèLes DexéCution
ModèLes DexéCutionModèLes DexéCution
ModèLes DexéCution
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 

Ähnlich wie PyConFR - testons en python

Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1Christophe Rochefolle
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1Marc Bojoly
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Martin Latrille
 
Java scripting api
Java scripting apiJava scripting api
Java scripting apiFranck SIMON
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
 
Tests Dinterface SWT
Tests Dinterface SWTTests Dinterface SWT
Tests Dinterface SWTEric Le Merdy
 
Fonctionnalités du logiciel Infiltrea
Fonctionnalités du logiciel InfiltreaFonctionnalités du logiciel Infiltrea
Fonctionnalités du logiciel InfiltreaTestoon
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowMathias Kluba
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyFrançois Petitit
 
Ez18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshellEz18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshellgdigugli
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Normandy JUG
 

Ähnlich wie PyConFR - testons en python (20)

Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)
 
Cerberus Testing
Cerberus TestingCerberus Testing
Cerberus Testing
 
Java scripting api
Java scripting apiJava scripting api
Java scripting api
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
Catalogue PFE 2019
Catalogue PFE 2019Catalogue PFE 2019
Catalogue PFE 2019
 
Tests Dinterface SWT
Tests Dinterface SWTTests Dinterface SWT
Tests Dinterface SWT
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
Fonctionnalités du logiciel Infiltrea
Fonctionnalités du logiciel InfiltreaFonctionnalités du logiciel Infiltrea
Fonctionnalités du logiciel Infiltrea
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
Ez18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshellEz18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshell
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 

Kürzlich hochgeladen

La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 

Kürzlich hochgeladen (16)

Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 

PyConFR - testons en python

  • 1. from pycon.pyconfr import talk Testons en Python un retour d'expérience sur l'optimisation d'un process validation
  • 2. class myTalk(talk): # introduction générale def __init__(self, ISTQB=CFTL, goals=[tester, team] ): ...
  • 3. Introduction Qui suis-je ? ● Ingénieur Validation Logiciel chez Parrot depuis près de 3 ans ● Python comme moteur des scripts de validation logicielle, des librairies et de l'automatisation des tests. ● Certification ISTQB (International Software Testing Qualifications Board) - Niveau Fondation
  • 6. Introduction c'est : ● Un retour d'expérience pour : ■ partager les idées... ■ ... et les erreurs ! ● Python utilisé dans le domaine de la validation des logiciels embarqués ● Un exemple d'application des pratiques courantes
  • 7. Introduction Qu'est ce que la Validation Logicielle ? ISTQB : Norme ISO 9126 (qualité logicielle) ● Fonctionnabilité ● Fiabilité ● Utilisabilité ● Rendement ● Maintenabilité ● Portabilité
  • 8. Introduction Que recherche le Que recherche le testeur ? département validation ? ● découvrir de ● Réaliser un maximum nouveaux bugs au de tests en un sein du produit minimum de temps ● tester de nouvelles ● Trouver un maximum features de bugs
  • 9. Introduction let's do it FAST ! ● Factoriser (librairies) ● Automatiser (outils) ● Scénariser (pool de script) ● Tester
  • 10. def Part1(test_case, framework): # base de la validation import unittest ...
  • 11. Validation Logicielle en Python Qu'est ce qu'un cas de test ? Cas de test : un ensemble de valeurs d'entrée, de préconditions d‘exécution, de résultats attendus et de postconditions d‘exécution, développées pour un objectif ou une condition de tests particulier, tel qu'exécuter un chemin particulier d'un programme ou vérifier le respect d‘une exigence spécifique [d‘après ISTQB - IEEE 610] Ce qui est facilement transposable au sein d'un script
  • 12. Validation Logicielle en Python Un wrapper de unittest (Fast) Pytestemb Historique : ● Développé en interne, puis open source ● https://github.com/biluti/pytestemb ● version actuelle : 1.4.0 ● version 2.0 en cours de développement
  • 13. Validation Logicielle en Python Un wrapper de unittest - Pytestemb permet de gérer les scénarios des tests : ● valeurs d'entrée ● préconditions d‘exécution ● résultats attendus ● postconditions d‘exécution ● objectif/condition de tests particulier ● chemin particulier d'un programme
  • 14. Validation Logicielle en Python Un wrapper de unittest - Pytestemb Exemple de script avec pytestemb import pytestemb as test if __name__ == "__main__": test.set_setup(pre_conditions) test.add_test_case(disconnect_during_playing_iPod) test.set_cleanup(post_conditions) test.run_script()
  • 15. Validation Logicielle en Python Un wrapper de unittest - Pytestemb Exemple de script avec pytestemb def pre_conditions(): pipe.create() pipe.connect() def post_conditions(): pipe.disconnect() pipe.destroy()
  • 16. Validation Logicielle en Python Un wrapper de unittest - Pytestemb Exemple de script avec pytestemb def disconnect_during_playing_iPod(): # test coded here... pytestemb.assert_equal(exp1, exp2, "exp1 is != exp2") .... pytestemb.assert_true_fatal(is_present, "iPod not connected")
  • 17. Validation Logicielle en Python De la nécessité d'avoir un pool de test (faSt) - Plusieurs scénarios - Plusieurs test cases -Plusieurs scripts - La gestion des paramètres locaux - La réutilisation de scénarios basiques (test unitaires) pour des scénarios plus complexes (test fonctionnels / recettes)
  • 18. Validation Logicielle en Python L'automatisation (fAst) test automation: The use of software to perform or support test activities, e.g. test management, test design, test execution and results checking. [ISTQB Glossary] En cela, le Python permet de répondre à certaines problématiques...
  • 19. Validation Logicielle en Python L'automatisation (fAst) ... MAIS NE PAS EN ABUSER AU SEIN DES SCRIPTS !
  • 20. def Part2(*tools): # présentation des outils for tool in tools: tool.present()
  • 21. Outils et Librairies Pourquoi une librairie métier ? ● Des aspects spécifiques impliquent une factorisation du code orienté métier ● Certaines opérations seront réalisées par TOUS les testeurs, plusieurs fois par jour Restreinte ? Open-source ? ● Au choix... ● ... mais le choix open-source n'est pas toujours utile pour le reste du monde !
  • 22. Outils et Librairies Que mettre dans la librairie ? ● modules d'automatisation ○ spécifique métier (pyserial, pybluez, ...) ● modules d'import/export resultats et tests ○ interface avec les bases de données ● modules d'installation-distribution ○ pour la release au sein de l'équipe (setuptools)
  • 23. Outils et Librairies Les campagnes de tests <XMLProjectVersion Version="2.1"/> <MetaCampaigns> <MetaCampaign Info="" Name="PLAYER"> <Campaign Name="PLAYER_MSC"/> <Campaign Name="PLAYER_STARTUP"/> </MetaCampaign> </MetaCampaigns> <Campaigns> <Campaign Info="" Name="PLAYER_MSC"> <Script Path="script.command.PLAYER" Type="TST" Name="cmd_CSSV_(MSC)"/> <Script Path="script.command.PLAYER" Type="TST" Name="cmd_CWNG_(MSC)"/> </Campaign> <Campaign Info="" Name="PLAYER_STARTUP"> <Script Path="script.command.PLAYER" Type="TST" Name="cmd_CGPS_(startup)"/> ...
  • 25. Outils et Librairies Les serveurs de tests
  • 26. def Conclusion(Part1, Part2): # listing des notions vues dir(Part1) dir(Part2)
  • 27. Quel gain ? Pour le testeur ? Pour le département ? ● Les scripts à écrire sont ● Le pool de scripts gère plus faciles car l'univers les regressions et les validation est déjà en campagnes, tout est place facilement réutilisable ● L'automatisation permet ● Les outils permettent un de rejouer et réutiliser gain de temps dans la des scénarios gestion et l'import/export des résultats
  • 28. Utilisation de Python Python comme moteur des scripts Mais aussi dans les outils et librairies Python est utilisé de bout en bout ● idéal pour les changements dans l'équipe ● idéal pour la maintenance ● idéal pour la gestion des packages
  • 29. Merci ! Mail: guillaume.buret@parrot.com Twitter: @g_buret