Alea jacta test - Bienvenue dans le monde des tests

444 vues

Publié le

Allant des clichés sur les tests aux exemples les plus désastreux, en passant par leurs différents types, la méthode Test Driven Development, et les frameworks les plus connus, cette présentation aborde le monde de tests logiciels !

Présentation faite en Janvier 2016 dans le cadre d'une conférence du GDG Code d'Armor concernant les tests.

Publié dans : Technologie
2 commentaires
0 j’aime
Statistiques
Remarques
  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
444
Sur SlideShare
0
Issues des intégrations
0
Intégrations
9
Actions
Partages
0
Téléchargements
8
Commentaires
2
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Alea jacta test - Bienvenue dans le monde des tests

  1. 1. Alea jacta test Tester n’est pas (que) douter Pierre-Yves Lapersonne / Orange ✿✿✿✿ ʕ •ᴥ•ʔ/ ︻デ═一 Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.Version 8 - 08/11/2016
  2. 2. PY LAPERSONNE Développeur mobile @pylapp
  3. 3. Alea jacta test
  4. 4. Plan de test ● les clichés sur les tests ● exemples de tests manqués ● pourquoi en faire ? ● les tests en détails ● quelques outils ● démos !
  5. 5. quelques... trucs.
  6. 6. 6 ● 8ème Journée Française des Tests Logiciels 12 / 04 / 2016 Montrouge ● CFTL Comité Français des Tests Logiciels Perros Guirrec ● ISTQB International Software Testing Qualifications Board Bruxelles
  7. 7. quelques chiffres
  8. 8. 8 ● 40 % du budget projet dédiés aux tests ● 39 % des devs sont en mode TDD ● 46 % des devs estiment ne pas avoir assez de temps pour les tests
  9. 9. les clichés sur les tests
  10. 10. 10 tester c’est douter !
  11. 11. 11 ça ne sert à rien !
  12. 12. 12 ça prend trop de temps !
  13. 13. 13 ça coûte trop cher !
  14. 14. 14 le client est le meilleur testeur !
  15. 15. 15 ça ajoute des sources à maintenir !
  16. 16. inutiles les tests ?
  17. 17. 17 Therac 25 1980’
  18. 18. 18 ● outil de traitement de cancers par radiations ● exposition prévue de 200 rad ● exposition réelle de 20 000 rad ● au moins 6 morts
  19. 19. 19 AT&T 15 Janvier 1990
  20. 20. 20 ● mise à jour du réseau téléphonique ● transmissions de mauvais messages entre les antennes ● 9h de panne ● 60 millions $ de pertes
  21. 21. 21 Mars Climate Orbiter 23 Septembre 1999
  22. 22. 22 ● plusieurs équipes internationales... ● utilisant le système anglo-saxon... ● ... ET le système métrique ● navigation totalement défectueuse ● 900 millions $ perdus
  23. 23. 23 vol 501 de Ariane 5 4 Juin 1996
  24. 24. 24 ● récupération d’éléments logiciels Ariane 4 ● overflow dans les calculs de trajectoire ● problème de conversion float 64 bits unsigned 16 bits ● destruction de la fusée ● +370 millions $ ... à l’eau
  25. 25. 25 retournement d’un F-18
  26. 26. 26 ● retournement une fois passé l’équateur ● mauvaise gestion des coordonnées
  27. 27. 27 Louvois 2011
  28. 28. 28 ● retards de paiement ● mauvais soldes versés ● les familles des militaires en danger ● 465 millions d’euros d’erreur... juste en 2012 selon la Cour des Comptes
  29. 29. 29 Stagefright 2015
  30. 30. 30 ● AOSP, Firefox, Firefox OS ● librairie multimédia obsolète ● débordement mémoire ● execution de code arbitraire, etc.
  31. 31. 31 iOS et le killer text 2015
  32. 32. 32 ● réception d’un message particulier ● affichage dans les notifications ● débordement d’un buffer ● comportements dangereux de l’iPhone redémarrage, blocage, boot loop, ...
  33. 33. 33 SNCF et Linux... 2015
  34. 34. 34 ● sur Windows ? Ça fonctionne. ● sur OS X ? Ça fonctionne. ● Linux ? Android ? Oups.
  35. 35. 35 Castorama 8 Juin 2016
  36. 36. 36 ● suggestions douteuses selon les requêtes ● fermeture du site en catastrophe donc manque à gagner pour l’entreprise
  37. 37. 37 SAIP 14 Juillet 2016
  38. 38. 38 ● notification des usagers 3h après la tragédie ● retard d’information par rapport à d’autres Facebook, Twitter, QWIDAM, les SMS...
  39. 39. pourquoi faire des tests ?
  40. 40. 39 ● prouver la qualité du logiciel ● identifier des comportements incohérents ● repérer d’éventuelles failles ● avoir des clients cont€nts ● éviter les surcharge$ liées aux bugs ● et puis avoir la conscience tranquille aussi...
  41. 41. mais qu’est-ce qu’un test ?
  42. 42. définitions ISTQB / IEEE mais qu’est-ce qu’un test ?
  43. 43. 43
  44. 44. 44
  45. 45. 45
  46. 46. concrètement mais qu’est-ce qu’un test ?
  47. 47. 47 ● pré-conditions, post-conditions, invariants ● paramètres, valeurs de retour ● succès, échec, en cours, pas fait, planté
  48. 48. 48 ● tests statiques ■ vérification des sources dead / unreachable code, métriques, syntaxe, standards... ■ pas d’exécution de code
  49. 49. 49 ● tests dynamiques ■ black box se baser sur les spécifications, comportements macros / extérieurs, abstraction de la conception ■ white box se baser sur la conception, comportements micros / intérieurs
  50. 50. 50 ● smoke / sanity / confidence tests ■ les autres tests pourront ou non démarrer logiciel peut démarrer ? connexion faite ? etc. ● monkey tests ■ tester sans savoir ce que l’on fait répétitif, générations probabilisées d’inputs, random...
  51. 51. 51 ● plusieurs types ■ utilisateurs alpha / beta tests, utilisabilité, retours directs du public cible ■ système stress tests, performances, conformité envers les specifications
  52. 52. 52 ● plusieurs types ■ intégration communication entre les composants via leurs interfaces ■ unitaires isoler les composants, chercher les défauts dans les API
  53. 53. le cycle de vie d’un test
  54. 54. 54 1. planning scope, méthodologie, gestion des defects... 2. développement cas de tests, scénarios, scripts 3. exécution exécution, résultats
  55. 55. 55 4. defects reporting rejouer les tests, rapports 5. product delivery
  56. 56. les 6 commandements
  57. 57. 57 1. Il doit être automatisé et rejouable 2. Il doit être facile à concevoir 3. Une fois écrit, il demeurera 4. Tout le monde peut le lancer 5. Il doit être lancé aussi simplement qu’un click sur un bouton 6. Il doit être rapide d’exécution
  58. 58. et les bugs dans tout ça ?
  59. 59. 59 ● niveaux de bugs new, open, assign, test, deferred, rejected, duplicate, verified, closed ● sévérités minor / low, average / medium, major / high, critical
  60. 60. Test-Driven Development
  61. 61. 61 ● méthodologie de projet Kent Beck, 2003 ● héritage de eXtreme Programming revues de codes, tests unitaires, cycles très courts, test-first ● Test Driven Development: By Example, Kent Beck Addison-Wesley Longman, 2002, ISBN 0-321-14653-0, ISBN 978-0321146533
  62. 62. 62
  63. 63. 63
  64. 64. la (grosse) boîte à outils
  65. 65. 67
  66. 66. 68
  67. 67. 69
  68. 68. 70
  69. 69. 71
  70. 70. 72
  71. 71. 73
  72. 72. 74
  73. 73. 75 Monkey adb shell monkey -p com.package.myApp --throttle 300 -s 123456 10 adb shell monkey -p com.package.myApp --pct-touch 50 -pct-motion 25 --pct-trackball 25 10000
  74. 74. 76 Monkeyrunner
  75. 75. 77
  76. 76. 78
  77. 77. https://github.com/pylapp/AleaJactaTest
  78. 78. one more slide
  79. 79. 81 ● les tests sont indispensables ● les développeurs sont de bons testeurs du code ● les utilisateurs sont de bons testeurs du produit ● ce ne sont pas les outils qui manquent...
  80. 80. Merci ! @pylapp Dura test, sed test. Alea jacta test !
  81. 81. ● Des frameworks de tests ○ JUnit ■ http://junit.org/ ○ QUnit ■ https://qunitjs.com/ ○ UnitJS ■ http://unitjs.com/ ○ JSUnit ■ http://www.jsunit.net/ ○ Jasmine ■ http://jasmine.github.io/ ○ Mocha ■ https://mochajs.org/ ○ Appium ■ http://appium.io/introduction.html?lang=en ■ http://appium.io/slate/en/tutorial/android.html?java# ■ https://github.com/appium/java-client ○ Robotium ■ http://robotium.com/ ■ https://github.com/robotiumtech/robotium ○ Robotframework ■ http://robotframework.org/ ○ UIAutomator ■ http://developer.android.com/tools/testing-support-library/index.html#UIAutomator ○ And others links... ■ https://google.github.io/android-testing-support-library/ ■ https://google.github.io/android-testing-support-library/docs/androidjunitrunner-guide/index.html ■ https://github.com/googlesamples/android-testing ■ https://developer.android.com/tools/testing-support-library/index.html ■ https://medium.com/@nileshjarad/how-to-do-tdd-in-android-90f013d91d7f#.dhvrjw8ug ■ https://medium.com/@nileshjarad/why-developers-scared-to-refactor-code-47efd1b854e7#.ojtyerioc ■ https://developer.android.com/studio/test/monkey.html ■ https://developer.android.com/studio/test/monkeyrunner/index.html
  82. 82. ● Des plateformes de tests ○ Google Cloud Test Lab ■ https://developers.google.com/cloud-test-lab/ ○ Sauce Labs ■ http://saucelabs.com/ ● Des robots de tests ○ Tapster ■ https://www.tindie.com/products/hugs/tapster/ ■ http://bitbeam.org/ ■ https://www.youtube.com/watch?v=c_rfTvQs4YU ■ https://www.youtube.com/watch?v=in2av9LtCfE ○ Rob5X ■ http://www.keolabs.com/automation.html ○ Chrome Touch Bot ■ http://www.frandroid.com/marques/google/291985_chrome-touchbot-robot-teste-reactivite-appareils-de-google
  83. 83. ● D’autres liens chouettes ○ http://fr.slideshare.net/tfrommen/an-introduction-to-software-testing ○ http://www.slideshare.net/UdayaSree/software-testing-life-cycle-presentation ○ http://blog.hubstaff.com/why-you-should-write-unit-tests/ ○ http://blog.hubstaff.com/survey-many-developers-write-unit-tests/ ○ http://artofunittesting.com/ ○ http://programmers.stackexchange.com/questions/21133/how-to-write-good-unit-tests ○ http://blog.stevensanderson.com/2009/08/24/writing-great-unit-tests-best-and-worst-practises/ ○ https://en.wikipedia.org/wiki/List_of_unit_testing_frameworks ○ http://android-developers.blogspot.fr/2015/12/leveraging-product-flavors-in-android.html ○ http://www.journaldugeek.com/2015/05/28/un-bug-qui-permet-a-un-sms-de-redemarrer-votre-iphone/ ○ http://www.numerama.com/tech/135593-sncf-empeche-achat-de-billets-train-ter-sous-linux.html ○ https://fr.wikipedia.org/wiki/Logiciel_unique_%C3%A0_vocation_interarm%C3%A9es_de_la_solde ○ https://jenkins-ci.org/ ○ http://www.marmiton.org/recettes/recette_pate-a-crepes-des-plus-raffinees_49665.aspx ○ http://radonc.wikidot.com/radiation-accident-therac25 ○ http://users.csc.calpoly.edu/~jdalbey/SWE/Papers/att_collapse.html ○ https://www.youtube.com/watch?v=_p3Qxl4736A ○ https://www.nirgal.net/mco_end.html

×