mercredi 8 avril 2015

Plannification Agile et Plan de Tests avec Visual Studio 2013 Web Access

Dans cet article, nous allons aborder la planification Agile et l'écriture des tests avec Visual Studio 2013 Web Access. Nous verrons comment mettre en place dans le Product Backlog un PBI actionable pour les développeurs avec un titre concis et auto descriptif, une description , des critères d'acceptance et un sketch créé avec le module Storyboarding de Powerpoint.
Puis nous verrons toujours à partir de Web Access, le module de test qui va permettre de créer un plan de test, puis les cas de test rattachés à un PBI en mode productivité, en utilisant la capacité de copier coller d'un contenu structuré d'Excel vers l'interface Web de Test Manager.
Ci dessous une vidéo démontrant le scénario :

Test Driven Development avec Visual Studio 2013

Dans cet article, nous allons nous intéresser à une pratique de développement Agile nommée TDD pour Test Driven Développement.
Le principe de TDD consiste à écrire les tests unitaires avant l'implémentation du code à tester.
Le cycle préconisé comporte cinq étapes
  1. Ecrire le test unitaire
  2. Vérifier que le test échoue (car le code qu'il teste n'existe pas)
  3. Ecrire juste le code qu'il faut pour que le test passe
  4. Vérifier que le test passe
  5. Refactoriser le code pour l'améliorer tout en conservant la fonctionnalité
Les avantages de cette technique sont multiples :
  • C'est avant tout une activité de Design permettant de préciser les spécifications du code, permettant d'obtenir un code plus juste et plus fiable
  • On garantit que le Codebase de l'application développée est testable unitairement, ce qui est très intéressant du point de vue qualité.
  • On induit un mécanisme de non régression automatisable via les builds automatisées par exemple
  • On sécurise les opérations de changement (évolutions ou refactoring) du fait d'un plus grande confiance dans le code
Visual Studio 2013 permet grâce à un outillage complet autour des tests unitaires, mais également des outils de refactoring et de productivité pour le développeur tel que Peek Definition, de mettre en oeuvre un pratique soutenue et professionnelle orientée TDD

Ci dessous un démonstration vidéo d'un approche TDD avec Visual Studio 2013. on en profitera pour montrer Peek Definition (Alt F12) un nouveau moyen d'édition en mode imbriqué d'une référence, qui consitue une évolution de la fonction "Go to reference" connue sous F12. Cette nouvelle implémentation est très pratique lorsque l'on fait du TDD.

Code Review avec Visual Studio 2013

Dans cet article, nous allons aborder une pratique bien connue dans le monde Agile : La Code Review, qui a pour objectifs principaux :
  • Améliorer la qualité du code
  • Favoriser la collaboration de travail en équipe
  • Favoriser l'application de standards entreprise
  • Détecter et corriger des défauts au plus tot et donc réduire le rework et les couts associés
  • Contribuer à former les développeurs
La suite d'outils Visual Studio est devenue au cours du temps "Agile Centric" et fournit en standard un outil de Code Review particulièrement performant qui est présenté dans la vidéo ci dessous. Lors de la démonstration, on en profitera pour regarder Codemap, un outil permettant de visualiser les dépendances et relations du code suivant un principe cher à Microsoft : Appréhender la complexité par le visuel.

Automatisation des Tests avec Visual Studio Test Manager et UI Coded Tests

Dans cette démonstration, nous allons démontrer un scénario d'automatisation des tests au travers de deux outils de la gamme Visual Studio 2013 :
Microsoft Test Manager pour l'écriture de vos plans de tests et cas de tests reliés à vos User stories ou Exigences, ainsi que Test Runner pour l'exécution des tests et la possibilité de les rejouer automatiquement grâce à la fonction d'Action recording et Replay.
Puis nous utiliserons en tant que développeur, la technologie UI Coded Tests pour d'une part importer les automatisations crées avec Test Manager afin d'y ajouter des assertions pour les automatiser complètement et les intégrer soit à un scénario BDT (Build Deploy Test) ou encore d'intégration contenue. l'avantage ici est la complète automatisation du test tant au niveau du Run de la GUI que de la vérification du résultat obtenu en terme de valeurs dans des contrôles d'IHM cibles.
Ci dessous la vidéo de démonstration.

dimanche 29 mars 2015

Session TechDays 2015 Devops - Vidéo de démonstration Validation des actions d'optimisation par les Tests de charge sur baseline

La dernière démonstration de la session consistait à vérifier que les optimisations réalisées à la fois sur le code et sur la plate forme d'exécution apportait les résultats attendus. Pour rappel, la fonction de recherche par mot clé donnait des temps de réponse de l'ordre de 15 s lors des sessions de tests de charge et le Run de 3 minutes du test de charge se concluait par le jeu de 195 tests de recherche. Nous verrons dans la démonstration ci dessous que le même test joué après les actions d'optimisation permet de jouer plus de 1600 tests permettant d'attester de l'efficience des actions d'optimisation (x10).
Ce type de démarche est essentielle sur tout projet, poser un baseline de performance avant toute action d'optimisation puis remesurer avec exactement le même scénario pour quantifier les progrès réalisés.
Ci dessous la démonstration :

Session TechDays 2015 Devops - Vidéo de démonstration de mise à l'échelle avec la plate forme Windows Azure

Le scénario démontré lors de la session des Techdays faisait remonter au travers d'alertes et de dashboards d'Application Insights, des problèmes de performances laissant suspecter un sous dimensionnement des la plate forme d'exécution à la fois du serveur Web et également base de données SQL Azure.
Un des points clé de l'approche Devops réside dans l'agilité de l'administration système, dans le but d'une meilleure collaboration avec les équipes de développement, d'un Time to Market plus efficient et surtout d'une contribution continue au Business (valeur métier).
La plate forme Windows Azure facilite grandement cette approche sur l'ensemble des critères précités et c'est principalement l'objet de la démonstration ci après permettant de montrer qu'en moins de 20 minutes, il est possible de mettre à l'échelle une plate forme Web et SQL gràce à l'efficacité du site d'administration de Windows Azure :

Session TechDays 2015 Devops - Vidéo de démonstration Application Insights


L'utilisation d'Application Insights permet de mettre en oeuvre une approche Devops dans le sens ou la capacité de détection d'anomalies en production est grandement facilité au travers des mécanismes d'alertes et de Dashboard temps réels d'application Insights. Ci dessous les trois phases d'utilisation d'Application Insights

Dans le scénario démontré lors de la session des Techdays, Application Insights a permis de remonter un alerte concernant une saturation mémoire et processeur de la machine hébergeant le site de commerce en ligne, permettant de fixer au plus vite les causes de cette situation à savoir un sous dimensionnement de la plate forme d'exécution et également un code sur le module de recherche posant des problèmes de performances. Ci dessous la démonstration du cas d'usage :

samedi 28 février 2015

Session TechDays 2015 Devops - Vidéo de démonstration Création et Run d'un Test de Charge avec Visual Studio 2015

Lors de la session, l'usage de Tests charge a été utilisée pour d'une part vérifier la tenue à la charge de notre site exemple (achat de matériel de sport en ligne) mais également mettre en place des baselines afin de pouvoir mesurer les gains suite à des optimisation d'infrastructure et de code.
l'utilisation de Visual Studio 2015 d'une part et de visual Studio Online a permis en quelques minutes d'implémenter un scénario de tests de charge en s'appuyant sur la capacité de Visual Studio online à provisionner des injecteurs permettant de simuler la charge souhaitée pour notre scénario.
Pour information, en lieu et place de tests Web, il est possible d'utiliser des tests unitaires d'intégrations qui vont simuler des scénarios fonctionnels sur des serveurs d'applications (typiquement exposant des services WCF).
L'objectif de la démonstration est de mettre en exergue l'étonnante productivité mise à disposition par les outils de la gamme Visual Studio dans la mise en oeuvre de scénario qui demandent dans un contexte On Premice la mise en place d'une infrastructure complexe et coûteuse, contrairement à l’approche Visual Studio Online (Cloud Based) où la plate forme met en place de manière élastique la charge en fonction de vos besoins.
Démonstration: Création et Run d'un Test de Charge consommant un Test de Performance Web

lundi 16 février 2015

Session TechDays 2015 Devops - Vidéo de démonstration Création d'un Web Performance Test

Lors de la session, l'usage de Tests Web de performance a été démontré pour mettre en place un scénario de test de charge permettant de vérifier la tenue à la charge de notre site exemple (achat de matériel de sport en ligne).
Cette première démonstration a pour but de mettre en évidence la simplicité et la productivité avec laquelle un Test Web automatisé est créé avec Visual Studio 2015.
Le but comme on le verra dans le prochain article est de consommer ces Tests Web automatisés dans des scénarios de Tests de charge.

Première démonstration : Création d'un Test Web de Performance simple





TechDays 2015 - Slides de la Session DevOps - Qualité, Performance et Télémétrie avec Visual Studio 2015

Comme promis, vous retrouverez dans ce post l'adresse pour télécharger la présentation de la session Devops - Qualité, Performance et Télémétrie avec Visual Studio 2015.
Je publierai également dans un prochain post les vidéos des démonstrations effecuées sur le sujet.

Présentation au format PDF

Bonne Lecture