test unitaires visual studio
Post on 21-Jun-2015
2.867 Views
Preview:
DESCRIPTION
TRANSCRIPT
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite1
Périmètre de la présentation
⦿Visual Studio 2010 Professional
⦿Connaissance des Tests Unitaires
⦿Concentration sur l’Outil
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite2
Les présentateurs
⦿Alexandre MEYER
⦿ Concepteur-Développeur .Net
⦿alexandre.meyer@soat.fr
⦿ Jade DORVIL
⦿ Développeur .Net
⦿ Jade.dorvil@soat.fr
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite3
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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite4
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite5
I. Rappel sur les tests unitaires
1) Pourquoi tester?
2) Qu’est ce qu’un test unitaire ?
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite6
1. Pourquoi tester?
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite7
1. Pourquoi tester?
⦿Raisons liés au Projet :
⦿ Politique
⦿ Risques de pertes Financières
⦿ Criticité
⦿ Produit Grand Public
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite8
1. Pourquoi tester?
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite9
1. Pourquoi tester?
⦿Pour l’équipe :
⦿ Non-régression entre les commit : IC
⦿ Confiance améliorée entre les développeurs
⦿ Maintenabilité
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite10
1. Pourquoi tester?
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite
11
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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite12
1. Pourquoi tester?
2. Qu’est-ce qu’un test unitaire ?
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite13
I. Rappel sur les tests unitaires
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 »). »
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite14
2. Qu’est ce qu’un test unitaire ?
Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t,Diffusion Interdite15Alexandre MEYER et Jade DORVIL
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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite16
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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite17
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite18
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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite19
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite20
II. Présentation de MsTest
1. Historique
2. Fonctionnement de l’outil
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite21
1. Son histoire
1998 Infrastructure
xUnit (eXtremeProgramming)
Années 2000
Constat : Trop de code
2005
Arrivé de MsTest (VS 2005 Team
System)
2010
Version améliorée de MsTest
2012
Evolutions notables :
- Isolation du code
- Méthodes annonymes
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite22
1. Son histoire
Concept de l'infrastructure xUnit
Équivalent VS 2005 (voir les attributs ci-dessous)
Description
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
(Fixture)
TestClass Regroupement logique d'un à plusieurs tests. Imaginez
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
tests unitaires VS
2005 VSTS
GUI/Application de console chargée de découvrir,
d'exécuter et de présenter les résultats des tests. Dans
cet article, Visual Studio 2005 Team System servira de
testeur.
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite
23
II. Présentation de MsTest
1. Son Histoire
2. Fonctionnement de l’outila. L’interface Utilisateur
b. Création des Tests Unitaires
c. Spécificités de l’Outil
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite24
a. L’interface Utilisateur
⦿ Les vues
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite25
Les vues
⦿Test View
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite26
Les vues
⦿Test List Editor
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite27
Les vues
⦿Test Results
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite28
Les vues
⦿Test Run
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite29
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()]
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite30
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.
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite31
a. L’interface Utilisateur
⦿ Gestion des Tests
⦿ Listes de Tests
⦿ Séquences de Test ordonnées
⦿ Catégories
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite32
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite33
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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite34
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite35
II. Présentation de MsTest
1. Son Histoire
2. Fonctionnement de l’outila. L’interface Utilisateur
b. Création des Tests Unitaires
c. Spécificités de l’Outil
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite36
b. Création des Tests Unitaires
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite37
Débit/Crédit sur compte Bancaire
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite38
II. Présentation de MsTest
1. Son Histoire
2. Fonctionnement de l’outila. L’interface Utilisateur
b. Création des Tests Unitaires
c. Spécificités de l’Outil
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite39
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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite40
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.
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite41
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite42
c. Spécificités de L’Outil
⦿ Les tests introspectifs
⦿Multi-Cœurs
⦿Gestion Du MTA
⦿DataDriven Tests
⦿ Les generics
⦿Tests pour Le Web
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite43
Multi-Cœurs
⦿Avant
⦿Après
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite44
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite45
c. Spécificités de L’Outil
⦿ Les tests introspectifs
⦿Multi-Cœurs
⦿Gestion Du MTA
⦿DataDriven Tests
⦿ Les generics
⦿Tests pour Le Web
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite46
Gestion du MTA
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite47
Thread
Synchronisation
Appel Client
Processus
Appartenance
Gestion du MTA
⦿MTA = Multi-Threaded Appartment
⦿WaitHandle.WaitAll(WaitHandle[])
⦿Exemple : Plusieurs débiteurs et créditeurs
sur un seul compte.
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite48
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite49
c. Spécificités de L’Outil
⦿ Les tests introspectifs
⦿Multi-Cœurs
⦿Gestion Du MTA
⦿DataDriven Tests
⦿ Les generics
⦿Tests pour Le Web
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite50
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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite51
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite52
c. Spécificités de L’Outil
⦿ Les tests introspectifs
⦿Multi-Cœurs
⦿Gestion Du MTA
⦿DataDriven Tests
⦿ Les generics
⦿Tests pour Le Web
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite53
c. Les génériques
⦿Tests unitaires pour des méthodes
génériques
⦿Tests unitaires pour des méthodes avec
contraintes de type
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite
54
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite55
c. Spécificités de L’Outil
⦿ Les tests introspectifs
⦿Multi-Cœurs
⦿Gestion Du MTA
⦿DataDriven Tests
⦿ Les generics
⦿Tests pour Le Web
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite56
Tests pour Le Web
⦿MVC
⦿ [Host Type ()]
⦿ [AspNetDevelopmentServerHost()]
⦿ [UrlToTest()]
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite57
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite58
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite59
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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite60
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite61
Xunit.Net
⦿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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite62
III. Ms Test face à la concurrence
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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite63
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)
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite64
III. Ms Test face à la concurrence
⦿Migrer Nunit vs MsTest
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite65
⦿Synthèse de son positionnement
MsTest NUnitGénérateur de skeleton intégré et
gratuit
Vitesse d’exécution
Exécutions parallèles Simplicité
Bien intégré à TFS Assertions Nombreuses
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite66
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.
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite67
IV. Les plus de la licence Pro/Ultimate
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite68
IV. Les plus de la licence Pro/Ultimate
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite69
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
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite70
VI. Visual Studio 2012
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite71
VI. Visual Studio 2012
⦿Code clone detection
⦿Code Metrics Values
⦿Microsoft Fakes isolation framework
⦿Extend the unit test type
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite72
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite73
En Conclusion…
⦿Sur ses spécificités
⦿Sur son positionnement
⦿Son potentiel en fonction des licences
⦿Son évolution future
Alexandre MEYER et Jade DORVILLes Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite74
Merci de Votre
attention
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite75
http://dangerz.blogspot.fr/2012/01/converting-
nunit-to-mstest.html
http://blogs.developpeur.org/etienne/archive/200
9/05/23/visual-studio-2010-quoi-de-neuf-pour-les-
tests-web.aspx
http://bradwilson.typepad.com/blog/2010/07/test
ing-routing-and-url-generation-in-aspnet-
mvc.html#more
Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010
Document Propriété de So@t, Diffusion Interdite76
top related