dimanche 22 juin 2014

Vidéos Visual Studio Online et nouveautés sur les tests fonctionnels

J'ai enregistré pour Microsoft France des vidéos afin de présenter les derniers nouveautés sur Visual Studio 2013 et surtout Visual Studio Online.

La première vidéo permet de découvrir les avantages de Visual Studio Online.Le premier avantage est de disposer en quelques minutes d'une plateforme complète de développement logiciel, mise à jour régulièrement et avec un niveau de service très élevé. Le seul point d'attention est sur la personnalisation : actuellement vous ne pouvez pas ajouter un nouveau champ à un élément de travail ou changer le modèle de processus. Il apporte aussi des services exclusifs que l'on peut utiliser même si nous utilisons une version "On Premises" de TFS. Ces services sont les tests de charges avec minimum 15 0000 d'utilisateurs virtuels minutes par mois, sans avoir à mettre en place une infrastructure coûteuse et demandant plusieurs compétences. Il apporte aussi Application Insights, en preview actuellement, qui permet de surveiller son application au niveau de la disponibilité, de la performance, de l'usage et des journaux de diagnostiques. Et même bientôt la possibilité de modifier son code source directement dans le navigateur pour des corrections minimes avec le projet "Monaco".

La deuxième vidéo se penche sur les évolutions des tests fonctionnels avec Visual Studio ALM 2013.Au cours des différentes mises à jour de TFS 2012 puis TFS 2013, un ensemble important des fonctionnalités de Microsoft Test Manager ont été portées sur directement dans le Web Access, l'interface Web de Team Foundation Server. Tout d'abord, la possibilité de créer des cas de test à partir d'un simple tableau. Il est même possible de le copier-coller depuis son plan de test Excel. Le testeur peut aussi exécuter ses scénarios de test directement dans Internet Explorer. Cela lui permet aussi de consulter l'avancement de son plan de test depuis tous ses terminaux, sa tablette par exemple. Cela permet de remplacer avantageusement le traditionnel cahier de test dans plusieurs de nos projets clients. Si nécessaire, il est possible d'exporter l'ensemble du plan en HTML pour l'imprimer ou l'envoyer par mail.

L'ensemble des vidéos sur les nouveautés de Visual Studio 2013 sont disponibles sur le site de Visual Studio France 

have a nice day.

samedi 3 mai 2014

Retour sur le ScrumDay 2014

En avril, j'ai participé au Scrumday 2014 organisé dans le centre de conférence de DisneyLand Paris. Le ScrumDay est, avec Agile France, un des rendez-vous phare de la communauté Agile.
La conférence du 10 avril proposait de nombreuses présentations et ateliers autour du thème de cette année la Culture Produit, autrement dit le Product Owner et ses pratiques ont été au centre de beaucoup de sessions. La KeyNote a bien lancée la journée avec un orateur plein d’énergie et prestigieux :Alistair Cockburn co-auteur du manifeste Agile. J’ai trouvé le contenu de bon niveau et les ateliers particulièrement intéressants. Pour résumer la journée en un slogan « Arrêter de faire des projets, créez des produits innovants … et disruptifs ».

En parallèle, de la conférence une « coach clinic » était à la disposition des participants pour échanger autour de ses projets produits avec un coach agile. Le centre de conférence et le service pendant les pauses étaient vraiment excellents. J’ai très bien petit déjeuner, déjeuner et goûter. Tant mieux ! Le soir venu, un dîner a réuni plus de 100 agilistes pour échanger dans une très bonne ambiance autour des pratiques, et aussi passer de bons moments de rire et détente.

cercle pour clôturer le forum ouvert
Le lendemain 11 avril, quelques-uns ont décidé de profiter du voyage pour visiter les parcs Disney en famille….d’autres ont essayé une nouveauté cette année : le forum ouvert (Open Space). Avant de démarrer, tous les participants peuvent proposer un sujet de leur choix, chaque thème est ajouté à une place de marché et associé à un lieu et un horaire. Chacun est ensuite libre de participer aux groupes de travail rassemblés dans une grande salle. Le concept impose peu de formalisme mais une simple loi « suivez vos 2 pieds ». J’ai pu expérimenter des jeux agiles, aider à trouver de vraies pistes pour débloquer une situation tendue, participer un atelier Lean Canvas pour construire le bon produit, et découvrir que j’étais du profil C1 pour Action Types !

Avec la possibilité d’utiliser votre DIF, j’espère vous croiser nombreux pour une édition 2015 du ScrumDay encore meilleure ou plus rapidement au prochaines soirées Meetup. En attendant, vous pouvez visualiser les vidéos des présentations sur la FrenchSUG TV et le reportage sur l’évènement avec une équipe d’organisation … disons #happy.

Edit : la page Scrumday 2014 regroupe les enregistrements des sessions

1er jour de conférence
have a nice day.

dimanche 16 mars 2014

Démarrer avec Specflow

L'article suivant vous propose de vous lancer avec Specflow en langage gherkin pour les francophones. Specflow est la version destinée à Visual Studio de Cucumber.

Installation dans Visual Studio

Dans Visual Studio 2010, 2012 ou 2013, depuis les extensions et mises à jour de Visual Studio Gallery, chercher « specflow » et l’installer.
Redémarrer ensuite Visual Studio 2013

Créer un projet de test

Il faut créer un projet de test pour intégrer les différents cas de test.
(Plusieurs framework de test unitaire sont supportés dont MsText, NUnit, xUnit, mbUnit)
Cliquer sur Ajouter au niveau de la solution et ajouter un projet de test unitaires :
Supprimer le fichier TestUNit1.cs créé automatiquement dans le projet.
Pour fonctionner avec MSTest, il faut installer le package NuGet SpecFlow dans le projet (Pour Nunit, remplacer par SpecFlow.NUnit). Il suffit de lancer la commande suivante dans le Nuget Package Manager  :
PM> Install-Package SpecFlow -ProjectName MonAppli.Extranet.Specs

ou l'installer via l'interface de Package Manager
La référence TechTalk.SpecFlow doit apparaître dans le projet de test :

Dans le fichier App.config, il faut modifier la configuration afin :
  • d'ajouter le langage par défaut en fr-FR pour écrire les Feature en francais (en-US par défaut)
    <language feature="fr-FR" />
  • d'indiquer le framework MsTest comme celui à utiliser pour générer les tests
    <unitTestProvider name="MsTest" />
Pour le détail des configurations possibles se reporter à la page de documentation suivante http://go.specflow.org/doc-config.

Créer une première feature

Cliquer droit sur le projet pour ajouter un nouvel élément. Choisir le SpecFlow Feature File et cliquer sur Add.
Ouvrir le fichier et modifier les mots clés par ceux correspondant au français.
"fr": {
 "name": "French",
 "native": "français",
 "feature": "Fonctionnalité",
 "background": "Contexte",
 "scenario": "Scénario",
 "scenario_outline": "Plan du scénario|Plan du Scénario",
 "examples": "Exemples",
 "given": "*|Soit|Etant donné|Etant donnée|Etant donnés|Etant données|Étant donné|Étant donnée|Étant donnés|Étant données",
 "when": "*|Quand|Lorsque|Lorsqu'<",
 "then": "*|Alors",
 "and": "*|Et",
 "but": "*|Mais"
},
Une aide contextuelle (Intellisense) permet de retrouver facilement les mots-clés :

Générer les étapes et exécuter les tests

Pour construire les tests unitaires sous-jacents, il suffit de générer les étapes en cliquant droit sur le fichier et choisissant Generate Step Definitions , puis en sélectionnant les étapes à générer et cliquer sur Generate.
Vous  pouvez alors choisir le fichier et la classe (existante ou à générer) qui accueillera ces étapes.

Une fois le squelette du code généré, lancer une compilation du projet en cliquant sur Projet > Générer. Chaque scénario peut être lancé depuis la fenêtre de Test de Visual Studio.
Il reste alors à implémenter le code de test puis le code réalisant la fonctionnalité.
N’oubliez pas de supprimer la ligne avec ScenarioContext.Current.Pending();

Pour aller plus loin

Pour bien coder et tirer parti des fonctionnalités de specflow, la page suivante permet de pointer sur les pratiques les plus importantes : http://www.specflow.org/getting-started/beyond-the-basics/
La page des ressources est aussi intéressante notamment les blogs Posts concernant ASP .Net MVC.
http://www.specflow.org/resources/

L'intégration à la build TFS est aisée. Comme des tests unitaires sont générés (MsTest, NUnit, …)., il n’est pas nécessaire d’ajouter de la configuration supplémentaire au niveau de la Build (si ce n’est l’exécution des tests unitaires, normalement configuré par défaut).

Pour des fonctionnalités plus avancées, il faut utiliser SpecFlow+ Runner qui est payant.
Il permet aussi de :

  • Afficher les titres des scenarios dans le résultat de l’exécution
  • Générer un rapport HTML détaillé et personnalisable
  • Permettre de filtrer les scenarios dans la définition de Build
have a nice day.


samedi 30 novembre 2013

Migrer de TFS 2008 SP1 vers TFS 2012

Si vous avez encore votre serveur TFS en version 2008 SP1, il faudra migrer d'abord celui-ci vers TFS 2012 avant éventuellement de le migrer vers TFS 2013. Voici un résumé des principales étapes pour cette migration et celle de votre contenu SharePoint (WSS3.0).
  1. Préparer les nouvelles machines avec : (Dans la plupart des cas, il n'est pas possible de migrer sur place)
    1. Windows 2008 R2 SP1
    2. SQL Server 2008 R2 SP2
    3. SharePoint 2010 SP2
    4. TFS 2012 Update 3 (une de mes migrations avec l'update 4 a échouée)
  2. Préparer les outils et Team Build
    1. migrer vers VS2012 autant que possible les solutions.
    2. migrer vos taches et outils de Build vers vers le nouveau modèle objet client.
    3. migrer une build .Net : à priori pas ou peu d'actions (sauf migration optionnelle de MsTest vers Test Runner et des personnalisations du 2.)
    4. migrer une build Cpp en conservant une solution et projets VS2008  :
      Voici les points que j'ai rencontré, vous en aurez surement de supplémentaires,
      Sur la machine de Build :
      • Installer Windows SDK 6.1A
      • Installer la fonctionnalité du serveur .Net 3.5.1
      • Installer VS2008 avec Team Explorer puis le SP1
      • Ajouter au PATH : "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64"
      Sur la définition de Build et les projets, il faut parfois s’assurer que l'"OutDir" personnalisée soit utilisée (et les fichiers bien envoyés dans le répertoire de dépôt)
  3. Sauvegarder, puis Restaurer les bases vers le nouveau serveur de base de données
    • tfsXXX (toutes les bases de TFS)
    • Wss_Content (la base de contenu SharePoint)
    • ReportServer et ReportServertempdb (base des rapports).
      Cette restauration est à réaliser si vous avez des rapports personnalisés. Les nouveaux rapports sont créés automatiquement lors de la migration.
  4. Migrer les bases TFS en choisissant l'option Mise à jour dans la boite de dialogue.
    Suivre les instructions pour migrer les bases TFS et le reporting. (Je préfères migrer SharePoint séparément)
    La migration est longue voire très longue suivant la taille de votre base de code et le nombre d'éléments de travail. L'idéal est de la tester une première fois avant de réaliser la migration définitive.
  5. Configurer SharePoint 2010.
    Lancer une configuration standard en créant une nouvelle ferme de serveur et un nouveau site d’administration centrale. Puis lancer l'assistant d'installation pour configurer les applications et service, sauter la création d'un site de haut niveau.
  6. Installer les extensions TFS pour SharePoint depuis la console d'administration de TFS.
    (Ou les installer directement depuis les sources TFS si SharePoint est sur un serveur séparé)
  7. Ajouter la base de données de contenu. Pour cela, il faut utiliser la ligne de commande  (impossible de puis l'administration centrale)
    cd c:\Program Files\Common Files\microsoft shared\Web Server Extensions\14\BIN
    stsadm.exe -o addcontentdb -url http://SPSserveur/ -databasename WSS_Content -databaseserver DBServeur
  8. Vérifier l’association du serveur SharePoint avec le serveur TFS depuis la console d’administration de TFS, activer l'association si nécessaire. Fixer les liens entre les projet d''équipe TFS et leur site SharePoint depuis la section Paramètres de Visual Studio Team Explorer 2012. 
  9. Si vous migrez de domaine, changer les identités dans TFS et SharePoint.
    Mon billet disponible ici détaille les opérations.
  10. Vous pouvez alors appliquer l'update 4 de TFS sur les serveurs.
    Ou bien choisir de migrer vers TFS 2013, la procédure sera plus simple et détaillée sur MSDN.
  11. Pour bénéficier des nouvelles fonctionnalités du Web Access dans vos projets d'équipes existants, il vous faudra bien-sûr suivre la procédure de mise à niveau.
have a nice day.

dimanche 27 octobre 2013

10 astuces pour garder son TFS en bonne santé

Dans un article et dans le livre Professional TFS 2012, Grant Holliday explique comment bien maintenir une instance de TFS. Même s'il indique des priorités, la liste des actions est très longue. Je souhaite proposer ici une liste restreinte et ordonnée d'astuces qui permettent de conserver une instance TFS 2010/2012/2013 fonctionnelle pour une équipe jusqu'à 20 personnes.
Pour ce type d'instance, la personne dédiée à l'administration de TFS a souvent très peu de temps à y consacrer, il s'agit rarement de son travail principal. Il lui faut aller à l'essentiel. J'ai donc mis de côté tout ce qui concerne des installations complexes ou l'optimisation des performances.
  1. Sauvegarder l'instance TFS
    • cela vous permettra de restaurer votre instance en cas de crash
    • les bases sont paramétrées par défaut pour une restauration complète, cela signifie qu'un fichier journal de transactions est généré, si vous ne sauvegardez pas régulièrement ceux-ci, ils vont prendre une taille énorme.
    • la sauvegarde est très facile avec l'outil de sauvegarde et restauration. (inclus dans TFS2012/2013, pour 2010 installer les TFS Power Tools Dec. 2011, pour le réaliser à la main suivez bien les instructions ici)
  2. Exécuter l'outil Best Practice Analyser (chaque mois)
    • il permet de détecter des problèmes dans votre architecture
    • l'outil est inclus dans les TFS Power Tools, et s'exécute en quelques minutes seulement. 
  3. Mettre à jour les machines SQL Server et TFS
    • la mise à jour des machines permet d'éviter des failles de sécurité et une mise à jour très longue au moment d'une montée de version.
    • pour TFS l'idéal est d'être toujours sur la dernière mise à jour un mois après sa sortie. Il arrive qu'une ou 2 régressions soient corrigées rapidement. Profitez-en pour mettre aussi à jour Visual Studio sur les postes de développement.
    • installer la version la plus récente possible de SQL Server (TFS 2010 = SQL2008R2SP3, TFS 2012.4 = SQL2012 SP1, TFS 2013 = SQL2012 SP1)
  4. Installer un environnement de taille suffisante
    • sans rechercher la performance, il faut un minimum de puissance, de mémoire, et d'espace disque ! Suivez les indications du TFS Planning Guide 
    • la santé des disques hébergeant les fichiers des bases de données est souvent un facteur clé du bon fonctionnement. Vous pouvez les surveiller en effectuant un échantillonnage à l'aide de l'analyseur de performance sur l'objet "Disque logique" ou "Disque physique" et le compteur en pour 1000 "Moyenne disque s/transfert" (échantillonner toutes les 30 secondes). Les résultats ne doivent pas dépasser 0.050.
  5. Vérifier la bonne santé de l’instance de bases de données SQL Server
    • la majorité de la logique de TFS est implémentée dans des procédures SQL. La santé de TFS est donc largement dépendante de celle de l’instance des bases de données SQL Server.
    • exécuter régulièrement DBCC CHECKDB pour vérifier leur intégrité
    • vous pouvez aussi utiliser les DMV (Dynamic Management Views) à partir du script de Jimmy May disponible ici pour vérifier qu'il n'y pas de problème majeur.
  6. Vérifier et modifier les paramètres du pool d'application IIS
  7. Vérifier régulièrement le journal d'activité et les travaux depuis http://monserveur:8080/tfs/_oi/
    • cela permet de vérifier si des travaux posent problèmes
    • cela permet aussi de verifier la santé de l'entrepôt de données et et du cube OLAP
  8. Vérifier et sauvegarder les Builds
    •  sauvegarder régulièrement le répertoire de dépôt des Builds TFS (sauvegarder aussi votre répertoire de symboles, si vous en avez un)
    • vérifier aussi que l'espace disponible sur les machines de Build est suffisant.
  9. Vérifier ou désactiver les journaux IIS
    • cela permet d'éviter de remplir le disque ...
    • pour les désactiver, exécuter  la commande suivante sur l'application-Tier en tant qu'administrateur local :
      %windir%\system32\inetsrv\appcmd set config -section:system.webServer/httpLogging /dontLog:"True"  /commit:apphost
  10. Nettoyer les éléments non utilisés de TFS
    • avec Team Foundation Sidekicks, supprimer les espaces de travail et mises sur étagères non utilisés.
    • avec witadmin, lister puis supprimer les champs inutilisés :
      witadmin listfields /unused /collection:http://monserveur:8080/tfs/DefaultCollection
      witadmin deletefield /n:referencechamp /collection:http://monserveur:8080/tfs/DefaultCollection
    • avec le Test Attachement Cleaner, supprimer les fichiers attachés inutiles. Il est inclus dans les TFS Power Tools. Le détail des opérations est bien expliqué ici.
Il existe d'autres astuces que je trouve aussi intéressantes dans ce cadre, mais il faut tenir la limite.
Qu'en pensez-vous ? A votre avis, quelle autre astuce devrait se trouver dans cette liste ?

have a nice day.