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 ?
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)
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
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
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
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
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