SlideShare une entreprise Scribd logo
1  sur  56
Flex / ActionScript
  Tests Unitaires
     et TDD


     2012 - 06 - 14
Mathurin Body
(@mathurin_body)




Christophe Keromen
   (@ckeromen)
Mathurin Body
   (@mathurin_body)




   Christophe Keromen
      (@ckeromen)

en continuelle amélioration
Le Test Unitaire consiste à prendre
   la plus petite partie du code,
     isolée de tout autre facteur
 et à vérifier qu'elle se comporte
      comme vous l'attendez.


       Michael Labriola
Isolation
• Le résultat du test ne doit pas être affecté par
 • d'autres objets
 • l'état global
• Lors de l'échec d'un test unitaire, la source de
  l'erreur doit être immédiatement identifiable.
Le Test d'Intégration consiste à assembler des
 portions de code déjà testées unitairement et à
vérifier que le comportement et l'interaction entre
           ces composants est correct.
                                   Michael Labriola
Integration
  En règle générale, à partir du moment où
  l'on utilise l'un des termes suivants, nous
  sommes en train de discuter d'une forme de
  test d'intégration :
• Asynchronous
• Server
• Lifecycle
• DisplayList
Le Test Functionnel s'attache à enregistrer et
     rejouer les interactions avec l'application.
 Il est extrêmement important car il assure que
      l'application respecte les spécifications.
  Il se peut que de nombreuses unités de code
doivent fonctionner avant de pouvoir produire un
                seul test d'intégration.
                                   Michael Labriola
Flex Unit
Tests Unitaires et Flex / ActionScript 3




FlexUnit est fourni avec Flash Builder 4.6, implémente xUnit

FB 4.6 prend en charge les tests unitaires sur projets mobiles
(WiFi requis)
Interface Utilisateur ?
Interface Utilisateur ?

• Lorsque la Logique n'est pas couplée
  avec la Vue, la Logique peut être
  mise sous Test Unitaire.
Interface Utilisateur ?

• Lorsque la Logique n'est pas couplée
  avec la Vue, la Logique peut être
  mise sous Test Unitaire.

• Ex.: CalculatorAppFlex
Interface Utilisateur ?

• Lorsque la Logique n'est pas couplée
  avec la Vue, la Logique peut être
  mise sous Test Unitaire.

• Ex.: CalculatorAppFlex
  o les déclarations MMXL
    declarations et les Event Handlers
    ne sont pas mis sous test unitaires
Interface Utilisateur ?

• Lorsque la Logique n'est pas couplée
  avec la Vue, la Logique peut être
  mise sous Test Unitaire.

• Ex.: CalculatorAppFlex
  o les déclarations MMXL
    declarations et les Event Handlers
    ne sont pas mis sous test unitaires
  o CalculatorLogicHelper est
    couverte par les tests unitaires
Interface Utilisateur ?

• Lorsque la Logique n'est pas couplée
  avec la Vue, la Logique peut être
  mise sous Test Unitaire.

• Ex.: CalculatorAppFlex
  o les déclarations MMXL
    declarations et les Event Handlers
    ne sont pas mis sous test unitaires
  o CalculatorLogicHelper est
    couverte par les tests unitaires
Interface Utilisateur ?



Le test des composants UI est beaucoup plus complexe, ex.:

FlexUnit4Examples/flexUnitTests.FlexUnit4CheckUITester
http://www.slideshare.net/anupom98/introduction-to-tdd-with-flexunit
http://www.slideshare.net/anupom98/introduction-to-tdd-with-flexunit
Flex UnitTesting Demo



       MobileCalc
Raccourcis Flash Builder:

• Alt+Shift+A, F

Exécute tous les tests FlexUnit du projet.

• Alt+Shift+E, F

Exécute les tests FlexUnit sélectionnés.

• Tag [Ignore] - Permet d'ignorer le test marqué. Évite de
  commenter la méthode.
http://www.slideshare.net/anupom98/introduction-to-tdd-with-flexunit
TDD
eXtreme Unit Testing
TDD
   eXtreme Unit Testing




Écrivez les tests en premier !
TDD
   eXtreme Unit Testing




Écrivez les tests en premier !
     AVANT DE CODER
Combien ont déjà fait du TDD ?

Combien ont essayé de faire du TDD et
abandonné ?

Combien ont toujours rêvé de se mettre au TDD,
mais ne l'ont pas fait ?
http://www.slideshare.net/anupom98/introduction-to-tdd-with-flexunit
Quels tests ?
Quels tests ?




        • Première étape

       Comprendre les exigences métiers

       Penser aux différents scenarios possibles

       Ajouter des tests reposant sur ces scenarios
Quels tests ?



          • Le Test passe



          Une fois que vous avez écrit tout le code et
          que tous les tests passent, vous savez que
          vous remplissez toutes les exigences métiers.
          Vous pouvez partager le résultat avec le client
          ou les autres membres de l'équipe.
Quels tests ?




       • Bug fix



       Chaque résolution de bogue devrait commencer par
       l'écriture d'un test unitaire qui le met en évidence.
TDD - Demo
CalculatorLogicHelper
Workflow
Workflow
Workflow
Workflow
Workflow
• Lister les exigences
Workflow
• Lister les exigences
• Créer la Classe
Workflow
• Lister les exigences
• Créer la Classe
• Créer le TestCase à partir de la Classe : New Test
  Case Class + Select class to test
Workflow
• Lister les exigences
• Créer la Classe
• Créer le TestCase à partir de la Classe : New Test
  Case Class + Select class to test
• Run Test -> échec
Workflow
• Lister les exigences
• Créer la Classe
• Créer le TestCase à partir de la Classe : New Test
  Case Class + Select class to test
• Run Test -> échec
• Écrire du code pour passer le test
Workflow
• Lister les exigences
• Créer la Classe
• Créer le TestCase à partir de la Classe : New Test
  Case Class + Select class to test
• Run Test -> échec
• Écrire du code pour passer le test
• Refactoring si nécessaire
Workflow
• Lister les exigences
• Créer la Classe
• Créer le TestCase à partir de la Classe : New Test
  Case Class + Select class to test
• Run Test -> échec
• Écrire du code pour passer le test
• Refactoring si nécessaire
• Création d'une TestSuite : New Test Suite Class +
  select Test classes
Elad Elrom conseille :
Elad Elrom conseille :


• De ne pas utiliser TDD pour les gestuelles.
Elad Elrom conseille :


• De ne pas utiliser TDD pour les gestuelles.

• D'éviter généralement d'utiliser TDD pour tester l'interface
  utilisateur.
Elad Elrom conseille :


• De ne pas utiliser TDD pour les gestuelles.

• D'éviter généralement d'utiliser TDD pour tester l'interface
  utilisateur.

• D'utiliser TDD pour construire les APIs, frameworks,
  utilitaires et helpers.
Elad Elrom conseille :


• De ne pas utiliser TDD pour les gestuelles.

• D'éviter généralement d'utiliser TDD pour tester l'interface
  utilisateur.

• D'utiliser TDD pour construire les APIs, frameworks,
  utilitaires et helpers.

• D'utiliser TDD pour tester les services.
Elad Elrom conseille :


• De ne pas utiliser TDD pour les gestuelles.

• D'éviter généralement d'utiliser TDD pour tester l'interface
  utilisateur.

• D'utiliser TDD pour construire les APIs, frameworks,
  utilitaires et helpers.

• D'utiliser TDD pour tester les services.

• D'utiliser TDD pour le code qui sera utilisé plus d'une fois,
  dans plus d'une application,…
Bibliography

• http://www.slideshare.net/anupom98/introduction-to-tdd-with-flexunit

• Unit Testing Tools in Flash Builder: http://help.adobe.com/en_US/flashbuilder/
  using/WS064a3073e805330f-57274fcd12dfe5a574a-8000.html

• Doc FlexUnit: http://docs.flexunit.org/index.php

• Elad Elrom
   o Test Driven Development using Flash Builder 4 and FlexUnit (2009) http://
     www.adobe.com/devnet/flex/articles/flashbuilder4_tdd.html
   o http://www.slideshare.net/eladnyc/test-driven-development-tdd-with-
     flexunit-4-360flex-san-jose-preso
   o http://elromdesign.com/blog/2010/03/10/test-driven-development-tdd-with-
     flexunit-4-complete-tutorial/
Ressources

• http://www.slideshare.et/michael.labriola/why-test-with-flex-
  unit

• http://tutorials.digitalprimates.net/flexunit.html

• Support for FlexUnit: https://flexunit.tenderapp.com/

• A very good read http://www.amazon.com/Working-
  Effectively-Legacy-Michael- Feathers/dp/0131177052

 • Elad Elrom Examples Download
http://www.adobe.com/content/dotcom/en/devnet/flex/articles/
flashbuilder4_tdd/_jcr_content/articlePrerequistes/multiplefiles/
node_1278642616618/file.res/flashbuilder4_tdd_source[1].zip
Bibliographie




     Chapter 2 of AdvancedED Flex 4




               Flash&Flex Developer's Magazine
            Flash and mobile - APPS, IPHONE AND
                         IPOD Touch
                            201-01

Contenu connexe

Tendances

Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web modernehalleck45
 
Industrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPIndustrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPhalleck45
 
TDD avec ou sans mock
TDD avec ou sans mockTDD avec ou sans mock
TDD avec ou sans mockYannick Ameur
 
XebiCon'17 : Mutation testing, ou évaluer l’efficacité de vos tests ! - Sar...
XebiCon'17 : Mutation testing, ou évaluer l’efficacité de vos tests ! - Sar...XebiCon'17 : Mutation testing, ou évaluer l’efficacité de vos tests ! - Sar...
XebiCon'17 : Mutation testing, ou évaluer l’efficacité de vos tests ! - Sar...Publicis Sapient Engineering
 
100% couverture de code par les tests
100% couverture de code par les tests100% couverture de code par les tests
100% couverture de code par les testsVincent Tencé
 
7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitairesPascal Laurin
 
Commencer avec le tdd
Commencer avec le tddCommencer avec le tdd
Commencer avec le tddEric Hogue
 
PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en pythongburet
 
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010Claude Falguiere
 
L'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringL'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringPascal Laurin
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application javaAntoine Rey
 
Mesurer les performances avec JMeter
Mesurer les performances avec JMeterMesurer les performances avec JMeter
Mesurer les performances avec JMeterClaude Falguiere
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Ippon
 

Tendances (20)

Bbl sur les tests
Bbl sur les testsBbl sur les tests
Bbl sur les tests
 
Les tests en PHP
Les tests en PHPLes tests en PHP
Les tests en PHP
 
Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderne
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
Industrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPIndustrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHP
 
TDD avec ou sans mock
TDD avec ou sans mockTDD avec ou sans mock
TDD avec ou sans mock
 
XebiCon'17 : Mutation testing, ou évaluer l’efficacité de vos tests ! - Sar...
XebiCon'17 : Mutation testing, ou évaluer l’efficacité de vos tests ! - Sar...XebiCon'17 : Mutation testing, ou évaluer l’efficacité de vos tests ! - Sar...
XebiCon'17 : Mutation testing, ou évaluer l’efficacité de vos tests ! - Sar...
 
100% couverture de code par les tests
100% couverture de code par les tests100% couverture de code par les tests
100% couverture de code par les tests
 
7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires
 
Formation jmeter
Formation jmeterFormation jmeter
Formation jmeter
 
Commencer avec le tdd
Commencer avec le tddCommencer avec le tdd
Commencer avec le tdd
 
PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en python
 
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
 
L'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringL'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoring
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
 
Mesurer les performances avec JMeter
Mesurer les performances avec JMeterMesurer les performances avec JMeter
Mesurer les performances avec JMeter
 
Les tests-unitaires-en-java
Les tests-unitaires-en-javaLes tests-unitaires-en-java
Les tests-unitaires-en-java
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon
 
Tests de performances
Tests de performancesTests de performances
Tests de performances
 

En vedette

Présentation Agile Testing
Présentation Agile TestingPrésentation Agile Testing
Présentation Agile Testingjubehr
 
Test unitaires visual studio
Test unitaires visual studioTest unitaires visual studio
Test unitaires visual studioSOAT
 
14 Conseils d'experts pour optimiser vos conversions
14 Conseils d'experts pour optimiser vos conversions14 Conseils d'experts pour optimiser vos conversions
14 Conseils d'experts pour optimiser vos conversionsScandola SA
 
Viadeo API Presentation - Salesforce, NetAnswer, 3scale, Graph API Viadeo
Viadeo API Presentation - Salesforce, NetAnswer, 3scale, Graph API ViadeoViadeo API Presentation - Salesforce, NetAnswer, 3scale, Graph API Viadeo
Viadeo API Presentation - Salesforce, NetAnswer, 3scale, Graph API Viadeonvieuxloup
 
Université de la performance
Université de la performanceUniversité de la performance
Université de la performancepkernevez
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logicielJean-Paul CARMONA
 
Projet de fin d'études : middleware de communication de groupe
Projet de fin d'études : middleware de communication de groupeProjet de fin d'études : middleware de communication de groupe
Projet de fin d'études : middleware de communication de groupeYann Sionneau
 
Optimiser le ROI d'un dispositif mobile
Optimiser le ROI d'un dispositif mobile Optimiser le ROI d'un dispositif mobile
Optimiser le ROI d'un dispositif mobile Idean France
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with DataSeth Familian
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
 

En vedette (11)

Présentation Agile Testing
Présentation Agile TestingPrésentation Agile Testing
Présentation Agile Testing
 
Test unitaires visual studio
Test unitaires visual studioTest unitaires visual studio
Test unitaires visual studio
 
14 Conseils d'experts pour optimiser vos conversions
14 Conseils d'experts pour optimiser vos conversions14 Conseils d'experts pour optimiser vos conversions
14 Conseils d'experts pour optimiser vos conversions
 
Génie Logiciel : les tests
Génie Logiciel : les testsGénie Logiciel : les tests
Génie Logiciel : les tests
 
Viadeo API Presentation - Salesforce, NetAnswer, 3scale, Graph API Viadeo
Viadeo API Presentation - Salesforce, NetAnswer, 3scale, Graph API ViadeoViadeo API Presentation - Salesforce, NetAnswer, 3scale, Graph API Viadeo
Viadeo API Presentation - Salesforce, NetAnswer, 3scale, Graph API Viadeo
 
Université de la performance
Université de la performanceUniversité de la performance
Université de la performance
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logiciel
 
Projet de fin d'études : middleware de communication de groupe
Projet de fin d'études : middleware de communication de groupeProjet de fin d'études : middleware de communication de groupe
Projet de fin d'études : middleware de communication de groupe
 
Optimiser le ROI d'un dispositif mobile
Optimiser le ROI d'un dispositif mobile Optimiser le ROI d'un dispositif mobile
Optimiser le ROI d'un dispositif mobile
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 

Similaire à Flex Unit Testing

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
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
testUnitaire (1).pptx
testUnitaire (1).pptxtestUnitaire (1).pptx
testUnitaire (1).pptxManalAg
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & MétiersCellenza
 
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
 
Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Elapse Technologies
 
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
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsCloudNetCare
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaHeads France
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !Paris Salesforce Developer Group
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitairespprem
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221Frédéric Delorme
 
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...TelecomValley
 
CocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - EpitezCocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - EpitezCocoaHeads France
 
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
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techMarine Karam
 
[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
 

Similaire à Flex Unit Testing (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
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Université du soir - TDD
Université du soir - TDDUniversité du soir - TDD
Université du soir - TDD
 
testUnitaire (1).pptx
testUnitaire (1).pptxtestUnitaire (1).pptx
testUnitaire (1).pptx
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
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
 
Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29
 
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
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests Logiciels
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitaires
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitaires
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221
 
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
 
CocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - EpitezCocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - Epitez
 
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
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue tech
 
[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
 

Plus de Christophe Keromen

Modèle de Ker Bruges, utopie d'accompagnement pour demain ?
Modèle de Ker Bruges, utopie d'accompagnement pour demain ?Modèle de Ker Bruges, utopie d'accompagnement pour demain ?
Modèle de Ker Bruges, utopie d'accompagnement pour demain ?Christophe Keromen
 
Webinaire supervision des agilistes : c'est la rentrée ! (2021-09-07)
Webinaire supervision des agilistes  : c'est la rentrée ! (2021-09-07)Webinaire supervision des agilistes  : c'est la rentrée ! (2021-09-07)
Webinaire supervision des agilistes : c'est la rentrée ! (2021-09-07)Christophe Keromen
 
30 ans d'agilité : l'eXtreme Booksprint
30 ans d'agilité : l'eXtreme Booksprint30 ans d'agilité : l'eXtreme Booksprint
30 ans d'agilité : l'eXtreme BooksprintChristophe Keromen
 
Le facteur humain sonne toujours 2 fois
Le facteur humain sonne toujours 2 foisLe facteur humain sonne toujours 2 fois
Le facteur humain sonne toujours 2 foisChristophe Keromen
 
Changer le pansement ou Penser le changement (v 2020)
Changer le pansement ou Penser le changement (v 2020)Changer le pansement ou Penser le changement (v 2020)
Changer le pansement ou Penser le changement (v 2020)Christophe Keromen
 
Management agile - Entre contrôle et lâcher prise
Management agile - Entre contrôle et lâcher priseManagement agile - Entre contrôle et lâcher prise
Management agile - Entre contrôle et lâcher priseChristophe Keromen
 
Agilité & culture d’entreprise
Agilité & culture d’entrepriseAgilité & culture d’entreprise
Agilité & culture d’entrepriseChristophe Keromen
 
#businessagility : fake marketing or real new trend ?
#businessagility : fake marketing or real new trend ?#businessagility : fake marketing or real new trend ?
#businessagility : fake marketing or real new trend ?Christophe Keromen
 
Atelier "s’améliorer ensemble pour agir dans la complexité"
Atelier "s’améliorer ensemble pour agir dans la complexité"Atelier "s’améliorer ensemble pour agir dans la complexité"
Atelier "s’améliorer ensemble pour agir dans la complexité"Christophe Keromen
 
30 ans d'agilité : bilan et perspectives
30 ans d'agilité : bilan et perspectives30 ans d'agilité : bilan et perspectives
30 ans d'agilité : bilan et perspectivesChristophe Keromen
 
Management 2020, faillite, mythes, mensonges, foutaises et décisions absurdes…
Management 2020,  faillite, mythes, mensonges, foutaises et décisions absurdes…Management 2020,  faillite, mythes, mensonges, foutaises et décisions absurdes…
Management 2020, faillite, mythes, mensonges, foutaises et décisions absurdes…Christophe Keromen
 
REX un parcours Agile pour les Managers
REX un parcours Agile pour les ManagersREX un parcours Agile pour les Managers
REX un parcours Agile pour les ManagersChristophe Keromen
 
Célébrons les Transformations agiles et systémiques
Célébrons les Transformations agiles et systémiquesCélébrons les Transformations agiles et systémiques
Célébrons les Transformations agiles et systémiquesChristophe Keromen
 
Sensibilisation entreprise agile
Sensibilisation entreprise agileSensibilisation entreprise agile
Sensibilisation entreprise agileChristophe Keromen
 
Penser le changement ou Changer le pansement - 2018
Penser le changement ou Changer le pansement - 2018Penser le changement ou Changer le pansement - 2018
Penser le changement ou Changer le pansement - 2018Christophe Keromen
 
Une approche systémique interactionnelle (et stratégique)
Une approche systémique interactionnelle (et stratégique)Une approche systémique interactionnelle (et stratégique)
Une approche systémique interactionnelle (et stratégique)Christophe Keromen
 
Célébrons les Transformations agiles et systémiques (v1)
Célébrons les Transformations agiles et systémiques (v1)Célébrons les Transformations agiles et systémiques (v1)
Célébrons les Transformations agiles et systémiques (v1)Christophe Keromen
 

Plus de Christophe Keromen (20)

Modèle de Ker Bruges, utopie d'accompagnement pour demain ?
Modèle de Ker Bruges, utopie d'accompagnement pour demain ?Modèle de Ker Bruges, utopie d'accompagnement pour demain ?
Modèle de Ker Bruges, utopie d'accompagnement pour demain ?
 
Webinaire supervision des agilistes : c'est la rentrée ! (2021-09-07)
Webinaire supervision des agilistes  : c'est la rentrée ! (2021-09-07)Webinaire supervision des agilistes  : c'est la rentrée ! (2021-09-07)
Webinaire supervision des agilistes : c'est la rentrée ! (2021-09-07)
 
Supervision & agilistes
Supervision & agilistesSupervision & agilistes
Supervision & agilistes
 
Sortons de la binarité
Sortons de la binaritéSortons de la binarité
Sortons de la binarité
 
30 ans d'agilité : l'eXtreme Booksprint
30 ans d'agilité : l'eXtreme Booksprint30 ans d'agilité : l'eXtreme Booksprint
30 ans d'agilité : l'eXtreme Booksprint
 
Le facteur humain sonne toujours 2 fois
Le facteur humain sonne toujours 2 foisLe facteur humain sonne toujours 2 fois
Le facteur humain sonne toujours 2 fois
 
Changer le pansement ou Penser le changement (v 2020)
Changer le pansement ou Penser le changement (v 2020)Changer le pansement ou Penser le changement (v 2020)
Changer le pansement ou Penser le changement (v 2020)
 
Webinaire 30 ans d'agilité ?
Webinaire 30 ans d'agilité ?Webinaire 30 ans d'agilité ?
Webinaire 30 ans d'agilité ?
 
Management agile - Entre contrôle et lâcher prise
Management agile - Entre contrôle et lâcher priseManagement agile - Entre contrôle et lâcher prise
Management agile - Entre contrôle et lâcher prise
 
Agilité & culture d’entreprise
Agilité & culture d’entrepriseAgilité & culture d’entreprise
Agilité & culture d’entreprise
 
#businessagility : fake marketing or real new trend ?
#businessagility : fake marketing or real new trend ?#businessagility : fake marketing or real new trend ?
#businessagility : fake marketing or real new trend ?
 
Atelier "s’améliorer ensemble pour agir dans la complexité"
Atelier "s’améliorer ensemble pour agir dans la complexité"Atelier "s’améliorer ensemble pour agir dans la complexité"
Atelier "s’améliorer ensemble pour agir dans la complexité"
 
30 ans d'agilité : bilan et perspectives
30 ans d'agilité : bilan et perspectives30 ans d'agilité : bilan et perspectives
30 ans d'agilité : bilan et perspectives
 
Management 2020, faillite, mythes, mensonges, foutaises et décisions absurdes…
Management 2020,  faillite, mythes, mensonges, foutaises et décisions absurdes…Management 2020,  faillite, mythes, mensonges, foutaises et décisions absurdes…
Management 2020, faillite, mythes, mensonges, foutaises et décisions absurdes…
 
REX un parcours Agile pour les Managers
REX un parcours Agile pour les ManagersREX un parcours Agile pour les Managers
REX un parcours Agile pour les Managers
 
Célébrons les Transformations agiles et systémiques
Célébrons les Transformations agiles et systémiquesCélébrons les Transformations agiles et systémiques
Célébrons les Transformations agiles et systémiques
 
Sensibilisation entreprise agile
Sensibilisation entreprise agileSensibilisation entreprise agile
Sensibilisation entreprise agile
 
Penser le changement ou Changer le pansement - 2018
Penser le changement ou Changer le pansement - 2018Penser le changement ou Changer le pansement - 2018
Penser le changement ou Changer le pansement - 2018
 
Une approche systémique interactionnelle (et stratégique)
Une approche systémique interactionnelle (et stratégique)Une approche systémique interactionnelle (et stratégique)
Une approche systémique interactionnelle (et stratégique)
 
Célébrons les Transformations agiles et systémiques (v1)
Célébrons les Transformations agiles et systémiques (v1)Célébrons les Transformations agiles et systémiques (v1)
Célébrons les Transformations agiles et systémiques (v1)
 

Flex Unit Testing

  • 1. Flex / ActionScript Tests Unitaires et TDD 2012 - 06 - 14
  • 3. Mathurin Body (@mathurin_body) Christophe Keromen (@ckeromen) en continuelle amélioration
  • 4.
  • 5. Le Test Unitaire consiste à prendre la plus petite partie du code, isolée de tout autre facteur et à vérifier qu'elle se comporte comme vous l'attendez. Michael Labriola
  • 6. Isolation • Le résultat du test ne doit pas être affecté par • d'autres objets • l'état global • Lors de l'échec d'un test unitaire, la source de l'erreur doit être immédiatement identifiable.
  • 7. Le Test d'Intégration consiste à assembler des portions de code déjà testées unitairement et à vérifier que le comportement et l'interaction entre ces composants est correct. Michael Labriola
  • 8. Integration En règle générale, à partir du moment où l'on utilise l'un des termes suivants, nous sommes en train de discuter d'une forme de test d'intégration : • Asynchronous • Server • Lifecycle • DisplayList
  • 9. Le Test Functionnel s'attache à enregistrer et rejouer les interactions avec l'application. Il est extrêmement important car il assure que l'application respecte les spécifications. Il se peut que de nombreuses unités de code doivent fonctionner avant de pouvoir produire un seul test d'intégration. Michael Labriola
  • 11. Tests Unitaires et Flex / ActionScript 3 FlexUnit est fourni avec Flash Builder 4.6, implémente xUnit FB 4.6 prend en charge les tests unitaires sur projets mobiles (WiFi requis)
  • 13. Interface Utilisateur ? • Lorsque la Logique n'est pas couplée avec la Vue, la Logique peut être mise sous Test Unitaire.
  • 14. Interface Utilisateur ? • Lorsque la Logique n'est pas couplée avec la Vue, la Logique peut être mise sous Test Unitaire. • Ex.: CalculatorAppFlex
  • 15. Interface Utilisateur ? • Lorsque la Logique n'est pas couplée avec la Vue, la Logique peut être mise sous Test Unitaire. • Ex.: CalculatorAppFlex o les déclarations MMXL declarations et les Event Handlers ne sont pas mis sous test unitaires
  • 16. Interface Utilisateur ? • Lorsque la Logique n'est pas couplée avec la Vue, la Logique peut être mise sous Test Unitaire. • Ex.: CalculatorAppFlex o les déclarations MMXL declarations et les Event Handlers ne sont pas mis sous test unitaires o CalculatorLogicHelper est couverte par les tests unitaires
  • 17. Interface Utilisateur ? • Lorsque la Logique n'est pas couplée avec la Vue, la Logique peut être mise sous Test Unitaire. • Ex.: CalculatorAppFlex o les déclarations MMXL declarations et les Event Handlers ne sont pas mis sous test unitaires o CalculatorLogicHelper est couverte par les tests unitaires
  • 18. Interface Utilisateur ? Le test des composants UI est beaucoup plus complexe, ex.: FlexUnit4Examples/flexUnitTests.FlexUnit4CheckUITester
  • 20.
  • 22. Flex UnitTesting Demo MobileCalc
  • 23.
  • 24. Raccourcis Flash Builder: • Alt+Shift+A, F Exécute tous les tests FlexUnit du projet. • Alt+Shift+E, F Exécute les tests FlexUnit sélectionnés. • Tag [Ignore] - Permet d'ignorer le test marqué. Évite de commenter la méthode.
  • 27. TDD eXtreme Unit Testing Écrivez les tests en premier !
  • 28. TDD eXtreme Unit Testing Écrivez les tests en premier ! AVANT DE CODER
  • 29.
  • 30. Combien ont déjà fait du TDD ? Combien ont essayé de faire du TDD et abandonné ? Combien ont toujours rêvé de se mettre au TDD, mais ne l'ont pas fait ?
  • 33. Quels tests ? • Première étape Comprendre les exigences métiers Penser aux différents scenarios possibles Ajouter des tests reposant sur ces scenarios
  • 34. Quels tests ? • Le Test passe Une fois que vous avez écrit tout le code et que tous les tests passent, vous savez que vous remplissez toutes les exigences métiers. Vous pouvez partager le résultat avec le client ou les autres membres de l'équipe.
  • 35. Quels tests ? • Bug fix Chaque résolution de bogue devrait commencer par l'écriture d'un test unitaire qui le met en évidence.
  • 42. Workflow • Lister les exigences • Créer la Classe
  • 43. Workflow • Lister les exigences • Créer la Classe • Créer le TestCase à partir de la Classe : New Test Case Class + Select class to test
  • 44. Workflow • Lister les exigences • Créer la Classe • Créer le TestCase à partir de la Classe : New Test Case Class + Select class to test • Run Test -> échec
  • 45. Workflow • Lister les exigences • Créer la Classe • Créer le TestCase à partir de la Classe : New Test Case Class + Select class to test • Run Test -> échec • Écrire du code pour passer le test
  • 46. Workflow • Lister les exigences • Créer la Classe • Créer le TestCase à partir de la Classe : New Test Case Class + Select class to test • Run Test -> échec • Écrire du code pour passer le test • Refactoring si nécessaire
  • 47. Workflow • Lister les exigences • Créer la Classe • Créer le TestCase à partir de la Classe : New Test Case Class + Select class to test • Run Test -> échec • Écrire du code pour passer le test • Refactoring si nécessaire • Création d'une TestSuite : New Test Suite Class + select Test classes
  • 49. Elad Elrom conseille : • De ne pas utiliser TDD pour les gestuelles.
  • 50. Elad Elrom conseille : • De ne pas utiliser TDD pour les gestuelles. • D'éviter généralement d'utiliser TDD pour tester l'interface utilisateur.
  • 51. Elad Elrom conseille : • De ne pas utiliser TDD pour les gestuelles. • D'éviter généralement d'utiliser TDD pour tester l'interface utilisateur. • D'utiliser TDD pour construire les APIs, frameworks, utilitaires et helpers.
  • 52. Elad Elrom conseille : • De ne pas utiliser TDD pour les gestuelles. • D'éviter généralement d'utiliser TDD pour tester l'interface utilisateur. • D'utiliser TDD pour construire les APIs, frameworks, utilitaires et helpers. • D'utiliser TDD pour tester les services.
  • 53. Elad Elrom conseille : • De ne pas utiliser TDD pour les gestuelles. • D'éviter généralement d'utiliser TDD pour tester l'interface utilisateur. • D'utiliser TDD pour construire les APIs, frameworks, utilitaires et helpers. • D'utiliser TDD pour tester les services. • D'utiliser TDD pour le code qui sera utilisé plus d'une fois, dans plus d'une application,…
  • 54. Bibliography • http://www.slideshare.net/anupom98/introduction-to-tdd-with-flexunit • Unit Testing Tools in Flash Builder: http://help.adobe.com/en_US/flashbuilder/ using/WS064a3073e805330f-57274fcd12dfe5a574a-8000.html • Doc FlexUnit: http://docs.flexunit.org/index.php • Elad Elrom o Test Driven Development using Flash Builder 4 and FlexUnit (2009) http:// www.adobe.com/devnet/flex/articles/flashbuilder4_tdd.html o http://www.slideshare.net/eladnyc/test-driven-development-tdd-with- flexunit-4-360flex-san-jose-preso o http://elromdesign.com/blog/2010/03/10/test-driven-development-tdd-with- flexunit-4-complete-tutorial/
  • 55. Ressources • http://www.slideshare.et/michael.labriola/why-test-with-flex- unit • http://tutorials.digitalprimates.net/flexunit.html • Support for FlexUnit: https://flexunit.tenderapp.com/ • A very good read http://www.amazon.com/Working- Effectively-Legacy-Michael- Feathers/dp/0131177052 • Elad Elrom Examples Download http://www.adobe.com/content/dotcom/en/devnet/flex/articles/ flashbuilder4_tdd/_jcr_content/articlePrerequistes/multiplefiles/ node_1278642616618/file.res/flashbuilder4_tdd_source[1].zip
  • 56. Bibliographie Chapter 2 of AdvancedED Flex 4 Flash&Flex Developer's Magazine Flash and mobile - APPS, IPHONE AND IPOD Touch 201-01

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n