Alea jacta test
Tester n’est pas (que) douter
Pierre-Yves Lapersonne / Orange
✿✿✿✿ ʕ •ᴥ•ʔ/ ︻デ═一 Cette œuvre est mise à dis...
PY LAPERSONNE
Développeur mobile
@pylapp
Alea jacta test
Plan de test
● les clichés sur les tests
● exemples de tests manqués
● pourquoi en faire ?
● les tests en détails
● quelqu...
quelques... trucs.
6
● 8ème Journée Française des Tests Logiciels
12 / 04 / 2016
Montrouge
● CFTL
Comité Français des Tests Logiciels
Perros ...
quelques chiffres
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...
les clichés sur les tests
10
tester c’est douter !
11
ça ne sert à rien !
12
ça prend trop de temps !
13
ça coûte trop cher !
14
le client est le meilleur testeur !
15
ça ajoute des sources à maintenir !
inutiles les tests ?
17
Therac 25
1980’
18
● outil de traitement de cancers par
radiations
● exposition prévue de 200 rad
● exposition réelle de 20 000 rad
● au m...
19
AT&T
15 Janvier 1990
20
● mise à jour du réseau téléphonique
● transmissions de mauvais messages
entre les antennes
● 9h de panne
● 60 millions...
21
Mars Climate Orbiter
23 Septembre 1999
22
● plusieurs équipes internationales...
● utilisant le système anglo-saxon...
● ... ET le système métrique
● navigation ...
23
vol 501 de Ariane 5
4 Juin 1996
24
● récupération d’éléments logiciels Ariane 4
● overflow dans les calculs de trajectoire
● problème de conversion
float ...
25
retournement d’un F-18
26
● retournement une fois passé l’équateur
● mauvaise gestion des coordonnées
27
Louvois
2011
28
● retards de paiement
● mauvais soldes versés
● les familles des militaires en danger
● 465 millions d’euros d’erreur.....
29
Stagefright
2015
30
● AOSP, Firefox, Firefox OS
● librairie multimédia obsolète
● débordement mémoire
● execution de code arbitraire, etc.
31
iOS et le killer text
2015
32
● réception d’un message particulier
● affichage dans les notifications
● débordement d’un buffer
● comportements dange...
33
SNCF et Linux...
2015
34
● sur Windows ? Ça fonctionne.
● sur OS X ? Ça fonctionne.
● Linux ? Android ? Oups.
35
Castorama
8 Juin 2016
36
● suggestions douteuses selon les requêtes
● fermeture du site en catastrophe
donc manque à gagner pour l’entreprise
37
SAIP
14 Juillet 2016
38
● notification des usagers 3h après la tragédie
● retard d’information par rapport à d’autres
Facebook, Twitter, QWIDAM...
pourquoi faire des tests ?
39
● prouver la qualité du logiciel
● identifier des comportements incohérents
● repérer d’éventuelles failles
● avoir des...
mais qu’est-ce qu’un test ?
définitions ISTQB / IEEE
mais qu’est-ce qu’un test ?
43
44
45
concrètement
mais qu’est-ce qu’un test ?
47
● pré-conditions, post-conditions, invariants
● paramètres, valeurs de retour
● succès, échec, en cours, pas fait, plan...
48
● tests statiques
■ vérification des sources
dead / unreachable code, métriques, syntaxe, standards...
■ pas d’exécutio...
49
● tests dynamiques
■ black box
se baser sur les spécifications, comportements macros / extérieurs,
abstraction de la co...
50
● smoke / sanity / confidence tests
■ les autres tests pourront ou non démarrer
logiciel peut démarrer ? connexion fait...
51
● plusieurs types
■ utilisateurs
alpha / beta tests, utilisabilité, retours directs du public cible
■ système
stress te...
52
● plusieurs types
■ intégration
communication entre les composants via leurs interfaces
■ unitaires
isoler les composan...
le cycle de vie d’un test
54
1. planning
scope, méthodologie, gestion des defects...
2. développement
cas de tests, scénarios, scripts
3. exécution
...
55
4. defects reporting
rejouer les tests, rapports
5. product delivery
les 6 commandements
57
1. Il doit être automatisé et rejouable
2. Il doit être facile à concevoir
3. Une fois écrit, il demeurera
4. Tout le m...
et les bugs dans tout ça ?
59
● niveaux de bugs
new, open, assign, test, deferred, rejected, duplicate, verified, closed
● sévérités
minor / low, ave...
Test-Driven Development
61
● méthodologie de projet
Kent Beck, 2003
● héritage de eXtreme Programming
revues de codes, tests unitaires, cycles trè...
62
63
la (grosse) boîte à outils
67
68
69
70
71
72
73
74
75
https://github.com/pylapp/AleaJactaTest
one more slide
78
● les tests sont indispensables
● les développeurs sont de bons testeurs
● ce ne sont pas les outils qui manquent...
Merci !
@pylapp
Dura test, sed test. Alea jacta test !
● Des frameworks de tests
○ JUnit
■ http://junit.org/
○ QUnit
■ https://qunitjs.com/
○ UnitJS
■ http://unitjs.com/
○ JSUni...
● Des plateformes de tests
○ Google Cloud Test Lab
■ https://developers.google.com/cloud-test-lab/
○ Sauce Labs
■ http://s...
● D’autres liens chouettes
○ http://fr.slideshare.net/tfrommen/an-introduction-to-software-testing
○ http://www.slideshare...
Alea jacta test - Bienvenue dans le monde des tests
Alea jacta test - Bienvenue dans le monde des tests
Alea jacta test - Bienvenue dans le monde des tests
Alea jacta test - Bienvenue dans le monde des tests
Prochain SlideShare
Chargement dans…5
×

Alea jacta test - Bienvenue dans le monde des tests

422 vues

Publié le

Présentation faite en Janvier 2016 dans le cadre d'une conférence du GDG Code d'Armor concernant les tests.
Allant des clichés 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 conférence présente le monde de tests pour un public large.

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

Aucun téléchargement
Vues
Nombre de vues
422
Sur SlideShare
0
Issues des intégrations
0
Intégrations
31
Actions
Partages
0
Téléchargements
7
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 7 - 25/08/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
  74. 74. https://github.com/pylapp/AleaJactaTest
  75. 75. one more slide
  76. 76. 78 ● les tests sont indispensables ● les développeurs sont de bons testeurs ● ce ne sont pas les outils qui manquent...
  77. 77. Merci ! @pylapp Dura test, sed test. Alea jacta test !
  78. 78. ● 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
  79. 79. ● 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
  80. 80. ● 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

×