SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Valider par des tests 
Christophe Villeneuve 
@hellosct1
Qui... est Christophe Villeneuve ? 
<< 
afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – phptour – forumphp – solutionlinux – demoinparis – ici et maintenant – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – neuros - elephpant
Les points abordés aujourd'hui : 
● Le Pourquoi du comment... 
● Les TODO (tests) à connaître 
● Les Tests en mode continu
Expérience sur... Les tests 
Citations 
✔ « Des fois cela plante » 
✔ « On a testé, … 
il y a 3 mois lors de la dernière livraison... 
Pas eu le temps... »
L'importance des tests VS les préjugés 
Pourquoi c'est utile ? Et L'intérêt... 
✔ Le code peut casser 
✔ Changer le nom d'un fichier 
✔ Pas le temps d'en faire 
✔ C'est long manuellement 
✔ Coûte du temps au début 
✔ En fait gain après 
✔ Nécessite de la rigueur et 
de la constante
Les différents types de tests 
Tests Unitaires 
● Module / classe / méthode 
Tests fonctionnels 
● l'interface utilisateur testée par le client 
Tests intégrations 
● Tester la navigation, et l'interface utilisateur 
Tests Automatisés 
Tests de charge / Performance 
Tests d'ergonomie 
Tests de sécurité 
UUnnee iiddééee ??
Tests : approche 'classique' 
Tests IHM 
Tests Acceptation 
Tests d'intégration 
Tests unitaires 
ON OUBLIE 
le slide 
ON OUBLIE 
le slide
Tests de Mike Cohn : approche 'agile' 
Tests 
Manuels 
Tests automatisés 
Tests GUI 
Tests API 
Tests d'intégration 
Tests des composants 
Tests unitaires 
IIMMPPOORRTTAANNTT 
Orientations 
Business 
Développons nous le bon 
système ? 
Technique 
Développons nous le 
système correctement ?
Les tests à connaître
Tests unitaires... 
En pratique
Tests unitaires 
Déroulement Quoi tester ? 
✔ Ecrire le code comme 
des spécifications 
✔ Ecrire un test qui échoue 
✔ Ecrire un test qui est bon 
✔ Un test doit tester la plus 
petite portion possible du 
code 
✔ Eviter les redondance 
✔ Un module 
✔ Une classe 
✔ Une méthode 
✔ Tester 
✔ Ce qui est important 
✔ Le risque de casser 
✔ Les parties que vous 
touchez souvent
Tests unitaires : quelques Frameworks 
✔ jUnit 
✔ SimpleTest / PHPUnit / 
Atoum 
✔ PyUnit 
✔ More 
✔ ...
Tests fonctionnels... 
En pratique
Tests Fonctionnels 
Déroulement Quoi tester ? 
✔ Prépare outil & API 
✔ On le partage 
✔ On récupère le résultat 
✔ Nous... Rien 
✔ C'est le client 
✔ Tester 
✔ Si les fonctionnalités 
demandées sont bien 
supportées 
(ex : port)
Tests Fonctionnels : utilisation 
Outils 
✔ Selenium 
✔ Behat 
✔ Fitness 
✔ Cucumber 
✔ GreenPepper
Tests Intégrations... 
En pratique
Tests Intégrations 
Déroulement Pourquoi ? 
✔ 1 Navigation de la prod. 
✔ Générer le script pour 
repérer les modifications 
de comportement 
✔ 1 exécution sur le 
nouveau serveur 
✔ Simulation d'un être 
humain 
✔ Détection des problèmes 
éventuels 
✔ Tester 
✔ Le comportement de 
navigation
Tests Intégrations : utilisation 
Outils 
✔ Selenium 
✔ Sikuli 
✔ Hudson 
✔ Jenkins 
✔ PhpUnderControl 
✔ ...
Tests Automatisés... 
En pratique
Tests Automatisés 
Déroulement Pourquoi ? 
✔ C'est systématique 
✔ C'est répétitif 
✔ Automatisable 
Jouer par automate 
✔ Association des tests 
✔ Tester 
✔ Tests unitaires 
✔ Tests fonctionnels 
✔ Tests intégrations
Tests Automatisés : utilisation 
Outils 
✔ Selenium 
✔ Behat 
✔ ...
Tests de charge... 
En pratique
Tests de charge 
Déroulement Pourquoi ? 
✔ Préparer un scénario 
✔ Saisir le nombre de 
connexion simultané 
✔ Voir le résultat 
✔ Générer une charge 
réaliste avec 1 scénario 
✔ Superviser un test de 
charge 
✔ Analyser les résultats 
✔ Tester 
✔ Pages à 'risques'
Tests de charge : utilisation 
Outils 
✔ Java EE 
✔ Tsung 
✔ jMeter
Tests d'ergonomie... 
En pratique
Tests d'ergonomie 
Déroulement Pourquoi ? 
✔ 1 lieu neutre 
✔ Trouver des personnes 
tiers (béta testeurs) 
✔ Un observateur 
✔ Noté 
✔ Résultat 
✔ Interaction 
Homme/Machine 
✔ Critères d'utilité, 
d'utilisabilité, de 
satisfaction 
✔ Tester 
✔ La navigation 
✔ La conception 
✔ Le visuel
Tests d'ergonomie : utilisation 
Outils 
✔ Aucun... !!!! ???? !!!!
Tests de sécurité... 
En pratique
Tests de sécurité 
Déroulement Pourquoi ? 
✔ Configuration API 
✔ Exécution 
✔ Voir le résultat 
✔ Un rapport TOP 10 de 
Owasp 
✔ Tester 
✔ La totalité du projet
Tests de sécurité : utilisation 
Outils 
✔ ...
Les tests en continu
Le début du commencement 
● Suivre une procédure claire 
Quelques 
règles 
● Faire un essai sur un serveur de tests/preprods 
● Pas de production du 1er coup 
● Prévoir des versions identiques 
● OS / Serveur / Logiciels... 
● Contrôler la validation des sources 
● tar.gz + clef 
Quelques 
règles
Automatiser les taches : déroulement 
Développements 
Serveur Intégration 
Tests & validation 
Production + tag 
Déploiement 
Déploiement 
Tests serveur prod. 
Serveur 
Préprod 
Serveur 
Préprod 
Serveur 
Test client 
Serveur 
Test client 
On teste
Automatiser les tâches 
Outils 
● Shell-scripts 
● Pear 
● Ant 
● Phing 
● Weploy 
● Behat
Principe de fonctionnement 
✔ Checkout du projet 
✔ Lancement des tests (ex : tests unitaires) 
✔ Création d'une archive 
✔ Transfert et déploiement en ssh / ftp 
✔ Possible Rollback 
Valider l'étape
En résumé... Les tests c'est 
● Proche de l'intégration continue 
● DevOps 
● Qualité 
● et... 
Les tests passent (après) par la fête
Merci 
@hellosct1 
http://blog.hello-design.fr 
http://www.hello-design.fr

Contenu connexe

Tendances

Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverte
Eric Mignot
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
laurent_opnworks
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Emmanuel Hugonnet
 

Tendances (20)

Benchmark et comparaison de performance en JavaScript
Benchmark et comparaison de performance en JavaScriptBenchmark et comparaison de performance en JavaScript
Benchmark et comparaison de performance en JavaScript
 
Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverte
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
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
 
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
 
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...
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec Jenkins
 
ça marchait pourtant en dev
ça marchait pourtant en devça marchait pourtant en dev
ça marchait pourtant en dev
 
Allons plus loin avec Selenium
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec Selenium
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tous
 
Université du soir - TDD
Université du soir - TDDUniversité du soir - TDD
Université du soir - TDD
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
 
Paris js#35 - Stratégie de tests d'une application MVC
Paris js#35 - Stratégie de tests d'une application MVCParis js#35 - Stratégie de tests d'une application MVC
Paris js#35 - Stratégie de tests d'une application MVC
 
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
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers
 

En vedette

Devoxx France 2014 - Tests de performance en continu
Devoxx France 2014 - Tests de performance en continuDevoxx France 2014 - Tests de performance en continu
Devoxx France 2014 - Tests de performance en continu
Publicis Sapient Engineering
 
Despidos colectivos. Sigue la saga Unipost. Notas a la sentencia de la AN de ...
Despidos colectivos. Sigue la saga Unipost. Notas a la sentencia de la AN de ...Despidos colectivos. Sigue la saga Unipost. Notas a la sentencia de la AN de ...
Despidos colectivos. Sigue la saga Unipost. Notas a la sentencia de la AN de ...
Universidad Autónoma de Barcelona
 
Lo sabe o no lo sabe
Lo sabe o no lo sabeLo sabe o no lo sabe
Lo sabe o no lo sabe
JOSÉ TOMÁS
 
Fruhling mb
Fruhling mbFruhling mb
Fruhling mb
canhthep
 
Didier super-2010-2011-dossierdepresse ld
Didier super-2010-2011-dossierdepresse ldDidier super-2010-2011-dossierdepresse ld
Didier super-2010-2011-dossierdepresse ld
WE DO MUSIC
 
Análisis de los contenidos laborales del Real Decreto-Ley 1/2015, de sus “otr...
Análisis de los contenidos laborales del Real Decreto-Ley 1/2015, de sus “otr...Análisis de los contenidos laborales del Real Decreto-Ley 1/2015, de sus “otr...
Análisis de los contenidos laborales del Real Decreto-Ley 1/2015, de sus “otr...
Universidad Autónoma de Barcelona
 

En vedette (20)

Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
Devoxx France 2014 - Tests de performance en continu
Devoxx France 2014 - Tests de performance en continuDevoxx France 2014 - Tests de performance en continu
Devoxx France 2014 - Tests de performance en continu
 
BDD avec Behat, PhpSpec et Symfony2
BDD avec Behat, PhpSpec et Symfony2BDD avec Behat, PhpSpec et Symfony2
BDD avec Behat, PhpSpec et Symfony2
 
XebiCon'16 : Altares et Thiga - La finance à l’ère de la Fintech et du digital.
XebiCon'16 : Altares et Thiga - La finance à l’ère de la Fintech et du digital.XebiCon'16 : Altares et Thiga - La finance à l’ère de la Fintech et du digital.
XebiCon'16 : Altares et Thiga - La finance à l’ère de la Fintech et du digital.
 
XebiCon'16 : Cellenza - Votre miroir interactif connecté avec Raspberry Pi 2,...
XebiCon'16 : Cellenza - Votre miroir interactif connecté avec Raspberry Pi 2,...XebiCon'16 : Cellenza - Votre miroir interactif connecté avec Raspberry Pi 2,...
XebiCon'16 : Cellenza - Votre miroir interactif connecté avec Raspberry Pi 2,...
 
XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...
XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...
XebiCon'16 : PMU et le Big Data - d'une approche mono projet à une démarche e...
 
XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !
XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !
XebiCon'16 : Orange - Transformation DevOps, les conteneurs sont vos alliés !
 
Vigie web recrutement 2.0 2010
Vigie web recrutement 2.0 2010Vigie web recrutement 2.0 2010
Vigie web recrutement 2.0 2010
 
Despidos colectivos. Sigue la saga Unipost. Notas a la sentencia de la AN de ...
Despidos colectivos. Sigue la saga Unipost. Notas a la sentencia de la AN de ...Despidos colectivos. Sigue la saga Unipost. Notas a la sentencia de la AN de ...
Despidos colectivos. Sigue la saga Unipost. Notas a la sentencia de la AN de ...
 
Lo sabe o no lo sabe
Lo sabe o no lo sabeLo sabe o no lo sabe
Lo sabe o no lo sabe
 
A la découverte des wiki !
A la découverte des wiki !A la découverte des wiki !
A la découverte des wiki !
 
Habilidades en siglo xxi
Habilidades en siglo xxiHabilidades en siglo xxi
Habilidades en siglo xxi
 
Auditeur statique PHP
Auditeur statique PHPAuditeur statique PHP
Auditeur statique PHP
 
Fruhling mb
Fruhling mbFruhling mb
Fruhling mb
 
Paul Luis Williams
Paul Luis WilliamsPaul Luis Williams
Paul Luis Williams
 
Call Centers 2010
Call Centers 2010Call Centers 2010
Call Centers 2010
 
Didier super-2010-2011-dossierdepresse ld
Didier super-2010-2011-dossierdepresse ldDidier super-2010-2011-dossierdepresse ld
Didier super-2010-2011-dossierdepresse ld
 
Resultados del taller sobre internet segura del VI Encuentro de Conecta Joven
Resultados del taller sobre internet segura del VI Encuentro de Conecta JovenResultados del taller sobre internet segura del VI Encuentro de Conecta Joven
Resultados del taller sobre internet segura del VI Encuentro de Conecta Joven
 
Centro de lima
Centro de limaCentro de lima
Centro de lima
 
Análisis de los contenidos laborales del Real Decreto-Ley 1/2015, de sus “otr...
Análisis de los contenidos laborales del Real Decreto-Ley 1/2015, de sus “otr...Análisis de los contenidos laborales del Real Decreto-Ley 1/2015, de sus “otr...
Análisis de los contenidos laborales del Real Decreto-Ley 1/2015, de sus “otr...
 

Similaire à Valider par des tests - Blend

TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
French Scrum User Group
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitaires
CocoaHeads France
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
Cyrille Grandval
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
Christophe HERAL
 
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
Horacio Gonzalez
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
ALTER WAY
 

Similaire à Valider par des tests - Blend (20)

Les tests de securite devops
Les tests de securite devopsLes tests de securite devops
Les tests de securite devops
 
AT2010 Principes Integration Continue
AT2010 Principes Integration ContinueAT2010 Principes Integration Continue
AT2010 Principes Integration Continue
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitaires
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
Et si nos pratiques de test étaient le frein à notre agilité ?
Et si nos pratiques de test étaient le frein à notre agilité ?Et si nos pratiques de test étaient le frein à notre agilité ?
Et si nos pratiques de test étaient le frein à notre agilité ?
 
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
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - Introduction
 
Accélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleAccélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exemple
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
 
Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderne
 
Flex Unit Testing
Flex Unit TestingFlex Unit Testing
Flex Unit Testing
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests Logiciels
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 

Plus de Christophe Villeneuve

Plus de Christophe Villeneuve (20)

MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans Firefox
 
pister les pisteurs
pister les pisteurspister les pisteurs
pister les pisteurs
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le web
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Mariadb une base de données NewSQL
Mariadb une base de données NewSQLMariadb une base de données NewSQL
Mariadb une base de données NewSQL
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnante
 
Pentest bus pirate
Pentest bus piratePentest bus pirate
Pentest bus pirate
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le design
 
Foxfooding semaine 3
Foxfooding semaine 3Foxfooding semaine 3
Foxfooding semaine 3
 
Foxfooding
FoxfoodingFoxfooding
Foxfooding
 
Accessibilite web wcag rgaa
Accessibilite web wcag rgaaAccessibilite web wcag rgaa
Accessibilite web wcag rgaa
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activites
 
Monitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftMonitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et Microsoft
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
 
Send large files with addons
Send large files with addonsSend large files with addons
Send large files with addons
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratique
 
Donnez la voix aux machines
Donnez la voix aux machinesDonnez la voix aux machines
Donnez la voix aux machines
 

Valider par des tests - Blend

  • 1. Valider par des tests Christophe Villeneuve @hellosct1
  • 2. Qui... est Christophe Villeneuve ? << afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – phptour – forumphp – solutionlinux – demoinparis – ici et maintenant – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – neuros - elephpant
  • 3. Les points abordés aujourd'hui : ● Le Pourquoi du comment... ● Les TODO (tests) à connaître ● Les Tests en mode continu
  • 4. Expérience sur... Les tests Citations ✔ « Des fois cela plante » ✔ « On a testé, … il y a 3 mois lors de la dernière livraison... Pas eu le temps... »
  • 5. L'importance des tests VS les préjugés Pourquoi c'est utile ? Et L'intérêt... ✔ Le code peut casser ✔ Changer le nom d'un fichier ✔ Pas le temps d'en faire ✔ C'est long manuellement ✔ Coûte du temps au début ✔ En fait gain après ✔ Nécessite de la rigueur et de la constante
  • 6. Les différents types de tests Tests Unitaires ● Module / classe / méthode Tests fonctionnels ● l'interface utilisateur testée par le client Tests intégrations ● Tester la navigation, et l'interface utilisateur Tests Automatisés Tests de charge / Performance Tests d'ergonomie Tests de sécurité UUnnee iiddééee ??
  • 7. Tests : approche 'classique' Tests IHM Tests Acceptation Tests d'intégration Tests unitaires ON OUBLIE le slide ON OUBLIE le slide
  • 8. Tests de Mike Cohn : approche 'agile' Tests Manuels Tests automatisés Tests GUI Tests API Tests d'intégration Tests des composants Tests unitaires IIMMPPOORRTTAANNTT Orientations Business Développons nous le bon système ? Technique Développons nous le système correctement ?
  • 9. Les tests à connaître
  • 11. Tests unitaires Déroulement Quoi tester ? ✔ Ecrire le code comme des spécifications ✔ Ecrire un test qui échoue ✔ Ecrire un test qui est bon ✔ Un test doit tester la plus petite portion possible du code ✔ Eviter les redondance ✔ Un module ✔ Une classe ✔ Une méthode ✔ Tester ✔ Ce qui est important ✔ Le risque de casser ✔ Les parties que vous touchez souvent
  • 12. Tests unitaires : quelques Frameworks ✔ jUnit ✔ SimpleTest / PHPUnit / Atoum ✔ PyUnit ✔ More ✔ ...
  • 14. Tests Fonctionnels Déroulement Quoi tester ? ✔ Prépare outil & API ✔ On le partage ✔ On récupère le résultat ✔ Nous... Rien ✔ C'est le client ✔ Tester ✔ Si les fonctionnalités demandées sont bien supportées (ex : port)
  • 15. Tests Fonctionnels : utilisation Outils ✔ Selenium ✔ Behat ✔ Fitness ✔ Cucumber ✔ GreenPepper
  • 17. Tests Intégrations Déroulement Pourquoi ? ✔ 1 Navigation de la prod. ✔ Générer le script pour repérer les modifications de comportement ✔ 1 exécution sur le nouveau serveur ✔ Simulation d'un être humain ✔ Détection des problèmes éventuels ✔ Tester ✔ Le comportement de navigation
  • 18. Tests Intégrations : utilisation Outils ✔ Selenium ✔ Sikuli ✔ Hudson ✔ Jenkins ✔ PhpUnderControl ✔ ...
  • 20. Tests Automatisés Déroulement Pourquoi ? ✔ C'est systématique ✔ C'est répétitif ✔ Automatisable Jouer par automate ✔ Association des tests ✔ Tester ✔ Tests unitaires ✔ Tests fonctionnels ✔ Tests intégrations
  • 21. Tests Automatisés : utilisation Outils ✔ Selenium ✔ Behat ✔ ...
  • 22. Tests de charge... En pratique
  • 23. Tests de charge Déroulement Pourquoi ? ✔ Préparer un scénario ✔ Saisir le nombre de connexion simultané ✔ Voir le résultat ✔ Générer une charge réaliste avec 1 scénario ✔ Superviser un test de charge ✔ Analyser les résultats ✔ Tester ✔ Pages à 'risques'
  • 24. Tests de charge : utilisation Outils ✔ Java EE ✔ Tsung ✔ jMeter
  • 26. Tests d'ergonomie Déroulement Pourquoi ? ✔ 1 lieu neutre ✔ Trouver des personnes tiers (béta testeurs) ✔ Un observateur ✔ Noté ✔ Résultat ✔ Interaction Homme/Machine ✔ Critères d'utilité, d'utilisabilité, de satisfaction ✔ Tester ✔ La navigation ✔ La conception ✔ Le visuel
  • 27. Tests d'ergonomie : utilisation Outils ✔ Aucun... !!!! ???? !!!!
  • 28. Tests de sécurité... En pratique
  • 29. Tests de sécurité Déroulement Pourquoi ? ✔ Configuration API ✔ Exécution ✔ Voir le résultat ✔ Un rapport TOP 10 de Owasp ✔ Tester ✔ La totalité du projet
  • 30. Tests de sécurité : utilisation Outils ✔ ...
  • 31. Les tests en continu
  • 32. Le début du commencement ● Suivre une procédure claire Quelques règles ● Faire un essai sur un serveur de tests/preprods ● Pas de production du 1er coup ● Prévoir des versions identiques ● OS / Serveur / Logiciels... ● Contrôler la validation des sources ● tar.gz + clef Quelques règles
  • 33. Automatiser les taches : déroulement Développements Serveur Intégration Tests & validation Production + tag Déploiement Déploiement Tests serveur prod. Serveur Préprod Serveur Préprod Serveur Test client Serveur Test client On teste
  • 34. Automatiser les tâches Outils ● Shell-scripts ● Pear ● Ant ● Phing ● Weploy ● Behat
  • 35. Principe de fonctionnement ✔ Checkout du projet ✔ Lancement des tests (ex : tests unitaires) ✔ Création d'une archive ✔ Transfert et déploiement en ssh / ftp ✔ Possible Rollback Valider l'étape
  • 36. En résumé... Les tests c'est ● Proche de l'intégration continue ● DevOps ● Qualité ● et... Les tests passent (après) par la fête
  • 37. Merci @hellosct1 http://blog.hello-design.fr http://www.hello-design.fr