Valider par des tests - Blend

890 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
890
Sur SlideShare
0
Issues des intégrations
0
Intégrations
44
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

×