Vous avez entendu parler des tests unitaires, vous voulez en faire, mais il vous manque le comment ?
OK pour faire des tests Unitaires, mais sans pondre des milliers de lignes de codes, sans réinstaller autre chose ?
Votre Visual Studio a la réponse, Alexandre et Jade vous montreront comment tirer parti de MsTest, cet Outil intégré à Visual Studio.
Au programme, ils vous feront un court rappel sur les TU, une présentation de l’interface, puis celle du catalogue de possibilités de l’outil, des démonstrations en live, son positionnement par rapport à la concurrence, et les évolutions futures de l’outil.
MongoDB : la base NoSQL qui réinvente la gestion de données
Test unitaires visual studio
1. Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
1
2. Périmètre de la présentation
⦿ Visual Studio 2010 Professional
⦿ Connaissance des Tests Unitaires
⦿ Concentration sur l’Outil
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
2
3. Les présentateurs
⦿ Alexandre MEYER
⦿ Concepteur-Développeur .Net
⦿ alexandre.meyer@soat.fr
⦿ Jade DORVIL
⦿ Développeur .Net
⦿ Jade.dorvil@soat.fr
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
3
4. Plan de la présentation
I. Rappel sur les Tests unitaires
II. Présentation de MS Test
III. MsTest face à la Concurrence
IV. Les plus de la licence Pro/Ultimate
V. Les apports du passage à Visual Studio 2012
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
4
5. Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
5
6. I. Rappel sur les tests unitaires
1) Pourquoi tester?
2) Qu’est ce qu’un test unitaire ?
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
6
7. 1. Pourquoi tester?
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
7
8. 1. Pourquoi tester?
⦿ Raisons liés au Projet :
⦿ Politique
⦿ Risques de pertes Financières
⦿ Criticité
⦿ Produit Grand Public
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
8
9. 1. Pourquoi tester?
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
9
10. 1. Pourquoi tester?
⦿ Pour l’équipe :
⦿ Non-régression entre les commit : IC
⦿ Confiance améliorée entre les développeurs
⦿ Maintenabilité
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
10
11. 1. Pourquoi tester?
11
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
12. 1. Pourquoi tester?
⦿ Pour vous-mêmes :
⦿ Valider couche par couche
une architecture complexe
⦿ Faciliter le débogage
⦿ Connaître les performances
⦿Objectifs atteints ou non ?
⦿Amélioration de la
performance de manière
unitaire
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
12
13. I. Rappel sur les tests unitaires
1. Pourquoi tester?
2. Qu’est-ce qu’un test unitaire ?
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
13
14. 2. Qu’est ce qu’un test unitaire ?
⦿ Définition :
« le test unitaire est un procédé permettant de s'assurer
du fonctionnement correct d'une partie déterminée
d'un logiciel ou d'une portion d'un programme (appelée
« unité » ou « module »). »
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
14
15. 2. Qu’est ce qu’un test unitaire ?
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t,Diffusion Interdite
15
16. 2. Qu’est ce qu’un test unitaire ?
⦿ Ses caractéristiques :
⦿ Taux de couverture
⦿ Réutilisation
⦿ Atomicité
⦿ Contexte(s) de
départ/d’arrivée
⦿ Synchrone/Asynchrone
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
16
17. 2. Qu’est ce qu’un test unitaire ?
⦿ Son exécution:
⦿ Réussite
⦿ Temps d’exécution
⦿ Contexte d’exécution
⦿ Environnement de test
⦿ MTA/STA
⦿ Mono-Cœur/Multi-Cœurs
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
17
18. Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
18
19. Plan de la présentation
I. Rappel sur les Tests unitaires
II. Présentation de MS Test
III. MsTest face à la Concurrence
IV. Les plus de la licence Pro/Ultimate
V. Les apports du passage à Visual Studio 2012
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
19
20. Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
20
21. II. Présentation de MsTest
1. Historique
2. Fonctionnement de l’outil
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
21
22. 1. Son histoire
2010 2012
Version Evolutions
2005 améliorée notables :
Arrivé de de MsTest - Isolation du
Années 2000 MsTest (VS code
2005 Team
Constat : Trop System) - Méthodes
de code annonymes
1998
Infrastructure
xUnit (eXtreme
Programming)
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
22
23. 1. Son histoire
Concept de Équivalent VS 2005 Description
l'infrastructure xUnit (voir les attributs ci-
dessous)
Test TestMethod Ce sont vos tests. Fournit la logique pour vérifier que le
résultat est bien celui prévu et vous informe si le résultat
n'est pas atteint. Imaginez qu'il s'agit de votre
« méthode ».
Contexte du test TestClass Regroupement logique d'un à plusieurs tests. Imaginez
(Fixture) qu'il s'agit de votre « classe ».
Suite de tests Test List ** Regroupement logique d'un à plusieurs contextes de test.
Imaginez qu'il s'agit de votre « bibliothèque de classes ».
Remarque : Cette liste n'a pas besoin d'attribut.
Testeur Infrastructure de GUI/Application de console chargée de découvrir,
tests unitaires VS d'exécuter et de présenter les résultats des tests. Dans
2005 VSTS cet article, Visual Studio 2005 Team System servira de
testeur.
23
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
24. II. Présentation de MsTest
1. Son Histoire
2. Fonctionnement de l’outil
a. L’interface Utilisateur
b. Création des Tests Unitaires
c. Spécificités de l’Outil
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
24
25. a. L’interface Utilisateur
⦿ Les vues
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
25
26. Les vues
⦿ Test View
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
26
27. Les vues
⦿ Test List Editor
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
27
28. Les vues
⦿ Test Results
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
28
29. Les vues
⦿ Test Run
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
29
30. a. L’interface Utilisateur
⦿ L’anatomie d’un Test Unitaire
⦿ Microsoft.VisualStudio.TestTools.UnitTesting
⦿ TestClassAttribute
⦿ TestMethodAttribute
⦿ TestContext
⦿ Et autres attributs de test
⦿ [ClassInitialize()]
⦿ [ClassCleanUp()]
⦿ [TestInitialize()]
⦿ [TestCleanUp()]
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
30
31. a. L’interface Utilisateur
⦿ Les actions possibles sur les Tests
⦿ Test en Release
⦿ Test en Debug
⦿ Relance de Test sur des Assembly déjà déployés.
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
31
32. a. L’interface Utilisateur
⦿ Gestion des Tests
⦿ Listes de Tests
⦿ Séquences de Test ordonnées
⦿ Catégories
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
32
33. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
33
Document Propriété de So@t, Diffusion Interdite
34. a. L’interface Utilisateur
⦿ La configuration des environnements de Test
⦿ Déploiement
⦿ Timeout au niveau solution
⦿ Réglage des types d’Host
⦿ Lancement des scripts
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
34
35. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
35
Document Propriété de So@t, Diffusion Interdite
36. II. Présentation de MsTest
1. Son Histoire
2. Fonctionnement de l’outil
a. L’interface Utilisateur
b. Création des Tests Unitaires
c. Spécificités de l’Outil
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
36
37. b. Création des Tests Unitaires
Débit/Crédit sur compte Bancaire
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
37
38. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
38
Document Propriété de So@t, Diffusion Interdite
39. II. Présentation de MsTest
1. Son Histoire
2. Fonctionnement de l’outil
a. L’interface Utilisateur
b. Création des Tests Unitaires
c. Spécificités de l’Outil
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
39
40. c. Spécificités de L’Outil
⦿ Les tests introspectifs
⦿ Multi-Cœurs
⦿ Gestion Du MTA
⦿ DataDriven Tests
⦿ Les génériques
⦿ Tests pour Le Web
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
40
41. Les tests introspectifs
⦿ Besoin de tester des méthodes privées ?
⦿ Décapsulation => Accessor
⦿ Pas de changement du code métier
⦿ Accès autorisé à toute la classe.
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
41
42. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
42
Document Propriété de So@t, Diffusion Interdite
43. c. Spécificités de L’Outil
⦿ Les tests introspectifs
⦿ Multi-Cœurs
⦿ Gestion Du MTA
⦿ DataDriven Tests
⦿ Les generics
⦿ Tests pour Le Web
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
43
44. Multi-Cœurs
⦿ Avant
⦿ Après
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
44
45. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
45
Document Propriété de So@t, Diffusion Interdite
46. c. Spécificités de L’Outil
⦿ Les tests introspectifs
⦿ Multi-Cœurs
⦿ Gestion Du MTA
⦿ DataDriven Tests
⦿ Les generics
⦿ Tests pour Le Web
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
46
47. Gestion du MTA
Thread
Synchronisation
Appel Client
Processus
Appartenance
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
47
48. Gestion du MTA
⦿ MTA = Multi-Threaded Appartment
⦿ WaitHandle.WaitAll(WaitHandle[])
⦿ Exemple : Plusieurs débiteurs et créditeurs
sur un seul compte.
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
48
49. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
49
Document Propriété de So@t, Diffusion Interdite
50. c. Spécificités de L’Outil
⦿ Les tests introspectifs
⦿ Multi-Cœurs
⦿ Gestion Du MTA
⦿ DataDriven Tests
⦿ Les generics
⦿ Tests pour Le Web
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
50
51. DataDriven Tests
⦿ DDT = DataDriven Tests
⦿ Faire un test du code métier sur plusieurs
paramètres différents
⦿ Attacher une datasource : CSV, XML , DB
⦿ Parcours de celle-ci ligne après ligne
⦿ Exemple d’une calculatrice avec un CSV
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
51
52. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
52
Document Propriété de So@t, Diffusion Interdite
53. c. Spécificités de L’Outil
⦿ Les tests introspectifs
⦿ Multi-Cœurs
⦿ Gestion Du MTA
⦿ DataDriven Tests
⦿ Les generics
⦿ Tests pour Le Web
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
53
54. c. Les génériques
⦿ Tests unitaires pour des méthodes
génériques
⦿ Tests unitaires pour des méthodes avec
contraintes de type
54
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
55. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
55
Document Propriété de So@t, Diffusion Interdite
56. c. Spécificités de L’Outil
⦿ Les tests introspectifs
⦿ Multi-Cœurs
⦿ Gestion Du MTA
⦿ DataDriven Tests
⦿ Les generics
⦿ Tests pour Le Web
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
56
57. Tests pour Le Web
⦿ MVC
⦿ [Host Type ()]
⦿ [AspNetDevelopmentServerHost()]
⦿ [UrlToTest()]
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
57
Document Propriété de So@t, Diffusion Interdite
58. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
58
Document Propriété de So@t, Diffusion Interdite
59. Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
59
60. Plan de la présentation
I. Rappel sur les Tests unitaires
II. Présentation de MS Test
III. MsTest face à la Concurrence
IV. Les plus de la licence Pro/Ultimate
V. Les apports du passage à Visual Studio 2012
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
60
61. Xunit.Net
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
61
62. III. Ms Test face à la concurrence
⦿ Ses avantages Face à Nunit
⦿ Complètement multithread, et Multi-Cœurs
⦿ Génération automatique des skeletons
⦿ Maîtrise sur Trois niveaux du Contexte(Vs Xunit)
⦿ Les tests introspectifs
⦿ Les Listes ordonnées de Test.
⦿ Supporte le MTA
⦿ Timeout au niveau Solution
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
62
63. III. Ms Test face à la concurrence
⦿ Ses Inconvénients
⦿ Coût temporel de démarrage d’une session de
test
⦿ Pour le DataDriven Test, un CSV au minimum
⦿ Pas D’assertion sur la présence de fichiers et
répertoires
⦿ Intégration continue un peu moins spontanée
⦿ Gallio
⦿ Visual Studio Agents 2010
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
63
64. III. Ms Test face à la concurrence
⦿ Ses Limites
⦿ Pas d’extensibilité sur Les assertions
⦿ Pas d’accès aux méthodes des webSites
⦿ Pas de fourniture de Mocks, mais…
⦿ Nmock3 ( Net 3.5, Net 4.0)
⦿ Moq (->.Net 4.0)
⦿ RhinoMocks ( ->.Net 3.5)
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
64
65. III. Ms Test face à la concurrence
⦿ Synthèse de son positionnement
MsTest NUnit
Générateur de skeleton intégré et Vitesse d’exécution
gratuit
Exécutions parallèles Simplicité
Bien intégré à TFS Assertions Nombreuses
⦿ Migrer Nunit vs MsTest
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
65
66. Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
66
67. Plan de la présentation
I. Rappel sur les Tests unitaires
II. Présentation de MS Test
III. MsTest face à la Concurrence
IV. Les plus de la licence Pro/Ultimate
V. Les apports du passage à Visual Studio
2012.
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
67
68. IV. Les plus de la licence Pro/Ultimate
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
68
69. IV. Les plus de la licence Pro/Ultimate
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
69
70. Plan de la présentation
I. Rappel sur les Tests unitaires
II. Présentation de MS Test
III. MS Test face à la Concurrence
IV. Les plus de la licence Pro/Ultimate
V. Les apports du passage à Visual
Studio 2012
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
70
71. VI. Visual Studio 2012
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
71
72. VI. Visual Studio 2012
⦿ Code clone detection
⦿ Code Metrics Values
⦿ Microsoft Fakes isolation framework
⦿ Extend the unit test type
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
72
73. Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
73
74. En Conclusion…
⦿ Sur ses spécificités
⦿ Sur son positionnement
⦿ Son potentiel en fonction des licences
⦿ Son évolution future
Les Tests Unitaires sous Visual Studio 2010
Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite
74
75. Merci de Votre
attention
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 75
Document Propriété de So@t, Diffusion Interdite