Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android : Du 1er test à l'intégration continue

Avatar for gdemiollis gdemiollis
November 30, 2016

Android : Du 1er test à l'intégration continue

Retour d'expérience sur l'utilisation des tests
Exemple d'écriture de tests unitaires et UI en Android
https://youtu.be/pOTuitcv6FM?t=3246

Avatar for gdemiollis

gdemiollis

November 30, 2016

Other Decks in Technology

Transcript

  1. Du 1er test à l’intégration continue #TAUG 30 novembre 2016

    Guilhem de Miollis @gdemiollis @morning_com
  2. Au Programme • Pourquoi faire des tests? • Avez-vous besoin

    de faire des tests? • Le premier test - les outils pour démarrer • Avantage - Inconvénient • Intégration continue • Devops
  3. Dans quels cas écrire des test 1 • Dates •

    Cas très particuliers, rares à avoir • Cas long à mettre en place • Cas difficilement accessible par les écrans • Grosse application qui met du temps à compiler
  4. Dans quels cas écrire des test 2 • Cas de

    première ouverture de l’application, (première expérience, risque de désinstallation dans les 30s) • Feature Jenga • Découverte d’un nouveau Bug • Ajouter un 8ème if dans un méthode en espérant que toutes les autres cas marchent toujours
  5. “Oui, un jour de dev, mais 4 jours pour tout

    retester, ça touche une partie critique de l’app. Sinon faut refactorer et on part sur 2 mois de devs sans ajout de fonctionnalité” Par contre... “Comment ça une semaine de faire ça, c’est juste un champs à ajouter.” C’est déjà trop tard !!
  6. Avez-vous besoin d’écrire des tests? La réponse est NON si

    • “Tester c’est douter” • “Je code depuis assez longtemps pour pas avoir besoin de faire des tests” • Vous faites un projet de moins de 3 mois • Vous voulez tester une idée (POC ou MVP)
  7. Avez-vous besoin d’écrire des tests? La réponse est oui si

    : • Vous développer un produit qui va évoluer pendant au moins les 2 prochaines années • Vous développez un produit qui manipule des données sensibles : Argent, Santé, Transport • Il vous faut 2min entre le changement de code et voir le résultat • Vous souhaitez pouvoir livrer en faisant un Fifa • Votre client vous paye pour
  8. Inconvénients des tests • “L’architecture ne le permet pas toujours”

    • “C’est compliqué à mettre en place” • C’est encore plus de code à maintenir • Ça prends du temps
  9. Avantages des tests • Gros impact sur la qualité sur

    le long terme • Force une architecture et un découpage de l’application • Livrer fréquements et sereinement un livrable de qualité • Code coverage • Développer des fonctions isolées sans avoir à démarrer toute une stack de services ou émulateurs
  10. Et l’intégration continue? Différents serveurs disponibles src/test/java : testDebugUnitTest src/androidTest/java

    : connectedAndroidTest • Jenkins • Gitlab CI • Circle CI • Bitrise • Bambou • GreenHouse
  11. <Mode Devops ON> stages: - test - deploy test Unit:

    stage: test script: - ./gradlew testDebugUnitTest test UI: stage: test script: - ./gradlew connectedAndroidTest generate APK: stage: deploy script: - ./gradlew publishApkRemoteProdRelease only: - master gradle-play-publisher