Test unitaires visual studio

3,734 views
3,544 views

Published on

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
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,734
On SlideShare
0
From Embeds
0
Number of Embeds
139
Actions
Shares
0
Downloads
75
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Test unitaires visual studio

  1. 1. Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 1
  2. 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. 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. 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. 5. Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 5
  6. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 18. Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 18
  19. 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. 20. Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 20
  21. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 33. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 33 Document Propriété de So@t, Diffusion Interdite
  34. 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. 35. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 35 Document Propriété de So@t, Diffusion Interdite
  36. 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. 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. 38. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 38 Document Propriété de So@t, Diffusion Interdite
  39. 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. 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. 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. 42. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 42 Document Propriété de So@t, Diffusion Interdite
  43. 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. 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. 45. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 45 Document Propriété de So@t, Diffusion Interdite
  46. 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. 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. 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. 49. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 49 Document Propriété de So@t, Diffusion Interdite
  50. 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. 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. 52. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 52 Document Propriété de So@t, Diffusion Interdite
  53. 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. 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. 55. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 55 Document Propriété de So@t, Diffusion Interdite
  56. 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. 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. 58. Alexandre MEYER et Jade DORVIL Les Tests Unitaires sous Visual Studio 2010 58 Document Propriété de So@t, Diffusion Interdite
  59. 59. Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 59
  60. 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. 61. Xunit.Net Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 61
  62. 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. 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. 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. 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. 66. Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 66
  67. 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. 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. 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. 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. 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. 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. 73. Les Tests Unitaires sous Visual Studio 2010Alexandre MEYER et Jade DORVIL Document Propriété de So@t, Diffusion Interdite 73
  74. 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. 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. 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

×