Alea jacta test - Bienvenue dans le monde des tests

87
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

Transcript of Alea jacta test - Bienvenue dans le monde des tests

Page 1: Alea jacta test - Bienvenue dans le monde des tests

Alea jacta testTester 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

Page 2: Alea jacta test - Bienvenue dans le monde des tests

PY LAPERSONNE

Développeur mobile

@pylapp

Page 3: Alea jacta test - Bienvenue dans le monde des tests

Alea jacta test

Page 4: Alea jacta test - Bienvenue dans le monde des tests

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 !

Page 5: Alea jacta test - Bienvenue dans le monde des tests

quelques... trucs.

Page 6: Alea jacta test - Bienvenue dans le monde des tests

6

● 8ème Journée Française des Tests Logiciels12 / 04 / 2016Montrouge

● CFTLComité Français des Tests LogicielsPerros Guirrec

● ISTQBInternational Software Testing Qualifications BoardBruxelles

Page 7: Alea jacta test - Bienvenue dans le monde des tests

quelques chiffres

Page 8: Alea jacta test - Bienvenue dans le monde des tests

8

● 40 % du budget projet dédiés aux tests

● 39 % des devs sont en mode TDD

● 46 % des devs estiment ne pas avoirassez de temps pour les tests

Page 9: Alea jacta test - Bienvenue dans le monde des tests

les clichés sur les tests

Page 10: Alea jacta test - Bienvenue dans le monde des tests

10

tester c’est douter !

Page 11: Alea jacta test - Bienvenue dans le monde des tests

11

ça ne sert à rien !

Page 12: Alea jacta test - Bienvenue dans le monde des tests

12

ça prend trop de temps !

Page 13: Alea jacta test - Bienvenue dans le monde des tests

13

ça coûte trop cher !

Page 14: Alea jacta test - Bienvenue dans le monde des tests

14

le client est le meilleur testeur !

Page 15: Alea jacta test - Bienvenue dans le monde des tests

15

ça ajoute des sources à maintenir !

Page 16: Alea jacta test - Bienvenue dans le monde des tests

inutiles les tests ?

Page 17: Alea jacta test - Bienvenue dans le monde des tests

17

Therac 251980’

Page 18: Alea jacta test - Bienvenue dans le monde des tests

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

Page 19: Alea jacta test - Bienvenue dans le monde des tests

19

AT&T15 Janvier 1990

Page 20: Alea jacta test - Bienvenue dans le monde des tests

20

● mise à jour du réseau téléphonique

● transmissions de mauvais messages entre les antennes

● 9h de panne

● 60 millions $ de pertes

Page 21: Alea jacta test - Bienvenue dans le monde des tests

21

Mars Climate Orbiter23 Septembre 1999

Page 22: Alea jacta test - Bienvenue dans le monde des tests

22

● plusieurs équipes internationales...

● utilisant le système anglo-saxon...

● ... ET le système métrique

● navigation totalement défectueuse

● 900 millions $ perdus

Page 23: Alea jacta test - Bienvenue dans le monde des tests

23

vol 501 de Ariane 54 Juin 1996

Page 24: Alea jacta test - Bienvenue dans le monde des tests

24

● récupération d’éléments logiciels Ariane 4

● overflow dans les calculs de trajectoire

● problème de conversionfloat 64 bits unsigned 16 bits

● destruction de la fusée

● +370 millions $ ... à l’eau

Page 25: Alea jacta test - Bienvenue dans le monde des tests

25

retournement d’un F-18

Page 26: Alea jacta test - Bienvenue dans le monde des tests

26

● retournement une fois passé l’équateur

● mauvaise gestion des coordonnées

Page 27: Alea jacta test - Bienvenue dans le monde des tests

27

Louvois2011

Page 28: Alea jacta test - Bienvenue dans le monde des tests

28

● retards de paiement

● mauvais soldes versés

● les familles des militaires en danger

● 465 millions d’euros d’erreur... juste en 2012selon la Cour des Comptes

Page 29: Alea jacta test - Bienvenue dans le monde des tests

29

Stagefright2015

Page 30: Alea jacta test - Bienvenue dans le monde des tests

30

● AOSP, Firefox, Firefox OS

● librairie multimédia obsolète

● débordement mémoire ● execution de code arbitraire, etc.

Page 31: Alea jacta test - Bienvenue dans le monde des tests

31

iOS et le killer text2015

Page 32: Alea jacta test - Bienvenue dans le monde des tests

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, ...

Page 33: Alea jacta test - Bienvenue dans le monde des tests

33

SNCF et Linux...2015

Page 34: Alea jacta test - Bienvenue dans le monde des tests

34

● sur Windows ? Ça fonctionne.

● sur OS X ? Ça fonctionne.

● Linux ? Android ? Oups.

Page 35: Alea jacta test - Bienvenue dans le monde des tests

35

Castorama8 Juin 2016

Page 36: Alea jacta test - Bienvenue dans le monde des tests

36

● suggestions douteuses selon les requêtes

● fermeture du site en catastrophedonc manque à gagner pour l’entreprise

Page 37: Alea jacta test - Bienvenue dans le monde des tests

37

SAIP14 Juillet 2016

Page 38: Alea jacta test - Bienvenue dans le monde des tests

38

● notification des usagers 3h après la tragédie

● retard d’information par rapport à d’autresFacebook, Twitter, QWIDAM, les SMS...

Page 39: Alea jacta test - Bienvenue dans le monde des tests

pourquoi faire des tests ?

Page 40: Alea jacta test - Bienvenue dans le monde des tests

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...

Page 41: Alea jacta test - Bienvenue dans le monde des tests

mais qu’est-ce qu’un test ?

Page 42: Alea jacta test - Bienvenue dans le monde des tests

définitions ISTQB / IEEE

mais qu’est-ce qu’un test ?

Page 43: Alea jacta test - Bienvenue dans le monde des tests

43

Page 44: Alea jacta test - Bienvenue dans le monde des tests

44

Page 45: Alea jacta test - Bienvenue dans le monde des tests

45

Page 46: Alea jacta test - Bienvenue dans le monde des tests

concrètement

mais qu’est-ce qu’un test ?

Page 47: Alea jacta test - Bienvenue dans le monde des tests

47

● pré-conditions, post-conditions, invariants

● paramètres, valeurs de retour

● succès, échec, en cours, pas fait, planté

Page 48: Alea jacta test - Bienvenue dans le monde des tests

48

● tests statiques

■ vérification des sourcesdead / unreachable code, métriques, syntaxe, standards...

■ pas d’exécution de code

Page 49: Alea jacta test - Bienvenue dans le monde des tests

49

● tests dynamiques

■ black boxse baser sur les spécifications, comportements macros / extérieurs,abstraction de la conception

■ white boxse baser sur la conception, comportements micros / intérieurs

Page 50: Alea jacta test - Bienvenue dans le monde des tests

50

● smoke / sanity / confidence tests

■ les autres tests pourront ou non démarrerlogiciel peut démarrer ? connexion faite ? etc.

● monkey tests

■ tester sans savoir ce que l’on faitrépétitif, générations probabilisées d’inputs, random...

Page 51: Alea jacta test - Bienvenue dans le monde des tests

51

● plusieurs types

■ utilisateursalpha / beta tests, utilisabilité, retours directs du public cible

■ systèmestress tests, performances, conformité envers les specifications

Page 52: Alea jacta test - Bienvenue dans le monde des tests

52

● plusieurs types

■ intégrationcommunication entre les composants via leurs interfaces

■ unitairesisoler les composants, chercher les défauts dans les API

Page 53: Alea jacta test - Bienvenue dans le monde des tests

le cycle de vie d’un test

Page 54: Alea jacta test - Bienvenue dans le monde des tests

54

1. planningscope, méthodologie, gestion des defects...

2. développementcas de tests, scénarios, scripts

3. exécutionexécution, résultats

Page 55: Alea jacta test - Bienvenue dans le monde des tests

55

4. defects reportingrejouer les tests, rapports

5. product delivery

Page 56: Alea jacta test - Bienvenue dans le monde des tests

les 6 commandements

Page 57: Alea jacta test - Bienvenue dans le monde des tests

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

Page 58: Alea jacta test - Bienvenue dans le monde des tests

et les bugs dans tout ça ?

Page 59: Alea jacta test - Bienvenue dans le monde des tests

59

● niveaux de bugsnew, open, assign, test, deferred, rejected, duplicate, verified, closed

● sévéritésminor / low, average / medium, major / high, critical

Page 60: Alea jacta test - Bienvenue dans le monde des tests

Test-Driven Development

Page 61: Alea jacta test - Bienvenue dans le monde des tests

61

● méthodologie de projetKent Beck, 2003

● héritage de eXtreme Programmingrevues de codes, tests unitaires, cycles très courts, test-first

● Test Driven Development: By Example, Kent BeckAddison-Wesley Longman, 2002, ISBN 0-321-14653-0, ISBN 978-0321146533

Page 62: Alea jacta test - Bienvenue dans le monde des tests

62

Page 63: Alea jacta test - Bienvenue dans le monde des tests

63

Page 64: Alea jacta test - Bienvenue dans le monde des tests

la (grosse) boîte à outils

Page 65: Alea jacta test - Bienvenue dans le monde des tests
Page 66: Alea jacta test - Bienvenue dans le monde des tests
Page 67: Alea jacta test - Bienvenue dans le monde des tests

67

Page 68: Alea jacta test - Bienvenue dans le monde des tests

68

Page 69: Alea jacta test - Bienvenue dans le monde des tests

69

Page 70: Alea jacta test - Bienvenue dans le monde des tests

70

Page 71: Alea jacta test - Bienvenue dans le monde des tests

71

Page 72: Alea jacta test - Bienvenue dans le monde des tests

72

Page 73: Alea jacta test - Bienvenue dans le monde des tests

73

Page 74: Alea jacta test - Bienvenue dans le monde des tests

74

Page 75: Alea jacta test - Bienvenue dans le monde des tests

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

Page 76: Alea jacta test - Bienvenue dans le monde des tests

76

Monkeyrunner

Page 77: Alea jacta test - Bienvenue dans le monde des tests

77

Page 78: Alea jacta test - Bienvenue dans le monde des tests

78

Page 80: Alea jacta test - Bienvenue dans le monde des tests

one more slide

Page 81: Alea jacta test - Bienvenue dans le monde des tests

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...

Page 82: Alea jacta test - Bienvenue dans le monde des tests

Merci !

@pylapp

Dura test, sed test. Alea jacta test !

Page 83: Alea jacta test - Bienvenue dans le monde des tests
Page 84: Alea jacta test - Bienvenue dans le monde des tests

● 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

Page 85: Alea jacta test - Bienvenue dans le monde des tests

● 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

Page 86: Alea jacta test - Bienvenue dans le monde des tests

● 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

Page 87: Alea jacta test - Bienvenue dans le monde des tests