SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
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 réussite
Wayan Vota (www.flickr.com)
É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
É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
8 / 33
Testabilité &
Qualité
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é
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é
...
... ... ...
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égration :
●
les échanges entre composants ont-ils des défaillances ?
●
Interfaçage des composants
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 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 ?
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 unitaires
●
PHP : PHPUnit, atoum
●
Java : Junit
●
Javascript : Karma, Qunit
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
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écifications
(contractuelles)
●
PHP : PHPFit
http://sourceforge.net/projects/phpfit.berlios
●
Java : FIT, FitNesse
http://fit.c2.com
●
Fort investissement technique
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
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/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é
●
...
PhpMetrics
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
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
●
BumbleTest http://bbltest.sourceforge.net
●
WebPageTest http://www.webpagetest.org
Tests de singe
●
Réalisent des actions illogiques pour tenter de provoquer des erreurs
●
Gremlins.js https://github.com/marmelab/gremlins.js
30 / 33
Conclusion
Conclusion
●
Tester = rechercher les états indésirables
●
Il faut bien choisir le niveau de test adapté :
●
Coûts
●
Besoin
●
Capacité
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 !
Questions
●
Jean-François Lépine
●
@Halleck45
●
http://blog.lepine.pro
●
Merci !

Contenu connexe

Tendances

Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...TelecomValley
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logicielJean-Paul CARMONA
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels Bilel Abed
 
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...TelecomValley
 
Exposé qualité et test
Exposé qualité et test Exposé qualité et test
Exposé qualité et test Imen Turki
 
Test unitaire
Test unitaireTest unitaire
Test unitaireIsenDev
 
Mémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline SimonMémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline SimonEmeline Simon
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeTelecomValley
 
Automatisation des tests
Automatisation des testsAutomatisation des tests
Automatisation des testsZhu Wei QI
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techMarine Karam
 
Types de tests vs techniques de tests
Types de tests vs techniques de testsTypes de tests vs techniques de tests
Types de tests vs techniques de testsSabrine MASTOURA
 
Les Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des TestsLes Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des TestsLy-Jia Goldstein
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebChristophe Rochefolle
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsCloudNetCare
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17Marc Hage Chahine
 

Tendances (20)

Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logiciel
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels
 
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
 
Exposé qualité et test
Exposé qualité et test Exposé qualité et test
Exposé qualité et test
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Mémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline SimonMémoire - L'automatisation des tests fonctionnels - Emeline Simon
Mémoire - L'automatisation des tests fonctionnels - Emeline Simon
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
 
Automatisation des tests
Automatisation des testsAutomatisation des tests
Automatisation des tests
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue tech
 
Types de tests vs techniques de tests
Types de tests vs techniques de testsTypes de tests vs techniques de tests
Types de tests vs techniques de tests
 
Les Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des TestsLes Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des Tests
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et Web
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Futur tunis
Futur tunisFutur tunis
Futur tunis
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests Logiciels
 
Test logiciel
Test logicielTest logiciel
Test logiciel
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
 
ATDD Visuel
ATDD VisuelATDD Visuel
ATDD Visuel
 

En vedette

Exploiter php 5
Exploiter php 5Exploiter php 5
Exploiter php 5halleck45
 
Programmation Orientée Objet et les Traits en PHP 5.4
Programmation Orientée Objet et les Traits en PHP 5.4Programmation Orientée Objet et les Traits en PHP 5.4
Programmation Orientée Objet et les Traits en PHP 5.4halleck45
 
Déployer avec les tests
Déployer avec les testsDéployer avec les tests
Déployer avec les testsneuros
 
AboutSLP2015.pptx (Lecture seule)
AboutSLP2015.pptx (Lecture seule)AboutSLP2015.pptx (Lecture seule)
AboutSLP2015.pptx (Lecture seule)Xavier Milin
 
Marie-Josée Roy (jour 3) à Art Souterrain
Marie-Josée Roy (jour 3) à Art SouterrainMarie-Josée Roy (jour 3) à Art Souterrain
Marie-Josée Roy (jour 3) à Art SouterrainIMAGE IN situ
 
Lmd conference mian
Lmd conference mianLmd conference mian
Lmd conference mianAntoine MIAN
 
Gastronomie lyonnaises ( héberger par Slide Share)
Gastronomie lyonnaises ( héberger par Slide Share)Gastronomie lyonnaises ( héberger par Slide Share)
Gastronomie lyonnaises ( héberger par Slide Share)mjdelary
 
French 021912 email tounitedstatescongress
French   021912 email tounitedstatescongressFrench   021912 email tounitedstatescongress
French 021912 email tounitedstatescongressVogelDenise
 
Présentation ID-Stats
Présentation ID-StatsPrésentation ID-Stats
Présentation ID-Statsflorianpilloy
 
Oscaro partenaire de Cars 2 de Disney
Oscaro partenaire de Cars 2 de DisneyOscaro partenaire de Cars 2 de Disney
Oscaro partenaire de Cars 2 de Disneyoscaro-france
 
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...French Scrum User Group
 
Modulemarketing 121016134407-phpapp01
Modulemarketing 121016134407-phpapp01Modulemarketing 121016134407-phpapp01
Modulemarketing 121016134407-phpapp01Nabil Ben Zerrouk
 
Kenitra2013 springer,languespecialiseestechnolectes
Kenitra2013 springer,languespecialiseestechnolectesKenitra2013 springer,languespecialiseestechnolectes
Kenitra2013 springer,languespecialiseestechnolectesClaudespringer
 
Blue screen of death
Blue screen of deathBlue screen of death
Blue screen of deathAymen Drira
 
Louaize bc notre dame de louaize introduction vf w
Louaize bc notre dame de louaize introduction vf wLouaize bc notre dame de louaize introduction vf w
Louaize bc notre dame de louaize introduction vf wIAU_Past_Conferences
 

En vedette (20)

Exploiter php 5
Exploiter php 5Exploiter php 5
Exploiter php 5
 
Programmation Orientée Objet et les Traits en PHP 5.4
Programmation Orientée Objet et les Traits en PHP 5.4Programmation Orientée Objet et les Traits en PHP 5.4
Programmation Orientée Objet et les Traits en PHP 5.4
 
Déployer avec les tests
Déployer avec les testsDéployer avec les tests
Déployer avec les tests
 
AboutSLP2015.pptx (Lecture seule)
AboutSLP2015.pptx (Lecture seule)AboutSLP2015.pptx (Lecture seule)
AboutSLP2015.pptx (Lecture seule)
 
Marie-Josée Roy (jour 3) à Art Souterrain
Marie-Josée Roy (jour 3) à Art SouterrainMarie-Josée Roy (jour 3) à Art Souterrain
Marie-Josée Roy (jour 3) à Art Souterrain
 
Lmd conference mian
Lmd conference mianLmd conference mian
Lmd conference mian
 
Gastronomie lyonnaises ( héberger par Slide Share)
Gastronomie lyonnaises ( héberger par Slide Share)Gastronomie lyonnaises ( héberger par Slide Share)
Gastronomie lyonnaises ( héberger par Slide Share)
 
Rome
RomeRome
Rome
 
Comput training
Comput trainingComput training
Comput training
 
title
titletitle
title
 
French 021912 email tounitedstatescongress
French   021912 email tounitedstatescongressFrench   021912 email tounitedstatescongress
French 021912 email tounitedstatescongress
 
Artistic paris baloulumix
Artistic paris baloulumixArtistic paris baloulumix
Artistic paris baloulumix
 
Présentation ID-Stats
Présentation ID-StatsPrésentation ID-Stats
Présentation ID-Stats
 
Oscaro partenaire de Cars 2 de Disney
Oscaro partenaire de Cars 2 de DisneyOscaro partenaire de Cars 2 de Disney
Oscaro partenaire de Cars 2 de Disney
 
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...
 
Modulemarketing 121016134407-phpapp01
Modulemarketing 121016134407-phpapp01Modulemarketing 121016134407-phpapp01
Modulemarketing 121016134407-phpapp01
 
Kenitra2013 springer,languespecialiseestechnolectes
Kenitra2013 springer,languespecialiseestechnolectesKenitra2013 springer,languespecialiseestechnolectes
Kenitra2013 springer,languespecialiseestechnolectes
 
Blue screen of death
Blue screen of deathBlue screen of death
Blue screen of death
 
Jodete noé x d
Jodete noé x dJodete noé x d
Jodete noé x d
 
Louaize bc notre dame de louaize introduction vf w
Louaize bc notre dame de louaize introduction vf wLouaize bc notre dame de louaize introduction vf w
Louaize bc notre dame de louaize introduction vf w
 

Similaire à Outils et pratiques : tester une application web moderne

Le rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingLe rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingGeeks Anonymes
 
PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en pythongburet
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterComment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterGuillaume Deshayes
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesEric SIBER
 
Les tests utilisateurs pour les petits budgets
Les tests utilisateurs pour les petits budgetsLes tests utilisateurs pour les petits budgets
Les tests utilisateurs pour les petits budgetsL_Demontiers
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & MétiersCellenza
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileDenis Voituron
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciellauraty3204
 
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...EspritAgile
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - IntroductionOlivier ETIENNE
 
20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_allCARA_Lyon
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agilelaurent bristiel
 
Ferpection pour meetup Qualité des Applications Mobiles
Ferpection pour meetup Qualité des Applications MobilesFerpection pour meetup Qualité des Applications Mobiles
Ferpection pour meetup Qualité des Applications MobilesFerpection
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
Choisir sa solution ALM: séminaire
Choisir sa solution ALM: séminaireChoisir sa solution ALM: séminaire
Choisir sa solution ALM: séminaireEnalean
 
Enib cours c.a.i. web - séance #6 : autour de la webapp
Enib   cours c.a.i. web - séance #6 : autour de la webappEnib   cours c.a.i. web - séance #6 : autour de la webapp
Enib cours c.a.i. web - séance #6 : autour de la webappHoracio Gonzalez
 

Similaire à Outils et pratiques : tester une application web moderne (20)

Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
Le rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingLe rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testing
 
PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en python
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterComment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiques
 
Les tests utilisateurs pour les petits budgets
Les tests utilisateurs pour les petits budgetsLes tests utilisateurs pour les petits budgets
Les tests utilisateurs pour les petits budgets
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel
 
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - Introduction
 
20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all
 
Flex Unit Testing
Flex Unit TestingFlex Unit Testing
Flex Unit Testing
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agile
 
Ferpection pour meetup Qualité des Applications Mobiles
Ferpection pour meetup Qualité des Applications MobilesFerpection pour meetup Qualité des Applications Mobiles
Ferpection pour meetup Qualité des Applications Mobiles
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Choisir sa solution ALM: séminaire
Choisir sa solution ALM: séminaireChoisir sa solution ALM: séminaire
Choisir sa solution ALM: séminaire
 
Enib cours c.a.i. web - séance #6 : autour de la webapp
Enib   cours c.a.i. web - séance #6 : autour de la webappEnib   cours c.a.i. web - séance #6 : autour de la webapp
Enib cours c.a.i. web - séance #6 : autour de la webapp
 

Outils et pratiques : tester une application web moderne

  • 1. 1 / 33 Outils et Pratiques : Tester une application web moderne par Jean-François LÉPINE
  • 2. En face de vous ● Jean-François LÉPINE ● Consultant technique chez Alter Way ● @Halleck45 ● http://blog.lepine.pro
  • 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. É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. É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. 8 / 33 Testabilité & Qualité
  • 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. 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. Tests fonctionnels ● Tests unitaires / composants ● le composant a t-il des défaillances ? ● Tests unitaires
  • 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. 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. 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. 15 / 33 Tests fonctionnels
  • 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. 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. Comment vérifier les tests ? 2/2
  • 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. 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
  • 22. 23 / 33 Tests extra-fonctionnels
  • 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é ● ...
  • 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. Tests de charge / stress ● Contrôlent la résistance de votre application ● Tsung ● Funkload ● Gatling...
  • 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. Tests de singe ● Réalisent des actions illogiques pour tenter de provoquer des erreurs ● Gremlins.js https://github.com/marmelab/gremlins.js
  • 30. Conclusion ● Tester = rechercher les états indésirables ● Il faut bien choisir le niveau de test adapté : ● Coûts ● Besoin ● Capacité
  • 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 !