1 / 33
Outils et Pratiques :
Tester une application web moderne
par Jean-François LÉPINE
En face de vous
●
Jean-François LÉPINE
●
Consultant technique chez Alter Way
●
@Halleck45
●
http://blog.lepine.pro
3 / 33
Rappel :
Qu'est-ce qu'un test ?
En quête de Satisfaction
●
Tester est une recherche de
Satisfaction
●
Du client
●
Des équipes
●
La Qualité est un gage de ...
Éliminer les Défauts
●
On cherche à éliminer les états indésirables (defects)
●
Les bugs ne sont qu'un type d'états indési...
Éliminer les Défauts
●
On cherche à éliminer le plus tôt possible les états indésirables (defects)
Analyse Conception Déve...
8 / 33
Testabilité &
Qualité
Niveaux de qualité
Utilité
Pertinence
Exactitude
Interopérabilité
Sécurité
Conformité
Fiabilité
Tolérance aux pannes
Facil...
Comment régler le curseur ?
Vies humaines en jeu
Fiabilité Exactitude Testabilité
Longue durée de vie
Maintenabilité Évolu...
Tests fonctionnels
●
Tests unitaires / composants
●
le composant a t-il des défaillances ?
●
Tests unitaires
Tests fonctionnels
●
Tests unitaires / composants
●
le composant a t-il des défaillances ?
●
Tests unitaires
●
Tests d'int...
Tests fonctionnels
●
Tests unitaires / composants
●
le composant a t-il des défaillances ?
●
Tests unitaires
●
Tests d'int...
Tests fonctionnels
●
Tests unitaires / composants
●
le composant a t-il des défaillances ?
●
Tests unitaires
●
Tests d'int...
15 / 33
Tests fonctionnels
Tests de composants
●
Vérifier que le composant, dans un contexte donné et isolé, réagit de la
manière attendue
●
Tests un...
Comment vérifier les tests ? 1/2
●
Tests de mutation
●
PHP : MutaTesting https://github.com/Halleck45/MutaTesting
●
Java :...
Comment vérifier les tests ? 2/2
Tests systèmes
●
Le logiciel fait-il ce qui était
attendu ?
●
Tests fonctionnels
●
On test la conformité aux spécification...
UAT1/3
●
Le logiciel répond t-il au besoin ?
●
Tests de comportement
●
PHP :Behat http://behat.org
●
Java : Jbehave http:/...
UAT2/3
UAT3/3
23 / 33
Tests extra-fonctionnels
Tests de vérification
●
Le logiciel est-il bien fait ?
●
Tests statiques
●
PHP : PhpMetrics http://github.com/Halleck45/Ph...
PhpMetrics
Tests d'interface
●
Comparent des captures d'écran de vos applications
●
Huxley https://github.com/facebook/huxley
●
Phant...
Tests de charge / stress
●
Contrôlent la
résistance de votre
application
●
Tsung
●
Funkload
●
Gatling...
Tests d'exécution
●
Contrôlent que votre application est optimisée
●
Grunt-yslow https://github.com/andyshora/grunt-yslow
...
Tests de singe
●
Réalisent des actions illogiques pour tenter de provoquer des erreurs
●
Gremlins.js https://github.com/ma...
30 / 33
Conclusion
Conclusion
●
Tester = rechercher les états indésirables
●
Il faut bien choisir le niveau de test adapté :
●
Coûts
●
Besoin...
Conclusion
●
Une très grande partie des tests peut être automatisée
●
Il n'y a pas d'excuse valable pour ne pas tester.
●
...
Questions
●
Jean-François Lépine
●
@Halleck45
●
http://blog.lepine.pro
●
Merci !
Prochain SlideShare
Chargement dans…5
×

Outils et pratiques : tester une application web moderne

1 064 vues

Publié le

Introduction aux pratiques de testabilité logicielle : types de tests, outils. Présentation aux Rencontres Mondiales du Logiciel Libre 2014.

Vidéo : http://video.rmll.info/videos/tester-une-application-web-quels-outils-et-quelles-pratiques/

Publié dans : Logiciels
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 064
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
32
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Outils et pratiques : tester une application web moderne

  1. 1. 1 / 33 Outils et Pratiques : Tester une application web moderne par Jean-François LÉPINE
  2. 2. En face de vous ● Jean-François LÉPINE ● Consultant technique chez Alter Way ● @Halleck45 ● http://blog.lepine.pro
  3. 3. 3 / 33 Rappel : Qu'est-ce qu'un test ?
  4. 4. En quête de Satisfaction ● Tester est une recherche de Satisfaction ● Du client ● Des équipes ● La Qualité est un gage de réussite Wayan Vota (www.flickr.com)
  5. 5. Éliminer les Défauts ● On cherche à éliminer les états indésirables (defects) ● Les bugs ne sont qu'un type d'états indésirables parmi d'autre
  6. 6. Éliminer les Défauts ● On cherche à éliminer le plus tôt possible les états indésirables (defects) Analyse Conception Développement Recette Maintenance 0 20 40 60 80 100 120 1 € 2 € 7 € 15 € 100 € Coût relatif des défauts source : Gartner / IBM Systems Sciences Institute, 2003 Phase du projet durant laquelle le défaut est détecté Coût
  7. 7. 8 / 33 Testabilité & Qualité
  8. 8. Niveaux de qualité Utilité Pertinence Exactitude Interopérabilité Sécurité Conformité Fiabilité Tolérance aux pannes Facilité de récupération Facilité d'utilisation Facilité de compréhension Facilité d'apprentissage Facilité d'exploitation Pouvoir d'attraction Rendement Utilisation des ressources Performance Maintenabilité Facilité d'analyse Facilité de modification Stabilité Testabilité Portabilité Facilité d'adaptation Facilité d'installation Coexistence Interchangeabilité
  9. 9. Comment régler le curseur ? Vies humaines en jeu Fiabilité Exactitude Testabilité Longue durée de vie Maintenabilité Évolutivité Portabilité Temps réel Efficacité Exactitude Fiabilité Informations sensibles Intégrité Fiabilité ... ... ... ...
  10. 10. Tests fonctionnels ● Tests unitaires / composants ● le composant a t-il des défaillances ? ● Tests unitaires
  11. 11. Tests fonctionnels ● Tests unitaires / composants ● le composant a t-il des défaillances ? ● Tests unitaires ● Tests d'intégration : ● les échanges entre composants ont-ils des défaillances ? ● Interfaçage des composants
  12. 12. Tests fonctionnels ● Tests unitaires / composants ● le composant a t-il des défaillances ? ● Tests unitaires ● Tests d'intégration : ● les échanges entre composants ont-ils des défaillances ? ● Interfaçage des composants ● Tests système : ● le logiciel fait-il ce qui était attendu ? ● Tests fonctionnels, boîte noire, tests extra-fonctionnels
  13. 13. Tests fonctionnels ● Tests unitaires / composants ● le composant a t-il des défaillances ? ● Tests unitaires ● Tests d'intégration : ● les échanges entre composants ont-ils des défaillances ? ● Interfaçage des composants ● Tests système : ● le logiciel fait-il ce qui était attendu ? ● Tests fonctionnels, boîte noire, tests extra-fonctionnels ● Tests d'acceptation (UAT) ● Le logiciel répond t-il au besoin ?
  14. 14. 15 / 33 Tests fonctionnels
  15. 15. Tests de composants ● Vérifier que le composant, dans un contexte donné et isolé, réagit de la manière attendue ● Tests unitaires ● PHP : PHPUnit, atoum ● Java : Junit ● Javascript : Karma, Qunit
  16. 16. Comment vérifier les tests ? 1/2 ● Tests de mutation ● PHP : MutaTesting https://github.com/Halleck45/MutaTesting ● Java : PiTest http://pitest.org ● Javascript : Mutandis https://github.com/saltlab/mutandis ● On modifie des parties du code source (mutations) et on vérifie que les tests unitaires correspondants ont détecté ces changements ● Si je remplace « a + b » par « a - b », le test unitaire doit planter
  17. 17. Comment vérifier les tests ? 2/2
  18. 18. Tests systèmes ● Le logiciel fait-il ce qui était attendu ? ● Tests fonctionnels ● On test la conformité aux spécifications (contractuelles) ● PHP : PHPFit http://sourceforge.net/projects/phpfit.berlios ● Java : FIT, FitNesse http://fit.c2.com ● Fort investissement technique
  19. 19. UAT1/3 ● Le logiciel répond t-il au besoin ? ● Tests de comportement ● PHP :Behat http://behat.org ● Java : Jbehave http://jbehave.org ● JavaScript : Jasmine Species http://rudylattae.github.io Scénario : retirer de l'argent avec une carte périmée Etant donné que je suis client de la banque Et que ma carte de crédit est expirée Quand je tente de retirer de l'argent retirer de l'argent au distributeur Alors je ne dois pas recevoir d'argent Et ma carte doit être aspirée Scénario : retirer de l'argent avec une carte valide
  20. 20. UAT2/3
  21. 21. UAT3/3
  22. 22. 23 / 33 Tests extra-fonctionnels
  23. 23. Tests de vérification ● Le logiciel est-il bien fait ? ● Tests statiques ● PHP : PhpMetrics http://github.com/Halleck45/PhpMetrics ● Java : Jhawk www.virtualmachinery.com/jhawkprod.htm ● JavaScript : JsComplexity http://jscomplexity.org ● Types de métriques : ● Nombre de bugs estimés ● LCOM ● Indice de maintenabilité ● ...
  24. 24. PhpMetrics
  25. 25. Tests d'interface ● Comparent des captures d'écran de vos applications ● Huxley https://github.com/facebook/huxley ● PhantomCSS https://github.com/Huddle/PhantomCSS ● Wraith https://github.com/BBC-News/wraith
  26. 26. Tests de charge / stress ● Contrôlent la résistance de votre application ● Tsung ● Funkload ● Gatling...
  27. 27. Tests d'exécution ● Contrôlent que votre application est optimisée ● Grunt-yslow https://github.com/andyshora/grunt-yslow ● BumbleTest http://bbltest.sourceforge.net ● WebPageTest http://www.webpagetest.org
  28. 28. Tests de singe ● Réalisent des actions illogiques pour tenter de provoquer des erreurs ● Gremlins.js https://github.com/marmelab/gremlins.js
  29. 29. 30 / 33 Conclusion
  30. 30. Conclusion ● Tester = rechercher les états indésirables ● Il faut bien choisir le niveau de test adapté : ● Coûts ● Besoin ● Capacité
  31. 31. Conclusion ● Une très grande partie des tests peut être automatisée ● Il n'y a pas d'excuse valable pour ne pas tester. ● Il n'y a pas d'excuse valable pour ne pas tester ! ● Il n'y a PAS D'EXCUSE VALABLE pour ne pas tester !
  32. 32. Questions ● Jean-François Lépine ● @Halleck45 ● http://blog.lepine.pro ● Merci !

×