sharepoint summit 2012 - les tests automatisés et sharepoint 2010, c'est possible!

22
Les tests automatisés et SharePoint 2010, c'est possible! Sébastien Levert Directeur technique, Développement SharePoint, Les Solutions Victrix

Upload: sebastien-levert

Post on 21-Jun-2015

858 views

Category:

Technology


0 download

DESCRIPTION

Présentation donnée lors du SharePoint Summit 2012 de Québec le 18 avril 2012.

TRANSCRIPT

Page 1: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

Les tests automatisés et SharePoint 2010, c'est possible!

Sébastien LevertDirecteur technique, Développement SharePoint, Les Solutions Victrix

Page 2: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

2

À propos de moi !

Directeur technique,

Développement SharePoint

Les Solutions Victrix

MCTS, MCITP & MCPD

Twitter : @sebastienlevert

LinkedIn : http://ca.linkedin.com/in/sebastienlevert

Blog : http://blog.sebastienlevert.com/

Page 3: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

3

À qui ça s’adresse ?

Développeurs

Responsables d’assurance-qualité

Gestionnaires d’équipes techniques

Page 4: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

4

Les prérequis

Connaître les concepts de base des tests unitaires

Bien connaître les API de développement de SharePoint

Être à l’aise avec les expressions lambdas

Être curieux

Page 5: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

5

Agenda

Pourquoi, les tests automatisés ?

Les tests unitaires dans un environnement SharePoint

Les tests d’interface

Comment l’intégrer dans la réalité

Questions

Page 6: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

6

Les tests automatisés

Page 7: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

7

Pourquoi, les tests automatisés ?

Favoriser la qualité des solutions livrées

Assurer une rétro-compatibilité

Alléger les tests fonctionnels

Favoriser un modèle de développement obligeant à penser en fonction des tests

Deux types Tests unitairesTests d’interface

Page 8: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

8

Les tests unitaires

Page 9: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

9

Les tests unitaires

En programmation informatique, 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é « unité » ou « module »). – Wikipédia

Tests isolés d’une méthode, d’une fonctionPlus le test isole un cas associé à une fonction, plus le test est pertinent

Page 10: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

10

Les tests unitaires dans un environnement SharePoint

Avez-vous déjà tenté l’expérience ?

Sans outil, c’est long, complexe, non performant et impossible à tester à 100%

Donc… On fait quoi ?

Utilisation de « framework » d’isolation (« Mocking »)TypeMock IsolatorTelerik JustMockMoqRhinoMockMicrosoft Pex & Moles

Page 11: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

11

Les tests unitaires dans un environnement SharePoint

Pex & Moles à la rescousse !

Permet de changer le comportement des appels aux méthodes des classes (de tout type)

Permet d’être isolé complètement de la plateforme

Pourquoi pas TypeMock, JustMock, moq, RhinoMock, etc ?Visual Studio 11 Beta !Moles a été intégré nativement à la plateforme de tests unitairesSupporté par l’équipe de Visual StudioLe nouveau nom : Fakes

Page 12: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

12

L’isolation : Exemple

Comment tester ceci ?

Si on pouvait modifier le comportement de DateTime.Now, ça deviendrait testable…

À l’appel de DateTime.Now, la véritable date qui sera retournée sera celle définit dans le MDateTime.NowGet. Magie!

if (DateTime.Now == new DateTime(2000,1,1))throw new BogueAn2000();

MDateTime.NowGet = () => return new DateTime(2000, 1, 1);

if (DateTime.Now == new DateTime(2000,1,1))throw new BogueAn2000();

Page 13: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

13

Les tests unitaires dans un environnement SharePoint

Du code ! Enfin !

Page 14: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

14

En résumé

Permettent de tester vos fonctionnalités utilisant les entrailles de SharePoint

Permettent de faire aisément des tests de régression

Doivent être accompagnés d’isolation

Ajoutent un certain temps au développement, habituellement rapidement compensé par moins de tests fonctionnels.

Page 15: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

15

Les tests d’interface

Page 16: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

16

Les tests d’interface, qu’est-ce que c’est ?

Séquence d’utilisation d’un logiciel

Peut être « enregistré »

Génère le code afin de reproduire la séquence

Le code généré peut être modifié pour satisfaire différentes conditions

Intégration à Visual Studio 2010 Premium/Ultimate

Page 17: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

17

La différence avec les tests unitaires

Permet de faire des tests couvrant une plus vaste superficie de votre logiciel (Déploiement, comportement web, etc.)

Sont des tests « intégrés » à l’environnement SharePoint

Couvre des éléments beaucoup plus complexes à tester avec des tests unitaires

Page 18: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

18

Les tests d’interface dans un environnement SharePoint

Démo !

Page 19: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

19

L’intégration dans la réalité

Page 20: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

20

Comment intégrer ces techniques dans la réalité ?

Intégration des tests dès le premier jour du projetBeaucoup plus efficace et motivantNe requiert pas de faire des tests rétroactifs qui coûtent beaucoup plus cher

Formation des développeursUn développeur formé et comprenant les enjeux des tests automatisés sera plus enclin à développer des tests de grande qualité

Ajout de politiques au gestionnaire de sourceImpossible de déposer du code non testéImpossible de déposer du code si les tests échouent

Page 21: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

21

Comment intégrer ces techniques dans la réalité ?

Planifier les testsUn coût est associé à l’ajout de ces mesuresAjout de 15 à 20% d’effort à un projet au niveau des activités de développementRéduit au minimum les « dummy » testsÀ favoriser lors de projets misant sur la qualité de la solutionPlus la découverte et la correction d'une erreur survient tard dans le cycle de développement, plus elle sera coûteuse à corriger. L'augmentation des coûts au niveau unitaire peut donc alors être perçu comme un investissement dans la qualité globale.

Ne remplace pas les activités d’assurance-qualitéPermettent de valider les cas principauxNe permettent pas de valider les besoins

Page 22: SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!

22

Questions ?