Test unitaire

2 403 vues

Publié le

Il s'agit d'une initiation a l'utilisation des tests unitaires

La formation présentera les éléments suivants :

•Qu’est ce qu’un test ?
•Définition
•Quelques règles
•Avantage et intérêt
•Outil de test
•Cas à tester
•Les résultats
•Test Driven Development
•Mock
•Convention nommage
•Utilisation Junit
•Conclusion


Cette formation est proposée par ISEN Dev, un projet associatif étudiant de l'association Isen Engineering.
Elle est réalisé en 2013 par SAEZ Jonathan

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
2 403
Sur SlideShare
0
Issues des intégrations
0
Intégrations
370
Actions
Partages
0
Téléchargements
42
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Test unitaire

  1. 1. TEST UNITAIRE ISEN Dev’
  2. 2. SOMMAIRE • • • • • • • • • • • • Qu’est ce qu’un test ? Définition Quelques règles Avantage et intérêt Outil de test Cas à tester Les résultats Test Driven Development Mock Convention nommage Utilisation Junit Conclusion 1
  3. 3. QU’EST CE QU’UN TEST ? Un test est un ensemble de cas à tester éventuellement accompagné d'une procédure d'exécution. Il est lié à un objectif. Source : IEE 2
  4. 4. QU’EST CE QU’UN TEST ? Il existe différents niveaux de test : Test unitaire  Test d’intégration  Test de charge  Test fonctionnel  Test sécurité  ….  3
  5. 5. TEST UNITAIRE : DÉFINITION Un test unitaire est une procédure permettant de vérifier le bon fonctionnement d'une partie précise d'un logiciel. Il s’agit d’un code. En POO  on teste au niveau des classes Pour chaque classe on a une classe de test. 4
  6. 6. TEST UNITAIRE : QUELQUES RÈGLES     Doit être isolé : il doit être indépendant N’est pas un test de bout en bout : il agit que sur une portion de code Doit être déterministe : le résultat doit être le même pour les mêmes entrées Est le plus petit et simple possible 5
  7. 7. TEST UNITAIRE : QUELQUES RÈGLES      Ne teste pas d'enchainement d’action Etre lancé le plus souvent possible : intégration continue Etre lancé le plus tôt possible : détection des bug plus rapide Couvrir le plus de code possible Etre lancé a chaque modification 6
  8. 8. TEST UNITAIRE : AVANTAGE ET INTÉRÊT Garantie la non régression  Détection de bug plus facile  Aide a isoler les fonctions  Aide a voir l’avancement d’un projet (TDD)  7
  9. 9. TEST UNITAIRE : OUTIL DE TEST PHP JS SQL JAVA PHPUnit SimpleTest1 JSUnit SQLUnit JUnit 1 : Fonctionnement similaire a JUnit 8
  10. 10. TEST UNITAIRE : CAS A TESTER Lors de l’utilisation de test unitaire on se doit de tester différents cas. Cas en succès : fonctionnement normal  Cas d’erreur : test sur la gestion d’erreur  Cas aux limites : test de la robustesse  9
  11. 11. TEST UNITAIRE : LES RÉSULTATS Un test unitaire peux renvoyer 4 résultats différents : Success : test réussi  Error : erreur inattendue a l’exécution  Failure : au moins une assertion est fausse  Incomplete / skipped ( à éviter)  10
  12. 12. TEST UNITAIRE : TDD On peut piloter un projet par les test (Test Driven Development). On voit l’avancement du projet par l’avancement des test validés. Pour cela on réalise les test avant le code. A ce moment le test échoue, on implémente le code et pour qu’il se valide. Rédaction des tests 1 et 2 Code pour faire valider le test 2 Code pour faire valider le test 1 11
  13. 13. TEST UNITAIRE : MOCK Quelques fois un test a besoin d’un composant pour s’exécuter. Par exemple pour tester le parseur XML il faut du XML et dans l’application le XML provient d’internet. Il est alors utile d’utiliser des bouchons (MOCK) pour isoler le test. De plus un bouchon permet de tester tout les cas (valeur correcte, erroné etc.) 12
  14. 14. TEST UNITAIRE : CONVENTION NOMMAGE Il est recommandé d’utiliser une même convention de nommage pour tout les test unitaire. Par exemple test[nomMethode][cas][resultat/comportementAttendu](); Préfixe souvent imposé 13
  15. 15. TEST UNITAIRE : UTILISATION DE JUNIT Il n'y a pas de limite au nombre de tests au sein de notre classe de test. On écris au moins un test par méthode de la classe testée. Pour désigner une méthode comme un test, il suffit d’utiliser l'annotation @Test (a partir de JUnit4). 14
  16. 16. TEST UNITAIRE : UTILISATION DE JUNIT Au sein des tests on utilise des assertions pour valider ou non un test. Quelques assertions indispensable : Assertion Action assertEquals() Vérifie l’egalité entre deux entités assertNotEquals() Vérifie l’inégalité entre deux entités assertFalse() Vérifie que la valeur fourni en paramètre est fausse assertTrue() Vérifie que la valeur fourni en paramètre est vrai assertNull() Vérifie que la valeur fourni en paramètre est l’objet NULL assertNotNull() Vérifie que la valeur fourni en paramètre n’est pas l’objet NULL 15
  17. 17. TEST UNITAIRE : UTILISATION DE JUNIT Nous allons écrire un classe de test très simple. 1 : import pour les assertions 2 : import de Junit 7 : test 1 portant sur la somme 10 : assertion ok si les deux parties sont égales 14 : test 2 portant sur le début d’une chaine 16 : assertion ok la méthode renvoie la valeur vrai 16
  18. 18. TEST UNITAIRE : CONCLUSION Il est donc fortement conseillé d’utiliser les test unitaire au sein de vos projets : • Pour éviter les régressions • Valider son code • Voir l’avancement d’un projet 17
  19. 19. TEST UNITAIRE Merci a tous ! Présentation réalisé pour ISEN Dev le 28/11/2013 18

×