SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
TEST UNITAIRE
ISEN Dev’
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
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
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
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
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
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
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
TEST UNITAIRE : OUTIL DE TEST

PHP

JS

SQL

JAVA

PHPUnit
SimpleTest1

JSUnit

SQLUnit

JUnit

1 : Fonctionnement similaire a JUnit

8
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
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
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
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
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
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
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
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
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
TEST UNITAIRE
Merci a tous !

Présentation réalisé pour ISEN Dev le 28/11/2013

18

Weitere ähnliche Inhalte

Was ist angesagt?

Understanding Unit Testing
Understanding Unit TestingUnderstanding Unit Testing
Understanding Unit Testingikhwanhayat
 
Automatisation des tests: le mythe du ROI
Automatisation des tests: le mythe du ROIAutomatisation des tests: le mythe du ROI
Automatisation des tests: le mythe du ROIGilles Mantel
 
Testing and Mocking Object - The Art of Mocking.
Testing and Mocking Object - The Art of Mocking.Testing and Mocking Object - The Art of Mocking.
Testing and Mocking Object - The Art of Mocking.Deepak Singhvi
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit TestingJoe Tremblay
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootDNG Consulting
 
#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQubeVincent Biret
 
An introduction to unit testing
An introduction to unit testingAn introduction to unit testing
An introduction to unit testingAdam Stephensen
 
Types de tests vs techniques de tests
Types de tests vs techniques de testsTypes de tests vs techniques de tests
Types de tests vs techniques de testsSabrine MASTOURA
 
Métriques de qualité logicielle
Métriques de qualité logicielleMétriques de qualité logicielle
Métriques de qualité logicielleYouness Boukouchi
 
Méthodologie de tests et qualité
Méthodologie de tests et qualitéMéthodologie de tests et qualité
Méthodologie de tests et qualitéSpikeeLabs
 
Unit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesUnit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesDerek Smith
 
Unit testing best practices
Unit testing best practicesUnit testing best practices
Unit testing best practicesnickokiss
 

Was ist angesagt? (20)

Unit Test
Unit TestUnit Test
Unit Test
 
Understanding Unit Testing
Understanding Unit TestingUnderstanding Unit Testing
Understanding Unit Testing
 
Automatisation des tests: le mythe du ROI
Automatisation des tests: le mythe du ROIAutomatisation des tests: le mythe du ROI
Automatisation des tests: le mythe du ROI
 
Workshop unit test
Workshop   unit testWorkshop   unit test
Workshop unit test
 
Testing and Mocking Object - The Art of Mocking.
Testing and Mocking Object - The Art of Mocking.Testing and Mocking Object - The Art of Mocking.
Testing and Mocking Object - The Art of Mocking.
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit Testing
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube
 
An introduction to unit testing
An introduction to unit testingAn introduction to unit testing
An introduction to unit testing
 
Types de tests vs techniques de tests
Types de tests vs techniques de testsTypes de tests vs techniques de tests
Types de tests vs techniques de tests
 
Métriques de qualité logicielle
Métriques de qualité logicielleMétriques de qualité logicielle
Métriques de qualité logicielle
 
Unit Testing (C#)
Unit Testing (C#)Unit Testing (C#)
Unit Testing (C#)
 
Junit
JunitJunit
Junit
 
Unit testing with JUnit
Unit testing with JUnitUnit testing with JUnit
Unit testing with JUnit
 
Méthodologie de tests et qualité
Méthodologie de tests et qualitéMéthodologie de tests et qualité
Méthodologie de tests et qualité
 
Unit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesUnit Testing Concepts and Best Practices
Unit Testing Concepts and Best Practices
 
Unit testing best practices
Unit testing best practicesUnit testing best practices
Unit testing best practices
 
Les tests exploratoires
Les tests exploratoiresLes tests exploratoires
Les tests exploratoires
 
TDD Best Practices
TDD Best PracticesTDD Best Practices
TDD Best Practices
 

Ähnlich wie Test unitaire

testUnitaire (1).pptx
testUnitaire (1).pptxtestUnitaire (1).pptx
testUnitaire (1).pptxManalAg
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techMarine Karam
 
TDD avec ou sans mock
TDD avec ou sans mockTDD avec ou sans mock
TDD avec ou sans mockYannick Ameur
 
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 AgileDenis Voituron
 
Les Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des TestsLes Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des TestsLy-Jia Goldstein
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciellauraty3204
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaHeads 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
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitairesPascal Laurin
 

Ähnlich wie Test unitaire (20)

Bbl sur les tests
Bbl sur les testsBbl sur les tests
Bbl sur les tests
 
testUnitaire (1).pptx
testUnitaire (1).pptxtestUnitaire (1).pptx
testUnitaire (1).pptx
 
J Unit
J UnitJ Unit
J Unit
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Flex Unit Testing
Flex Unit TestingFlex Unit Testing
Flex Unit Testing
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue tech
 
Test logiciel
Test logicielTest logiciel
Test logiciel
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
Les tests-unitaires-en-java
Les tests-unitaires-en-javaLes tests-unitaires-en-java
Les tests-unitaires-en-java
 
TDD avec ou sans mock
TDD avec ou sans mockTDD avec ou sans mock
TDD avec ou sans mock
 
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
 
Les Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des TestsLes Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des Tests
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel
 
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...
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Ingénierie du test 0.9
Ingénierie du test 0.9Ingénierie du test 0.9
Ingénierie du test 0.9
 
7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 

Test unitaire

  • 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. 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. 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. 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. 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. 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. 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. TEST UNITAIRE : OUTIL DE TEST PHP JS SQL JAVA PHPUnit SimpleTest1 JSUnit SQLUnit JUnit 1 : Fonctionnement similaire a JUnit 8
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. TEST UNITAIRE Merci a tous ! Présentation réalisé pour ISEN Dev le 28/11/2013 18