Nashville SharePoint User Group 2018 - Building a modern intranet in 60 minutes
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est possible!
1. Les tests automatisés et SharePoint 2010, c'est possible!
Sébastien Levert
Directeur technique, Développement SharePoint, Les Solutions Victrix
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/
2
3. À qui ça s’adresse ?
Développeurs
Responsables d’assurance-qualité
Gestionnaires d’équipes techniques
3
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
4
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
5
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 unitaires
Tests d’interface
7
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 fonction
Plus le test isole un cas associé à une fonction, plus le test est
pertinent
9
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 Isolator
Telerik JustMock
Moq
RhinoMock
Microsoft Pex & Moles
10
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 unitaires
Supporté par l’équipe de Visual Studio
Le nouveau nom : Fakes
11
12. L’isolation : Exemple
Comment tester ceci ?
if (DateTime.Now == new DateTime(2000,1,1))
throw new BogueAn2000();
Si on pouvait modifier le comportement de DateTime.Now, ça
deviendrait testable…
MDateTime.NowGet = () => return new DateTime(2000, 1, 1);
if (DateTime.Now == new DateTime(2000,1,1))
throw new BogueAn2000();
À l’appel de DateTime.Now, la véritable date qui sera retournée
sera celle définit dans le MDateTime.NowGet. Magie!
12
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.
14
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
16
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
17
20. Comment intégrer ces techniques dans la réalité ?
Intégration des tests dès le premier jour du projet
Beaucoup plus efficace et motivant
Ne requiert pas de faire des tests rétroactifs qui coûtent beaucoup
plus cher
Formation des développeurs
Un 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 source
Impossible de déposer du code non testé
Impossible de déposer du code si les tests échouent
20
21. Comment intégrer ces techniques dans la réalité ?
Planifier les tests
Un coût est associé à l’ajout de ces mesures
Ajout de 15 à 20% d’effort à un projet au niveau des activités de
développement
Réduit au minimum les « dummy » tests
À favoriser lors de projets misant sur la qualité de la solution
Plus 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 principaux
Ne permettent pas de valider les besoins
21