premier pas avec les tests unitaires

37
Pulling ITSM together Cedric Gatay - [email protected] 1 Tests unitaires Approche du développement piloté par les tests

Upload: cedric-gatay

Post on 28-Jun-2015

417 views

Category:

Documents


0 download

DESCRIPTION

Cours d'introduction aux tests unitaires donné à Polytech'Tours.

TRANSCRIPT

Page 1: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Tests unitairesApproche du développement piloté par les tests

Page 2: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Cedric Gatay

• EPU DI 2008

• Orange

• SRMvision

@Cedric_Gatay

[email protected]

cedric.gatay.fr/+

2

Page 3: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Agenda

• Pourquoi ?

• Quels outils ?

• Comment ?

• Quelques bonnes pratiques

3

Page 4: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 5: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Pourquoi ?

• Le code parfait n’existe pas

• Il est difficile de répondre parfaitement à un besoin

• On cherche à réduire les coûts

Les tests unitaires font partie du quotidien des développeurs

5

Page 6: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 7: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Quels effets ?

• Le code devient

• Explicité

• Organisé

• Assuré

7

Page 8: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 9: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Des tests ? Mais lesquels ?

• Deux grands types de tests

• boîte noire

• boîte blanche

9

Page 10: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 11: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Tests : Black box

• Tests d’acceptation

• vérification du point de vue utilisateur

• également appelés recette utilisateur

• automatisable par des tests d’IHM

• long et lourd à mettre en place

11

Page 12: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 13: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Tests : Black box

• Tests fonctionnel

• vérification d’un pan fonctionnel

• respect du cahier des charges

• assuré par l’équipe qualité

• automatisable par des tests d’IHM

• long et lourd à mettre en place

13

Page 14: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 15: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Tests : White box

• Tests d’intégration

• validation des algorithmes in situ

• utilisation d’éléments externes

• automatisable en écrivant du code

• simple à mettre en place

• potentiellement long à exécuter

15

Page 16: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 17: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Tests : White box

• Tests unitaires

• validation des algorithmes

• limité au développement en cours

• automatisable en écrivant du code

• simple à mettre en place

• extrêmement rapide à exécuter

17

Page 18: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 19: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Comment faire ?

• Test Black box

• réalisation manuelle

• outils de simulation dans l’IHM

• entrées et sorties vérifiées

19

Page 20: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Comment faire ?

• Test White box

• réalisation automatique

• framework d’écritures de tests

• on produit du code pour tester le code

20

Page 21: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Test

Fail

Code

PassRefactor

Page 22: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

JUnit

• Test White box

• Créé par Kent Beck et Erich Gamma

• réalisation automatique

• vérification sur des postulats simples

• énormément utilisé dans l’industrie

22

Page 23: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 24: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

JUnit, exemple

Est ce que la moyenne de 5 et 10 retourne 7,5 ?

24

Page 25: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 26: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 27: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 28: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 29: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 30: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 31: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 32: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 33: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 34: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 35: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

Page 36: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

JUnit

• La moyenne d'aucune note doit retourner -1

• Il doit être impossible d'ajouter une note négative!

• Il doit être impossible d'ajouter une note supérieure à 20!

• Il doit être possible d'ajouter 16,5

28

Page 37: Premier pas avec les tests unitaires

Pulling ITSM together Cedric Gatay - [email protected]

JUnit

• Le calcul de moyenne sur aucune note doit lever une PasDeNoteException !

• L’ajout d’une note négative doit lever une NoteNegativeException !

29