CocoaHeads Rennes #4 : Tests automatisés sur iOS

1,851 views
1,755 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,851
On SlideShare
0
From Embeds
0
Number of Embeds
31
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

×