• Like
Test unitaires visual studio
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Test unitaires visual studio

  • 2,651 views
Published

Vous avez entendu parler des tests unitaires, vous voulez en faire, mais il vous manque le comment ? …

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.

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,651
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
58
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 3
  • 4. Plan de la présentationI. Rappel sur les Tests unitairesII. Présentation de MS TestIII. MsTest face à la ConcurrenceIV. Les plus de la licence Pro/UltimateV. Les apports du passage à Visual Studio 2012 Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 4
  • 5. Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 5
  • 6. I. Rappel sur les tests unitaires1) Pourquoi tester?2) Qu’est ce qu’un test unitaire ? Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 6
  • 7. 1. Pourquoi tester? Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 8
  • 9. 1. Pourquoi tester? Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 10
  • 11. 1. Pourquoi tester? 11 Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 12
  • 13. I. Rappel sur les tests unitaires1. Pourquoi tester?2. Qu’est-ce qu’un test unitaire ? Les Tests Unitaires sous Visual Studio 2010Alexandre 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 sassurer du fonctionnement correct dune partie déterminée dun logiciel ou dune portion dun programme (appelée « unité » ou « module »). » Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 17
  • 18. Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 18
  • 19. Plan de la présentationI. Rappel sur les Tests unitairesII. Présentation de MS TestIII. MsTest face à la ConcurrenceIV. Les plus de la licence Pro/UltimateV. Les apports du passage à Visual Studio 2012 Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 19
  • 20. Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 20
  • 21. II. Présentation de MsTest1. Historique2. Fonctionnement de l’outil Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 22
  • 23. 1. Son histoireConcept de Équivalent VS 2005 Descriptionlinfrastructure 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 nest pas atteint. Imaginez quil sagit de votre « méthode ».Contexte du test TestClass Regroupement logique dun à plusieurs tests. Imaginez(Fixture) quil sagit de votre « classe ».Suite de tests Test List ** Regroupement logique dun à plusieurs contextes de test. Imaginez quil sagit de votre « bibliothèque de classes ». Remarque : Cette liste na pas besoin dattribut.Testeur Infrastructure de GUI/Application de console chargée de découvrir, tests unitaires VS dexé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 MsTest1. Son Histoire2. 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 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 25
  • 26. Les vues⦿ Test View Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 27
  • 28. Les vues⦿ Test Results Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 28
  • 29. Les vues⦿ Test Run Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 MsTest1. Son Histoire2. 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 36
  • 37. b. Création des Tests UnitairesDébit/Crédit sur compte Bancaire Les Tests Unitaires sous Visual Studio 2010Alexandre 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 MsTest1. Son Histoire2. 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 59
  • 60. Plan de la présentationI. Rappel sur les Tests unitairesII. Présentation de MS TestIII. MsTest face à la ConcurrenceIV. Les plus de la licence Pro/UltimateV. Les apports du passage à Visual Studio 2012 Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 60
  • 61. Xunit.Net Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 65
  • 66. Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 66
  • 67. Plan de la présentationI. Rappel sur les Tests unitairesII. Présentation de MS TestIII. MsTest face à la ConcurrenceIV. Les plus de la licence Pro/UltimateV. Les apports du passage à Visual Studio 2012. Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 69
  • 70. Plan de la présentationI. Rappel sur les Tests unitairesII. Présentation de MS TestIII. MS Test face à la ConcurrenceIV. Les plus de la licence Pro/UltimateV. Les apports du passage à Visual Studio 2012 Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 70
  • 71. VI. Visual Studio 2012 Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 72
  • 73. Les Tests Unitaires sous Visual Studio 2010Alexandre 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 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 74
  • 75. Merci de Votre attentionAlexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 75 Document Propriété de So@t, Diffusion Interdite
  • 76. http://dangerz.blogspot.fr/2012/01/converting-nunit-to-mstest.htmlhttp://blogs.developpeur.org/etienne/archive/2009/05/23/visual-studio-2010-quoi-de-neuf-pour-les-tests-web.aspxhttp://bradwilson.typepad.com/blog/2010/07/testing-routing-and-url-generation-in-aspnet-mvc.html#moreAlexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 76 Document Propriété de So@t, Diffusion Interdite