Valider par des tests 
Christophe Villeneuve 
@hellosct1
Qui... est Christophe Villeneuve ? 
<< 
afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – p...
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 l...
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'...
Les différents types de tests 
Tests Unitaires 
● Module / classe / méthode 
Tests fonctionnels 
● l'interface utilisateur...
Tests : approche 'classique' 
Tests IHM 
Tests Acceptation 
Tests d'intégration 
Tests unitaires 
ON OUBLIE 
le slide 
ON ...
Tests de Mike Cohn : approche 'agile' 
Tests 
Manuels 
Tests automatisés 
Tests GUI 
Tests API 
Tests d'intégration 
Tests...
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 
✔ Ecr...
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.....
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 modification...
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 
✔...
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és...
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 observate...
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 
O...
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/prepro...
Automatiser les taches : déroulement 
Développements 
Serveur Intégration 
Tests & validation 
Production + tag 
Déploieme...
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 
...
En résumé... Les tests c'est 
● Proche de l'intégration continue 
● DevOps 
● Qualité 
● et... 
Les tests passent (après) ...
Merci 
@hellosct1 
http://blog.hello-design.fr 
http://www.hello-design.fr
Prochain SlideShare
Chargement dans…5
×

Valider par des tests - Blend

887 vues

Publié le

Présentation effectuée au Blend Web Mix 2014 sur "Valider par des tests"

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

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
887
Sur SlideShare
0
Issues des intégrations
0
Intégrations
43
Actions
Partages
0
Téléchargements
9
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Valider par des tests - Blend

  1. 1. Valider par des tests Christophe Villeneuve @hellosct1
  2. 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. 3. Les points abordés aujourd'hui : ● Le Pourquoi du comment... ● Les TODO (tests) à connaître ● Les Tests en mode continu
  4. 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. 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. 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. 7. Tests : approche 'classique' Tests IHM Tests Acceptation Tests d'intégration Tests unitaires ON OUBLIE le slide ON OUBLIE le slide
  8. 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. 9. Les tests à connaître
  10. 10. Tests unitaires... En pratique
  11. 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. 12. Tests unitaires : quelques Frameworks ✔ jUnit ✔ SimpleTest / PHPUnit / Atoum ✔ PyUnit ✔ More ✔ ...
  13. 13. Tests fonctionnels... En pratique
  14. 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. 15. Tests Fonctionnels : utilisation Outils ✔ Selenium ✔ Behat ✔ Fitness ✔ Cucumber ✔ GreenPepper
  16. 16. Tests Intégrations... En pratique
  17. 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. 18. Tests Intégrations : utilisation Outils ✔ Selenium ✔ Sikuli ✔ Hudson ✔ Jenkins ✔ PhpUnderControl ✔ ...
  19. 19. Tests Automatisés... En pratique
  20. 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. 21. Tests Automatisés : utilisation Outils ✔ Selenium ✔ Behat ✔ ...
  22. 22. Tests de charge... En pratique
  23. 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. 24. Tests de charge : utilisation Outils ✔ Java EE ✔ Tsung ✔ jMeter
  25. 25. Tests d'ergonomie... En pratique
  26. 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. 27. Tests d'ergonomie : utilisation Outils ✔ Aucun... !!!! ???? !!!!
  28. 28. Tests de sécurité... En pratique
  29. 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. 30. Tests de sécurité : utilisation Outils ✔ ...
  31. 31. Les tests en continu
  32. 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. 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. 34. Automatiser les tâches Outils ● Shell-scripts ● Pear ● Ant ● Phing ● Weploy ● Behat
  35. 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. 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. 37. Merci @hellosct1 http://blog.hello-design.fr http://www.hello-design.fr

×