CocoaHeads Rennes                           Quentin Arnault  13 octobre 2011     Tests automatisés sur iOS
Pourquoi ?                                            Tests de bout                                               en bout ...
Quels sont nos objectifs ?
Livrer nos produits !Ecrire du code  adaptable          Y prendre du                 1      plaisir          2             3
Livrer nos produits !➡      Aide à la         ➡ Tests plus rapide    compréhension                         ➡ Isoler et val...
Ecrire du code  adaptable                 ➡ Composants indépendants          2      ➡     Harnais de tests
Y prendre du                       plaisir➡   Esprit serein                       3
xUnit➡ Créé par Kent Beck et Erich Gamma➡ Disponible sur un nombre important de plateformes➡ Principes :➡ Environnement si...
Vocabulaire➡   Assertion : prédicat attendu lors de l’exécution du test➡   Test : méthode effectuant un test➡   Test Case ...
La boucle principale                 setUp          test_should_reset              tearDown  Pour chaque méthode test… d’u...
Démo
OCUnit➡   Une implémentation de xUnit➡   Répond aux besoins de tests unitaires➡   Plus d’excuse, c’est INTÉGRÉ !➡   Mais m...
GHUnit➡   Une implémentation de xUnit➡   Plus riche (tests asynchrones)➡   Exécution de tests individuellement➡   Mais plu...
Démo
OCUnit Vs GHUnit        OCUnit                      GHUnit                                    Possibilité de (re)lancer ch...
Pour vous aider  OCMock
Base de donnéesArrange   Act    SUT    Webservices Assert                Librairie tierce
mockArrange   Act    SUT   mock Assert                mock
Deux phasesid mockLine = [OCMockObject mockForClass:[Line class]];[[mockLine expect] mergeResponse];         Enregistremen...
Démo
Vous leur direz merci➡   Mise en place simplifiée➡   Réduit le couplage➡   Exécution des tests plus rapide➡   Met en valeur...
➡   Peut masquer un problème    d’intégration➡   A coupler avec des tests    d’intégration
Les tests d’UI                    Testent la totalité de l’applicationC’est un peu (beaucoup) ennuyeux                    ...
UIAutomation proposé par Apple avec iOS 4.0                         +Sonde pour Instruments       Librairie JavaScript
1. Basé sur les informations d’accessibilités2. Tests écrits dans un fichier JavaScript3. Tests exécutés avec Instruments
lockScreen                                    orientationChangedoubleTap                       flickInside      background ...
Démo
Il reste des limitations➡   Pas de lancement par ligne de commande➡   Interdépendance des tests➡   Difficile de débugger un...
julien@cocoaheads.fr  CocoaHeads #4                           thomas.dupont@cocoaheads.frRotation sur iOS   Mail   : thoma...
Prochain SlideShare
Chargement dans…5
×

CocoaHeads Rennes #4 : Tests automatisés sur iOS

1 970 vues

Publié le

Slides de la présentation "Tests automatisés sur iOS" de la session des CocoaHeads Rennais du 13 octobre 2011. Présentation assurée par Quentin Arnault, Ingénieur chez Niji.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 970
Sur SlideShare
0
Issues des intégrations
0
Intégrations
31
Actions
Partages
0
Téléchargements
17
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

CocoaHeads Rennes #4 : Tests automatisés sur iOS

  1. 1. CocoaHeads Rennes Quentin Arnault 13 octobre 2011 Tests automatisés sur iOS
  2. 2. Pourquoi ? Tests de bout en bout Comment ? xUnit Tests unitaires et d’intégration
  3. 3. Quels sont nos objectifs ?
  4. 4. Livrer nos produits !Ecrire du code adaptable Y prendre du 1 plaisir 2 3
  5. 5. Livrer nos produits !➡ Aide à la ➡ Tests plus rapide compréhension ➡ Isoler et valider Non régression une anomalie➡ 1
  6. 6. Ecrire du code adaptable ➡ Composants indépendants 2 ➡ Harnais de tests
  7. 7. Y prendre du plaisir➡ Esprit serein 3
  8. 8. xUnit➡ Créé par Kent Beck et Erich Gamma➡ Disponible sur un nombre important de plateformes➡ Principes :➡ Environnement simple➡ Exécution des tests à la chaine➡ Compte rendu du résultat de l’exécution des tests
  9. 9. Vocabulaire➡ Assertion : prédicat attendu lors de l’exécution du test➡ Test : méthode effectuant un test➡ Test Case : classe regroupant un ensemble de Tests➡ Test Suite : enchaînement de Test Case➡ Fixture : contexte dans lequel un Test se déroule➡ SUT : le système que l’on teste
  10. 10. La boucle principale setUp test_should_reset tearDown Pour chaque méthode test… d’une classe Pour chaque classe de test
  11. 11. Démo
  12. 12. OCUnit➡ Une implémentation de xUnit➡ Répond aux besoins de tests unitaires➡ Plus d’excuse, c’est INTÉGRÉ !➡ Mais manque de maturité
  13. 13. GHUnit➡ Une implémentation de xUnit➡ Plus riche (tests asynchrones)➡ Exécution de tests individuellement➡ Mais plus lourd à la création du projet
  14. 14. Démo
  15. 15. OCUnit Vs GHUnit OCUnit GHUnit Possibilité de (re)lancer chaque test + Intégration Compatible OCUnit Macros plus riches - Lisibilité des logs Installation Utilisable depuis Xcode 4
  16. 16. Pour vous aider OCMock
  17. 17. Base de donnéesArrange Act SUT Webservices Assert Librairie tierce
  18. 18. mockArrange Act SUT mock Assert mock
  19. 19. Deux phasesid mockLine = [OCMockObject mockForClass:[Line class]];[[mockLine expect] mergeResponse]; Enregistrement du contrat... Enregistrement des messages[mockLine verify];
  20. 20. Démo
  21. 21. Vous leur direz merci➡ Mise en place simplifiée➡ Réduit le couplage➡ Exécution des tests plus rapide➡ Met en valeur les collaborations entre objets
  22. 22. ➡ Peut masquer un problème d’intégration➡ A coupler avec des tests d’intégration
  23. 23. Les tests d’UI Testent la totalité de l’applicationC’est un peu (beaucoup) ennuyeux Facile d’oublier des testsCe que les utilisateurs voient en premier
  24. 24. UIAutomation proposé par Apple avec iOS 4.0 +Sonde pour Instruments Librairie JavaScript
  25. 25. 1. Basé sur les informations d’accessibilités2. Tests écrits dans un fichier JavaScript3. Tests exécutés avec Instruments
  26. 26. lockScreen orientationChangedoubleTap flickInside background dragInside twoFingerTaptap touchAndHold
  27. 27. Démo
  28. 28. Il reste des limitations➡ Pas de lancement par ligne de commande➡ Interdépendance des tests➡ Difficile de débugger un test
  29. 29. julien@cocoaheads.fr CocoaHeads #4 thomas.dupont@cocoaheads.frRotation sur iOS Mail : thomas.dupont@cocoaheads.fr Web : www.cocoaheads.frTests automatisés sur iOS Mail : quentin.arnault@gmail.com

×