Sie sind auf Seite 1von 24

Team Foundation Server

Supplment

Team Foundation Server :

qualit logicielle

Tout pour la

f Cycle de vie des applications : pourquoi y aller ? f Les diffrents tests f Comment automatiser les tests sous Visual Studio ? f TFS Lab Management, l'art de matriser les tests f Dcouvrez la prochaine version

Qualit logicielle

Qualit logicielle, vous ferez!


Une fois nest pas coutume, nous parlerons de tests, de cycle de vie de lapplication, de bonnes pratiques, bref tout ce qui fait la qualit logicielle. Impensable de dployer en entreprise ou auprs du public, une application, quelle quelle soit, sans avoir respect un minimum de rgles de dveloppement, de suivi de projet, ou de bonnes pratiques sur le code, larchitecture et les tests. La qualit logicielle ne simprovise pas. Il faut utiliser les bons outils, les bonnes mthodes et rgles au bon moment. Mais loutillage nest pas une finalit. Car durant des annes, ces outils restaient sagement dans les armoires sans tre utiliss. Il faut que les dveloppeurs, chefs de projet, testeurs, utilisateurs, architectes, soient sensibiliss, forms mettre en uvre des suites logicielles telles que Team Foundation Server (TFS) de Microsoft. Dites-vous que la qualit logicielle nest pas ngociable dans un monde informatique htrogne, massivement distribu et connect, o la moindre erreur de fonctionnement peut figer lactivit dune entreprise toute entire. Le cloud computing impose une nouvelle rigueur ainsi que les applications smartphone, dans un monde de plus en plus souvent connect aux serveurs. Mais au-del de la technique pure, la communication entre chaque membre de lquipe est vitale. La bonne information au bon moment prend tout son sens. Dans ce cahier spcial, nous allons nous plonger dans TFS. Nous aborderons les bonnes pratiques (notamment Scrum), comment dfinir et mettre en place un plan de tests, comment automatiser les tests, utiliser toute la puissance de Lab Manager. Enfin, nous ferons un point sur la prochaine version.
# Franois Tonic

GAMME
A vous de choisir! ......................................................................................................3

Un ALM sUr MEsUrE ......................................................4 GEsTIOn


Cycle de vie des applications: pourquoi y aller? ..................6

AGILITE
Visual Studio et lagilit ........................................................................................8

QUALITE
Collaboration, partage, communication: les cls dune quipe agile et de qualit ........................................11 Tests unitaires, dinterface utilisateurs, de charge: une palette doutils pour matriser votre qualit logicielle ........................................................................................12 Lautomatisation de tests sous Visual Studio ..........................15 Planifier et organiser les tests avec Microsoft ........................18 Amliorer la qualit logicielle avec Team Foundation Server 2010 ....................................................19 Intgration continue et tests avec TFS Lab Management ..........................................................................20

fUTUr
Aperu de la prochaine version ..............................................................23 Les principales nouveauts VS 11 sur le cycle de vie ....................................................................................................24

Supplment de PROGRAMMEZ N149 Fvrier 2012 - Ne peut tre vendu sparment. Rdaction : Franois Tonic, rdacteur en chef. Experts : Vivien Fabing, Sylvain Gross, Laurent Abid, Didier Davar, Salam Elias, Partrick Catro- Brouillet, Cedric Noureau, Guillaume Rouchon, Patrice Lamarche. Editeur : Go-02 sarl, 21 rue de Fcamp 75012 Paris. Directeur de la publication : Jean-Claude Vaudecrane. Dpt lgal : parution Commission paritaire : 0712K78366 ISSN : 1627-0908. Imprimeur : S.A. Corelio Nevada Printing, Bruxelles.

PROgrammez ! -

FVRIER

2012

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

D.R.

Qualit logicielle

A vous de choisir!
Avec Visual Studio (VS) 2010, Microsoft a rationalis lensemble de la gamme afin de la rendre plus comprhensible. Dautre part, pour rpandre lusage de lALM, TFS est disponible par dfaut avec plusieurs ditions de Visual Studio 2010:

Editions de Visual Studio 2010


Professional avec MSDN Premium avec MSDN Ultimate avec MSDN Test Professional avec MSDN

TFS
Oui Oui Oui Oui

TFS peut tre achet sparment si vous nutilisez pas VS 2010 (version antrieure ou outils non .Net). Prcision importante: TFS 2010 est disponible uniquement version 64-bit. Dautre part, selon la version de VS 2010, le niveau de fonctionnalits dans les tests, ALM diffre beaucoup. Voici un petit tableau explicatif:

faible support, support moyen, bon support, support total


Un dploiement multiples couches
Le dploiement dune plateforme TFS implique le dploiement des lments suivants: application logique, donnes, et les clients tiers pour Team Foundation localisation physique des serveurs Team Foundation Build et la fabrication des build Team Foundation Server Proxy TFS implique un dploiement dun environnement de donnes complet pour grer les donnes projet, les sources, le reporting. Il se dcompose en 4 couches: TFS Configuration : base stockant les catalogues de ressources et les informations de configuration de TFS. TFS Warehouse: base de donnes stockant les donnes des rapports TFS Analysis: base multidimensionnelle stockant les donnes agrges provenant des quipes projets. Databases for team project collections : chaque collection dune quipe projet possde sa propre base dans laquelle sont stockes les donnes. La mise en place et la gestion des bases de donnes TFS (dploiement, maintenance, mise jour) est une des tches sensibles dans ladministration de son TFS. La configuration aprs linstallation de TFS se fait dans le Configuration Center. Linstallation et la configuration ont t grandement amliores par rapport la version 2008. Si vous disposez dun annuaire dentreprise, cela facilitera grandement la mise en place des droits daccs et la dclaration des utilisateurs. Ce centre de configuration permettra de crer la collection TFS dans la base de donnes. La collection permettra dy dposer vos projets. Pour toute la partie collaborative, accs web, partages, Sharepoint est ncessaire. Le dploiement dun TFS prendra plusieurs jours. En cas de doute sur larchitecture adopter, consulter un expert TFS, un intgrateur certifi.

Debugging et diagnostics Outils de tests IDE Dveloppement pour bases de donnes Plateforme de dveloppement Architecture et modlisation Lab Management TFS Contrle de source Gestion des workitems Build Reporting et BI Guide de planning agile Team Explorer Gestion des cas de test

VS 2010 Professional avec MSDN


Oui Oui Oui Oui Oui Oui

VS 2010 Premium avec MSDN


Oui Oui Oui Oui Oui Oui

VS 2010 VS 2010 Ultimate avec MSDN Test Professional avec MSDN


Oui Oui Oui Oui Oui Oui Oui


Oui Oui Oui Oui Oui Oui Oui

Dfinir son infrastructure matrielle et logicielle


Comme nous lavons vu plus haut, TFS se compose de diffrents outils et couches. Il faut disposer de TFS, Visual Studio, SQL Server, Windows sur le poste client, Windows Server sur

les serveurs (avec IIS pour lancer les services web ncessaires). Idalement, dans une infrastructure monte en charge et pour assurer une fiabilit de lensemble, 1 serveur applicatif = 1 serveur physique. Ainsi, la base de donnes, le build, TFS en lui-mme seront dployer sur des serveurs diffrents. Il faut au moins disposer de deux serveurs physiques: 1 pour Windows Server, la base de donnes, TFS 1 pour le build. Ensuite il faudra tailler votre rseau et le nombre de serveurs selon le nombre dutilisateurs et la charge attendue. En effet, vous ne dimensionnez pas de la mme faon une infrastructure TFS pour 15-20 utilisateurs et une infrastructure pour 200 ou 2000 utilisateurs! Au-del du matriel, il ne faut pas ngliger les ressources: mmoire vive, stockage, nombre de processeurs. Pareillement, sur les postes de travail des dveloppeurs sur lesquels les outils de dveloppement seront dploys (que ce soit Visual Studio ou Eclipse). Pour les autres utilisateurs (architecte, direction, testeurs), les exigences matrielles seront moindres.

PROgrammez ! -

FVRIER

2012

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

Un ALM sur mesure


Avec sa gamme 2010, Microsoft a fait le mnage la fois dans Visual Studio et ses outils ALM, de tests et de versionning. La gamme Visual Studio par exemple a t rduite de moiti afin de la rendre plus lisible.

Une approche modulaire


Concernant TFS, la version 2010 fait voluer lapproche fonctionnement et larchitecture globale de la plateforme ALM de lditeur. Le cur reste Team Foundation Server qui constitue le moteur de cycle de vie mais la relle valeur ajoute se situe au-dessus avec la gestion projet et des besoins, le contrleur de version (au revoir Visual SourceSage), les outils de tests, le moteur de build et la partie reporting qui sappuie sur les derniers outils Excel, Sharepoint.

Ouverture et migration
On comprend mieux lapproche modulaire et extensible de TFS grce ce schma. Car, TFS sintgre et interagit avec les principaux outils serveurs et de productivit de Microsoft : Sharepoint (portail, collaboration, partage), Expression (design, interface), Office (reporting, planification), Visual Studio (tests et code), Team Explorer et Web Access (portail, accs web, gestionnaire de projet partag) et enfin lextensibilit qui se

PROgrammez ! -

FVRIER

2012

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

mle avec ouverture. En effet, TFS nest pas isol dans le monde Windows / .Net grce des outils tiers (open source ou commerciaux) ou TFS Everywhere, TFS travaille avec Maven, Subversion, Mylyn, Ant, Eclipse, PHP, Java Un bon ALM sait sintgrer un univers htrogne. Cette extensibilit passe aussi par les outils, les assistants de migration de TFS 2008 vers 2010, ou encore le fait de quitter dfinitivement SourceSafe.

TFS sait sadapter vos besoins et monter en charge selon vos projets. Cest une de ses forces. Un ALM doit tre agile dans ses templates projets mais aussi dans son dploiement. Car finalement tout le monde nutilise pas Sharepoint ou Expression. Consulter la gamme VS 2010 et les fonctions TFS pour bien choisir!

PROgrammez ! -

FVRIER

2012

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

Cycle de vie des applications: pourquoi y aller?


Le droulement incertain des projets informatiques, que ce soit sur les aspects dlai, budget, primtre, ou encore qualit serait-il un fait avr, une tautologie ? Nous allons tenter de rpondre cette question dans le cadre de cet article en analysant les tenants et les aboutissants dun projet informatique et de dmontrer comment lALM apporte une rponse pertinente au travers dun ensemble riche de mthodes et outils.
LEs PrIncIPALEs cAUsEs dchEcs PrOjETs
Les raisons majeures qui sont lorigine des checs projets sont de deux ordres: Gnriques et oprationnelles. Les causes gnriques sont: Le Facteur Time to Market toujours plus agressif entranant des rythmes projets difficilement soutenables et des drapages dans les dlais qui statistiquement constituent une des premires causes de conflit sur projet Des besoins mtiers toujours plus complexes ct client pour assurer la comptitivit, induisant de la complexit ct implmentation technique Une volution incessante et trs rapide des technologies et des mthodes de dveloppement apportant une surcouche de complexit supplmentaire dont tout le monde se serait bien pass. Ceci tant dit, lexercice quil est intressant de mener est ce que lon appelle une Root Cause Analysis. Lide ici tant de dterminer quels sont les facteurs qui vont contribuer le plus fortement au fait que les projets, au plan oprationnel, soient en difficult. Tout le monde connat ces principales causes dchecs, simplement, la difficult va consister les prioriser, nous allons donc proposer cette liste,qui bien videmment nest pas exhaustive: Gestion de Projet Lacunaire Manque de Ractivit Face au Changement Manque de communication / collaboration, information dissmine Spcification incompltes ou surralistes Mauvaise gestion des risques de sassurer de la satisfaction du client qui est un des objectifs majeurs de tout projet par la capacit communiquer au travers dun certain nombre de rapports sur ltat davancement, la qualit, le budget et le planning en vue de dtecter tout cart et enclencher si ncessaire des actions correctives au plus vite afin de raligner le projet avec les attentes du client et les objectifs stratgiques de lentreprise. nantes de se parler, de se comprendre pour raliser de grands projets avec succs.

Spcifications incompltes ou surralistes


La gestion des spcifications constitue indniablement une des principales sources de problmes sur les projets lorsque lon interroge des parties prenantes. Tout le monde le sait et pourtant la situation continue. Dmarrer un projet avec un primtre insuffisamment dfini ou surraliste est une ineptie qui va prcipiter lquipe en charge du projet dans des difficults de tout instant.

Manque de ractivit face au changement


Entre le moment ou un projet dmarre et sa livraison, beaucoup de changements vont intervenir, cest invitable. Cet tat de fait est particulirement impactant dans des contrats de type forfait dans lesquels les intgrateurs sengagent dlivrer un primtre en sappuyant sur le fameux cycle en V, voire Waterfall (Cascade), rendant encore plus compliqu tout changement, du fait de la lourdeur des processus. Tout changement doit au contraire tre accueilli favorablement comme avantage comptitif pour le client.

Mauvaise Gestion des risques


Qui gre ses risques sur un projet ? A cette question suit inluctablement une rponse vasive. Ceci est pourtant une erreur stratgique. Chaque membre de lquipe projet est conscient des risques potentiels et pourtant, ils ne sont pas grs et simposent comme une fatalit.

Manque de communication, information dissmine


Pour faire simple, la communication est la cl de vote dun projet informatique, pour comprendre comment ce point est fondamental en projet, on parle souvent du syndrome de la Tour de Babel. La tour de Babel a t le premier grand projet de lhumanit ayant subi un chec, il y a prs de 5000 ans. Ce projet, surraliste en termes dexigences au demeurant, a chou partir du moment o les btisseurs se mirent parler des langues diffrentes et donc ne plus communiquer efficacement, la leon de cette histoire nous a dmontr la ncessit qu'ont les parties pre-

LA sOLUTIOn ALM dE MIcrOsOfT: VIsUAL sTUdIO 2010 / TEAM fOUndATIOn sErVEr 2010
La plateforme ALM Microsoft TFS 2010 fournit un ensemble doutils trs riche fonctionnellement, permettant dadresser lensemble des activits lies au cycle de vie du dveloppement dune application de la dfinition des exigences jusquaux phases de Test et Dploiement avec un support riche pour la mthodologie et la gestion de projet. Ci-contre la Roadmap fonctionnelle de lALM TFS 2010 apporte un grand nombre de fonctionnalits haute valeur pour la ralisation de projets dont :

Gestion de projet lacunaire


La gestion de projet reste un lment cl dans la russite dun projet. Cette activit va permettre

PROgrammez ! -

FVRIER

2012

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

D.R.

Qualit logicielle

Maturit ALM et Roadmap Fonctionnelle


Un support hirarchique pour les Work Items : Cette fonctionnalit permet une vritable activit de Gestion de projet avec le support dun WBS Projet (Work Breakdown Structure qui reprsente larborescence hirarchique des livrables dun projet), ceci permet par exemple de grer une arborescence de type Projet / Phase / Module / Exigence / Tche en mode CMMI ou bien User Story / Task pour un Carnet de produit en mode Agile ou SCRUM, et de se synchroniser avec un fichier MS Project ou encore avec Project Server. TFS 2010 intgre de plus un mcanisme de Roll up permettant la consolidation hirarchique de donnes horaires ou financires. Une Plateforme de Test : Avec Test & Lab Center, Microsoft propose une offre complte pour des quipes de test professionnelles, la plateforme est entirement intgre TFS 2010 et propose un client ddi aux testeurs fonctionnels avec des outils de planification de campagnes de test, un outil dexcution des tests incluant des possibilits dautomatisation et de gestion de paramtres de tests pour amliorer la productivit et la fiabilit lors de la phase dexcution. Avec cette plateforme, Microsoft adresse le syndrome bien connu de la non-reproductibilit des bugs en fournissant un mcanisme de collecte dartefacts contextuels au test qui sont tlchargs automatiquement dans les donnes lors de la cration dun bug dont : les tapes dtailles du test avec les rsultats, le Recording Video de la session de test, les donnes Intellitrace (dbogueur intelligent Microsoft) permettant au dveloppeur de connatre le code fautif avec les donnes source de lexception, la pile dappel (Mini dump mmoire) et galement des donnes de type Event Log et Informations Systme. De plus avec Lab Center, Microsoft fournit une plateforme de Provisioning denvironnement pour les tests avec des capacits de dploiement des binaires applicatifs et dexcution de tests de manire automatise unitaire ou fonctionnelle. Cette dernire fonctionnalit amliore considrablement la productivit et la qualit sur les projets car il est bien connu que le Provisioning et la maintenance denvironnements dexcution pour les tests est coteuse en temps et rptitive, tout ce que lon veut viter sur un projet. Le Support de lUML : Des cas dutilisation ou tout type de diagramme UML peuvent tre crs avec ce module et surtout on notera la possibilit de les relier nimporte quel autre artefact projet. Une Plateforme de Build : Une nouvelle version de Team Build base sur le moteur dernire gnration Microsoft Workflow Foundation 4.0 simpose comme un outil exceptionnel pour lensemble des concepts dintgration continue pour une usine logicielle. Cette nouvelle version permet en plus des options standard dAnalyse de qualit du code, dexcution de listes de tests unitaires avec le calcul de la couverture de code, de personnaliser simplement un processus de Build avec par exemple le rajout dactivits de dploiement en fin de Build ou encore la gnration de release note automatique. Program and Portfolio Management: Le produit vient en standard avec une intgration avec lEPM Project Server 2010 ou 2007 offrant des fonctionnalits de consolidation niveau entreprise pour la gestion des ressources, de Programmes et ou Portfolio au-dessus de TFS 2010 qui reprsente le suivi oprationnel projet par projet. Un des facteurs cl de TFS est un ensemble trs complet de rapports fournis en standard qui correspondent plus de 80% des besoins de Reporting. Par exemple, le rapport ci-dessous nomm Requirement Overview qui donne un vue complte du statut dun projet avec les exigences du projet gauche, et en regard, lavancement, le reste faire, le nombre de tests crits par exigence, ltat et le rsultat de lexcution des tests et les bugs ouverts et rsolus. On notera la notion de roll up des donnes du niveau exigence jusquau niveau projet. Un autre exemple de rapport est le Build Success Over Time montrant la stabilit du processus de Build avec une lgende pour le niveau de qualit de chaque Build en fonction du rsultat de la compilation mais galement des tests et de la couverture de code jour aprs jour.

Pour finir
En conclusion, la mise en uvre dune plateforme ALM adresse rellement lensemble des besoins du cycle de vie projet avec un support fort dactivits en mode Collaboratif, un socle pour la mthodologie de type Agile, Scrum ou CMMI, des fonctions de Contrle de version, la Gestion des Builds, des rapports et tableaux de bord, un centre de qualit logicielle et un ensemble doutils connects adapt aux diffrents rles prsents sur le projet, leur permettant de mieux collaborer et communiquer en partageant la mme information avec leurs outils du quotidien. Des fonctions de gouvernance niveau entreprise peuvent galement appuyer une gestion de portefeuilles projets de lidentification dune opportunit jusquau dploiement en production. Enfin, au plan technique, la plateforme ALM de Microsoft est interoprable avec diffrents types de langages et technologies permettant dlargir son primtre dadoption et surtout de rpondre aux exigences dentreprises exploitant un large panel de technologies Microsoft et non Microsoft. # Philippe Puschmann Architecte senior capability group application development, Avanade

PROgrammez ! -

FVRIER

2012

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

Visual Studio et lagilit


Visual Studio est dclin sous diffrentes versions qui permettent chacune de couvrir diffrents niveaux de ce que lon appelle la Gestion du cycle de vie dune application (soit Application Lifecycle Management ou ALM pour les intimes). La version la plus complte, Visual Studio Ultimate avec MSDN Ultimate, couvre la totalit du cycle de vie du dveloppement dune application, dmarrant de la spcification des diffrentes fonctionnalits laide de User Stories ou de Product Backlog, jusquaux tests fonctionnels des utilisateurs, en passant par des rapports sur le taux davancement de litration en cours, etc. Loffre Visual Studio 2010 est une gamme de produits qui vont permettre chaque acteur dun projet de dveloppement dinteragir avec un outil adapt
ais avant de poursuivre, il est ncessaire de dfinir et clarifier un terme rgulirement entendu/utilis concernant la gestion de projets en environnement Microsoft : Le produit Team Foundation Server (abrg TFS) est un service qui va permettre de centraliser toutes les informations manipules au travers des diffrents outils qui composent la suite Visual Studio. Il est trs commun de faire l'amalgame avec TFS et l'ALM bien que le premier soit un outil qui permet de mettre en pratique le second. Sil est possible dutiliser ces diffrents outils pour une gestion de projet classique, ceux-ci prennent tout leur sens lors quils sont utiliss pour suivre une mthodologie de type Agile. En effet de nombreuses tapes spcifiques cette dernire (dtailles tout au long cet article) y sont simplifies et optimises. La matire premire de cette mthodologie, ce sont les diffrents lments de travail (appels Work Items) qui seront manipuls tout au long du projet. Le dcoupage du projet se fera trs souvent par fonctionnalits dfinies dans des User Stories (ou Product Backlog en Scrum).

Les grands principes dorganisation de Scrum


Celles-ci seront rparties dans des itrations, chaque itration correspondant une livraison d'un lot de fonctionnalits. ces fonctionnalits seront associes des tches (Task) raliser, des cas de tests (Test cases) qui permettront de s'assurer de leur fonctionnement, ou encore diffrents bugs qui seront trouvs tout au long du cycle de vie de l'application. Le suivi du cycle de vie de ces diffrentes tches possde galement un rle important dans la prise de dcision et la priorisation des diffrentes actions effectuer. Pour cela un tableau de bord, disponible au travers d'un portail Share Point, prsente de nombreux rapports de suivis simples, auxquels sajoutent des rapports plus complexes gnrs partir d'un cube OLAP. Parmi ces derniers, on pourra trouver des rapports mettant en forme des courbes, prsentant ltat davancement des Work Items au cours des diffrentes itrations ou Sprints. Lun des plus notables et des plus connus est le rapport de Burndown qui permet de visualiser le comparatif de la courbe idale et relle de lavancement des tches dune Itration. Autre sujet trs important en dveloppement Agile: Sassurer frquemment de lintgrit des livrables produits, soit faire ce que lon appelle de lintgration continue. Pour cela, la partie Team Build de TFS se chargera de compiler et de tester rgulirement le code source du projet ( des dates prcises, voire chaque modification du code source). Cela permettra galement de livrer intervalles rguliers une version des excutables qui certes ne possdera pas toutes les fonctionnalits de lapplication finale, mais sur laquelle les clients finaux pourront mettre des critiques et vrifier les fonctionnalits. Intimement lie lintgration continue, la partie Test de TFS joue un rle important dans la vrification de la qualit logicielle et de la conformit du projet dquipe avec les attentes des clients. De nombreux outils pour faire de la modlisation, de lanalyse de code ou encore des tests unitaires permettent de vrifier le projet dquipe trs rgulirement (Ex. chaque compilation locale ou serveur). Limportance des retours clients a galement

PROgrammez ! -

FVRIER

2012

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle
t prise en compte en mettant disposition loutil Test Manager qui permet la mise en place de tests fonctionnels et facilite leur automatisation. lment non spcifique la mthode Agile, le versioning du code source est galement gr dans cette offre. les rapports du cube OLAP (exemple : Title, AssignedTo, RemainingWork, Status) Laffichage graphique de la fiche du Work Item (Affichage sous Visual Studio et web) Le workflow du Work Item : Les diffrentes manires de le passer dun tat un autre (exemple : Fermer une tche, rouvrir un Bug, mettre jour un cas de Test) Un Process Template Agile est fourni par dfaut lors de linstallation de Team Foundation Server 2010 (accompagn dun Template CMMI) et un nouveau Process Template Scrum sera disponible de base dans la nouvelle version de TFS 11 (galement disponible dans la galerie des extensions de Visual Studio) (Fig. 1). Ces deux Process Template se diffrencient principalement par leurs diffrents types de Work Items. Le Process Template Agile est inspir de la mthode Scrum mais reste plus large que ce dernier. Il sera ainsi possible dutiliser quasi nimporte quelle mthode de gestion de projet avec celui-ci. On parlera ainsi de User Story (Rcits utilisateurs) exprimant des besoins qui vont tre regroups temporellement dans desitrations. Elles contiendront des tches sur lesquelles il faudra saisir le temps pass, lestimation dorigine, etc. Le Process Template Scrum quant lui est plus spcifique la gestion de projet utilisant la mthodologie Scrum. De nouveaux types de Work Items y sont ainsi dfinis et de nouveaux rapports y font leur apparition. On parlera alors cette fois-ci de Product Backlog qui seront regroups temporellement dans des Sprints. Pour implmenter ces premiers, des lments tches seront toujours utiliss, mais cette foisci, seul le temps restant sera ncessaire.

Un outil pour les gouverner tous, et dans TFS les lier


Tous ces lments mis disposition par TFS permettent dimplmenter les bonnes pratiques de la mthodologie Agile. Mais cette mthodologie, aussi efficace soit elle, ne peut tre mise en place de manire convenable si elle nest pas bien outille, et demande ou perturbe trop les diffrents intervenants du projet. Cest pourquoi Visual Studio ALM fournit diffrents outils, adapts aux rles de chacun afin de leurs permettre daccder ces informations centralises depuis leur environnement de prdilection. La nouvelle version de Visual Studio actuellement disponible en Developer Preview, a vu son site web Team Web Access enrichi de nombreuses fonctionnalits spcifiques la gestion en mode Agile. Souvent dlaiss dans les versions prcdentes au profit du Portail dquipe SharePoint, celui-ci revient au centre de la gestion de projet dquipe et sadresse tous ses participants, incluant de nouvelles interfaces de saisies: Les Sprints (ou Itrations) y sont maintenant planifis directement coup de Drag and Drop et une notion de dbut et de fin a t ajoute ceux-ci pour contextualiser les diffrents rapports gnrs. Il est possible de spcifier le temps de travail disponible pour chacun des dveloppeurs lors du Sprint. On pourra alors y prciser le nombre de jours par semaine que chaque participant du projet y consacrera afin de pouvoir rpartir de manire la plus pertinente possible les diffrentes tches qui constitueront le Sprint. Il existe galement une interface de gestion des tches en mode Post-it, bien connue des habitus de la mthodologie Agile. On pourra tout simplement y Drag and Droper les diffrents Post-it pour leur faire changer dtat (Fig. 2). Le rapport de Burndown est dornavant disponible directement depuis le tableau de Post-It du Team Web Access. De plus, il est maintenant directement mis jour lors des modifications effectues sur les Work Items et ne ncessite plus dattendre la reconstruction quotidienne du cube OLAP. Bien entendu, le client Team Explorer pour Visual Studio, principalement destin aux dveloppeurs, est toujours de la partie. Celui-ci se voit ajouter de nouvelles interfaces dinteraction avec TFS, en plus de bnficier dun nouveau design beaucoup plus clair et intuitif.

Le Process Template (Modle de processus)


Si tous ces composants de Team Foundation Server aident la mise en place de certains processus de la mthodologie Agile, ils peuvent possder un comportement similaire ou diffrent selon le projet dquipe. Tout cela est dfini dans un groupement de fichiers XML appel Process Template. Ce dernier, qui sera diffrent suivant la mthodologie choisie, dfinira le comportement des diffrentes parties de TFS et pourra tre personnalis. On pourra ainsi y trouver les itrations du projet, les workflow de Build qui seront disponibles pour lintgration continue ou encore quelques rapports de base. Cest galement au travers du Process Template que seront dfinis les diffrents Work Items du projet. Ces derniers tant la pierre angulaire de la gestion de projet avec TFS, il est trs important dutiliser des Work Items qui sont pertinents selon la mthodologie choisie. Il sera alors possible den ajouter de nouveaux, den supprimer ou mme de personnaliser ceux dj prsents dans le Process Template de base. Les caractristiques dun Work Item se trouvent dans une Work Item Type Definition dans laquelle sont dfinis: Le nom, le type des diffrentes donnes stockes, si celles-ci doivent tre reportes dans

PROgrammez ! -

FVRIER

2012

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle
Il reste le moyen le plus complet de manipuler les diffrents lments de TFS: Gestion du code source et des Work Items, cration et visualisation des Builds serveurs, liens vers le portail dquipe et le site de Reporting, accs aux documents du site SharePoint, tout y est. Une nouvelle section nomme My Work permettra de visualiser et modifier en un clic ltat des diffrents Work Items (ex. Tches ou bugs) qui nous sont assigns. Il sera alors plus intuitif pour le dveloppeur de slectionner directement depuis Visual Studio les tches sur lesquelles il dcide de travailler, avant mme de commencer modifier le code source. Un nouveau Work Item verra galement le jour, nomm Code Review. Ce dernier facilitera lajout dun processus de revue de code lors du dveloppement du projet dquipe. Les dveloppeurs pourront alors, en lieu et place de raliser un archivage de leurs modifications de code source, dcider de crer une nouvelle demande de revue de code et dy spcifier un autre dveloppeur. Celui-ci sera alors charg de regarder, commenter puis valider le code source qui lui sera envoy. Bien videmment, les demandes de revue de code apparatront automatiquement dans la section My Work des dveloppeurs. Pour les chefs de projet, MOA, etc. le couple Microsoft Excel et Microsoft Project est toujours disponible et permet de manipuler les diffrents Work Items, Product Backlog, Tches et autres Bugs. Il est ainsi possible de sauvegarder ses feuilles personnalises et de les synchroniser volont avec le serveur TFS. Microsoft Project rajoute une couche suppl-

Un work-item dans VS Scrum 1.0


mentaire Excel : Il permet de visualiser plus facilement la planification des diffrents Work Items et introduit une notion de dpendance entre ceux-ci. Un petit nouveau fait galement son apparition dans la nouvelle version de TFS 11: la possibilit de faire du Storyboarding partir de Powerpoint. En effet, ce dernier tant initialement trs pratique pour crer rapidement une interface, il aura suffi de rajouter quelques options celui-ci pour faire de cet outil connu un outil utile pour montrer lenchanement de diffrents crans. Il sera alors possible de crer au travers de longlet Storyboarding ce que lon appelle des Shapes (Formes), de les enregistrer puis de les rutiliser travers divers crans de lapplication. Enfin, Microsoft Test manager soccupera, comme son nom lindique, de grer les diffrents aspects des tests de votre projet dquipe. Il sera toujours aussi pratique dy dfinir et vrifier des tests concernant les diffrentes fonctionnalits de votre application, puis de les automatiser au travers dune Build serveur pour viter les rgressions. Sa grande force rside dans sa capacit rcolter de prcieuses informations de la part de nimporte quel utilisateur (Enregistrements, commentaires, Work Items, etc.) Sil tait assez simple de dfinir manuellement les scnarios des diffrents cas de tests fonctionnels de votre projet dquipe, Team Foundation Server 11 apporte une nouvelle fonctionnalit appele Tests exploratoires . Ceux-ci vont permettre de tester lapplication sans scnario prdfini, puis de crer automatiquement, par exemple lors de la rencontre dune erreur, un bug ainsi quun cas de test associ. Ces derniers possderont comme scnario, afin de reproduire ce bug ou vrifier ce test, les diffrentes actions enregistres durant le test exploratoire. Une nouvelle fonctionnalit de Feedback a t mise en place. Il sera alors possible de lancer une campagne de Feedback partir de TFS et dinviter chacun des participants tester les diffrentes fonctionnalits implmentes durant un Sprint dfini puis de fournir son Feedback. Celui-ci pourra comporter un enregistrement vido voire audio, des notes crites et des Screenshots ainsi quun systme de notation de la fonctionnalit teste. Actuellement en Developper Preview, la nouvelle version de TFS met encore plus laccent sur lagilit en mettant en avant le Process Template Scrum et en fournissant des outils de plus en plus perfectionns pour chacun des membres du projet dquipe, clients et testeurs compris.

# Vivien Fabing Consultant ALM chez Infinite Square http://blogs.developpeur.org/vivien

PROgrammez ! -

FVRIER

2012

10

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

Collaboration, partage, communication: les cls dune quipe agile et de qualit


Un projet moderne doit sappuyer sur une suite logicielle capable de fournir des services la fois verticaux et transverses. Transverses, dans le sens o cette suite sert de fondation technique, de rfrentiels lensemble des outils utiliss par la ou les quipes. Verticaux, car chaque catgorie dintervenant (technique, architecture, mtier, utilisateur, direction) a accs aux fonctions et outils ncessaires pour mener bien sa mission, son travail.
Dcloisonner pour mieux travailler ensemble
Une entreprise, quelle soit grande ou petite, possde diffrents dpartements (finance, direction, commercial / marketing, informatique) avec diffrentes quipes. Encore aujourdhui, ces dpartements travaillent en silo et en communication limite avec lenvironnement. Une plate-forme ALM va contribuer dcloisonner les quipes, les personnes pour assurer le succs des projets. Sans partage, sans collaboration, le projet ira lchec ainsi que lALM. Pour cela, il faut faire travailler ensemble trois grandes entits : la demande (utilisateur, client, direction, le mtier), linformatique (quipe technique) et la partie dploiement (administrateurs rseaux, responsable projet). Cependant, noublions pas que loutillage ne fait pas tout. Il faut que les quipes et lensemble des intervenants soient sensibiliss la dmarche ALM et qualit logicielle. Or, le changement des habitudes et le cloisonnement constituent des remparts la dmarche ALM. quipes, informer, former, expliquer. Cette phase amont est cruciale car elle conditionne lutilisation de lALM au quotidien. Un projet ALM ne simprovise pas, cette approche bouleverse lorganisation des quipes et de lentreprise. Il est tout dabord important dauditer et de dfinir vos besoins, les outils dj utiliss, le patrimoine applicatif maintenir (et donc son code) induisant une future migration et de dfinir un organigramme prcis des quipes. A partir de cet audit, vous pouvez dfinir les besoins rels et moduler lALM en consquence. Il nest pas utile de dployer un ALM complet si les besoins se limitent au contrle de version, la gnration et lintgration continue. Il ne faut jamais oublier quun ALM doit tre luimme agile, cest--dire modulaire et capable de sadapter vos besoins, aux exigences de chaque projet. Dautre part, il ne se dploie pas dun coup de baguette magique, mais progressivement. Dabord sur des quipes rduites pour des projets non critiques. La monte en charge doit staler sur plusieurs mois afin que les administrateurs ALM et les quipes adoptent les outils et acquirent les nouveaux rflexes. Avec un modle trop rigide de sa qualit logicielle on prendra un risque dchec de sa plateforme ALM. Bref, une solution ALM nest pas la solution tous vos problmes, ni un objectif ultime. Un ALM ne servira rien si lorganisation, les mthodes de travail ne changent pas. Et il ne faut pas que votre ALM soit isol du reste du systme dinformation, sa russite dpend de son intgration et de la bonne volont de tout le monde!

Dveloppeurs, testeurs, utilisateurs, chef de projet, direction mme combat!


Nous avons lhabitude de dire: avoir la bonne information au bon format et au bon moment. Un ALM est comme un gros rfrentiel traitant et stockant diverses donnes. La plate-forme traite et cible les informations selon le profil du collaborateur. Ainsi, un dveloppeur aura des besoins techniques (code, description des bugs, planning des itrations, information sur les build, etc.), alors quun testeur demandera surtout le bugtrack, la traabilit des corrections, laccs aux modules de tests, une vue de planning plus haute que le dveloppeur, etc.). La collaboration entre tous les membres des quipes est donc primordiale, mme si chaque profil a son proche planning, ses propres dmarches. LALM grera en interne tout cela. La plateforme met la disposition des intervenants une communication largie: messagerie, messagerie instantane, VoIP, gestion de la prsence, partage documentaire, suivi des documents, gestion des itrations, etc. Vous devez tendre vers le cercle vertueux. # Franois Tonic

Prparer soigneusement son ALM


Avant tout dploiement dune suite de cycle de vie / qualit, il faut imprativement prparer la gestion du changement, faire participer les

A rETEnIr
Une solution de gestion de cycle de vie de lapplication doit:
fluidifier les processus, les flux de donnes, dinformation entre les quipes et chaque personne aligner le mtier / la logique business et la technique fournir la bonne information la bonne personne, au bon moment tablir un rfrentiel unique et commun tout le monde crer un cercle vertueux dans la vie du projet de lexpression des demandes la maintenance

PROgrammez ! -

FVRIER

2012

11

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

Tests unitaires, dinterface utilisateurs, de charge:


une palette doutils pour matriser votre qualit logicielle
La qualit dun logiciel passe obligatoirement par sa conformit par rapport aux spcifications. Quil sagisse de spcifications techniques ou fonctivonnelles, les crateurs de logiciels doivent garantir cette conformit, afin de dmontrer la qualit de leur production.
eureusement, les outils dont disposent les quipes projets sont de plus en plus performants, et accessibles. Nous allons passer en revue dans cet article les trs nombreuses possibilits quoffre la plateforme dindustrialisation logicielle de Microsoft : Visual Studio 2010 et Team Foundation Server 2010. Aptitudes la monte en charge: les performances sont-elles toujours conformes lorsque de nombreux utilisateurs sont connects et utilisent lapplication ? Lenjeu dune plateforme dindustrialisation logicielle est de fournir aux quipes projets une solution adapte pour tester chacun de ces niveaux, soit de manire automatique, soit manuellement. Mais la rponse la qualit ne se situe pas uniquement dans loutil! Encore faut-il aborder le test avec mthodologie, en sachant placer leffort de test sur les zones rellement risque, avec une approche pragmatique permettant de soutenir leffort de test dans la dure. Une application conforme la premire version aurait rapidement une image dtestable si les versions suivantes fourmillaient de bug La stratgie de test dune application va donc permettre de dfinir la manire dont lapplication va tre teste, en combinant les diffrents types de tests (Fig. 1).

Tester daccord, mais tester quoi?


Le logiciel doit tre conforme diffrents niveaux: Conformit des traitements : les algorithmes et les traitements sont-ils correctement implments, et les fonctions renvoient-elles le bon rsultat? Conformit des scnarios dutilisation : lenchanement des crans, le libell des messages, des boutons et des liens, la prsence et les proprits des contrles sont-elles conformes aux spcifications? Conformit de lapparence de linterface utilisateur : les couleurs et les images sont-elles correctement dfinies, les contrles sont-ils placs au bon endroit? Conformit des temps de rponses: les pages apparaissent-elles aprs un dlai acceptable?

Exemple de plan de test


la couche Business de lapplication, sous forme de mthodes de service. Chaque mthode de service peut ainsi tre valide par un test, qui consistera injecter un jeu de donnes dentre cette mthode, et de comparer la rponse de la mthode au rsultat attendu. Il sagit du principe du test unitaire, car il sintresse la seule fonction, sans soccuper de son environnement (Fig. 2). Avec Visual Studio 2010, la mise en place de test unitaire est extrmement simple. Il suffit de se placer sur la fonction que lon souhaite tester, deffectuer un clic droit, et de slectionner Crer des tests unitaires (Fig. 3). Quelques validations plus tard, un nouveau projet est ajout notre solution: il sagit dun projet de test, qui permettra de grer le code source de test de notre application. Une mthode de test a t cre, et nous navons plus qu renseigner les paramtres dentre, et le rsultat attendu (Fig. 4). Le test apparat alors dans la fentre dAffichage des tests, do il est possible de lexcuter : le rsultat est conforme (Fig. 5).

Au dbut tait le test unitaire


Le premier lment garantir dans une application est le respect des rgles de traitements. Ceux-ci sont gnralement implments dans

Les tests unitaires

Crer des tests unitaires


PROgrammez ! FVRIER 2012

Code de test unitaire

12

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle
6

Crer un test cod d'Interface Utilisateur

puis vint le test cod dinterface utilisateur


Le test des mthodes de services reprsente forcment une part importante de la qualit dune application. Cependant, il ne permet quune validation technique, trs proche du code.

public CodedUIFromHomePage() { } [TestMethod] public void CodedUIValidateAboutPath() { this.UIMap.StartApplication(); this.UIMap.ControlHomePage(); this.UIMap.NavigateAbout(); this.UIMap.ValidateAboutContent(); this.UIMap.CloseApplication(); } // ... } Lexcution de ce test va automatiquement dmarrer lapplication, et effectuer chacune des tapes dfinies lors de lenregistrement, quil sagisse dactions, ou de contrles.

La mise en place de ce mcanisme de Binding avec des donnes externes ne demande que quelques modifications dans le code gnr, et le paramtrage de la connexion la source de donnes externe.

Mise en place des tests cods dinterface utilisateur


Une nouveaut trs intressante, apparue avec Visual Studio 2010, consiste tester notre application partir de son interface utilisateur. Ce test se rapproche des tests fonctionnels, en simulant un utilisateur rel. Ces tests dUI (User Interface) vont nous permettre dexcuter automatiquement des actions pralablement apprises, deffectuer des mesures sur linterface graphique, afin de valider ou dinvalider la conformit du logiciel. Un assistant permet deffectuer trs simplement ces diffrentes oprations (Fig. 6). Au cours de lenregistrement, et du paramtrage des points de mesure, du code source est gnr dans le projet de test. [CodedUITest] public class CodedUIFromHomePage {

Performance et charge: la cerise sur le gteau!


Les tests unitaires et les tests dinterfaces utilisateurs permettent de valider la qualit fonctionnelle de lapplication. La conformit de lapplication ne se limite nanmoins pas sa qualit fonctionnelle: il faut sassurer que lutilisation restera oprationnelle, dans des conditions relles dutilisation, avec un nombre important dutilisateurs, sur une longue dure dutilisation. Pour ce faire, il existe dautres types de tests: Les tests de performance Web Les tests de charge

Paramtrage
Mieux, laide de ces tests, il devient possible dentrer automatiquement des valeurs dans des champs de formulaires. Ces diffrents jeux de donnes dentres seront stocks dans une base de donnes, ou dans des fichiers, ce qui permet dexcuter plusieurs fois un mme scnario, avec des valeurs diffrentes.

Les tests de performance Web


Les tests de performances Web ont ceci en commun avec les tests dinterface utilisateurs quils permettent dexcuter des scnarios dutilisation, en effectuant des contrles durant lexcution. La diffrence principale est que dans le cas des tests de performance Web, seuls les changes HTTP sont analyss, et non leur rendu lcran. Cest lanalyse des trames HTTP qui va permettre de contrler la conformit des retours serveur de lapplication (Fig. 7). Lun des avantages de cette mthode est sa capacit tre intgre dans des tests de charge.

Les tests de charge


Le test de charge permet de valider la capacit de monte en charge de lapplication, en excutant les diffrents tests unitaires ou de perfor-

Rsultat de test unitaire


PROgrammez ! FVRIER 2012

13

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle
7

Mettre en place d'un test de performance Web


mance, laide dun grand nombre dutilisateurs virtuels simultans. Il est possible de paramtrer le comportement des utilisateurs : temps de rflexion, alternance de scnarios, variation du nombre La dure du test de charge est paramtre, avec la possibilit de prvoir des temps de chauffe, et un temps de monte en charge. Durant ces tests de charges, diffrents compteurs tels que mmoire disponible, taux dutilisation de CPU, nombre derreurs, etc sont chantillonns, et stocks dans une base de donnes de rsultats. Lanalyse de ces rsultats se fait depuis linterface Visual Studio, qui prsente diffrents rapports graphiques ou des tableaux permettant dapprcier les rsultats des tests. Lanalyse peut se faire postriori, les donnes tant stockes dans une base de donnes (Fig. 8).

Comment y aller?
Mthodologie La mise en uvre de ces diffrents types de tests est un moyen de matriser la qualit de ses applications. Cependant, ces outils seuls ne suffiront pas: la mise en place dune mthodologie adapte est ncessaire. Cette mthodologie doit permettre: De concentrer leffort de test sur les parties les plus critiques De systmatiser le test pour chaque livraison, voire pour chaque archivage de code source

Mettre en place un test de charges


afin de dtecter au plus tt les anomalies, et y remdier. La mise en place de lautomatisation des tests devient rapidement ncessaire afin doffrir les garanties proposes par les outils. Par lutilisation conjointe de Visual Studio, et de TFS, cette automatisation des tests est facilement accessible.Vous rviez dun moyen de tester automatiquement vos applications toutes les nuits, que ce soit sur lIHM, les traitements ou les performances et la charge, de faon disposer chaque matin dune liste danomalies corriger? La plateforme Visual Studio 2010 et Team Foundation Server 2010 rend ce rve accessible, avec un cot de mise en place raisonnable. # Sylvain Gross BU Manager Western Europe chez Neos-SDI Responsable Technique Offre ALM/PLM http://www.neos-sdi.com sylvain.gross@neos-sdi.com @SylvainGrossNeo

PROgrammez ! -

FVRIER

2012

14

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

Lautomatisation de tests sous Visual Studio


Si lon compare les cycles de vie des projets informatiques de nos jours ceux dil y a une ou deux dcennies, on constate des dlais de livraison de plus en plus rapprochs, des utilisateurs finaux de plus en plus exigeants en termes de qualit, une dmultiplication des configurations soft qui doivent tre maintenant compatibles.

es systmes dvelopps sont de plus en plus complexes et la concurrence ainsi que le time to market reprsentent un danger de plus en plus pressant. Dans le mme temps les outils de test permettant dautomatiser des processus mtier ont t contraints dvoluer pour correspondre aux besoins du march Ils doivent tre orients objets, proposer une interface de programmation puissante et assiste. Dans ces conditions les problmes de reconnaissance dobjet lenregistrement comme lexcution devront tre rduits au minimum. La maintenance devra, elle, tre rduite son plus strict minimum. En suivant les mouvances mthodologiques telles que Scrum ou toute autre mthode, les outils devront donc voluer pour sintgrer dans la dmarche gnrale du cycle de dveloppement des applications. Nous assistons une recrudescence de nouveaux outils qui devront nous assister tant au niveau des tests unitaires quau niveau des tests fonctionnels utilisateurs, ou bien de performance.

Lautomatisation, un challenge relever en quipe


Nous avons pu constater, en intervenant sur de nombreux projets dautomatisation, que certaines erreurs stratgiques impactent irrmdiablement le succs de la mthode : lisolement des ressources ddies a lautomatisation. Sans une participation active de tous les acteurs dans un projet de dveloppement logiciel, le processus dautomatisation risque dtre long et de ne cibler quune partie des points importants a vrifier. Le partage idal des tches permettrait dutiliser au mieux les comptences des acteurs de la conception logicielle: Le dveloppeur pourrait valider les techniques de reconnaissance des objets, les environnements cibles des excutions, et pourrait don-

ner le support ncessaire pour dvelopper des scripts correspondant aux contenus des versions de builds et environnements cibles. Lexpert mtier pourrait intervenir dans le choix des primtres fonctionnels tester, il serait le rfrent idal pour concevoir lensemble des scnarios ainsi que la matrice des jeux de donnes utiliser Lingnieur test et recette pourrait lancer les campagnes de tests automatiques, debugger le niveau le plus simple des checs dexcution et analyser les rsultats obtenus Lexpert automatisation aurait pour rle de mettre en place un framework dautomatisation qui permettrait dagencer les cas de test, de matriser les excutions, de scripter les processus mtiers de manire modulaire et de les mettre la disposition des experts mtiers qui organiseront les scnarios. De cette manire la monte en comptence de chacun restera concentre sur les domaines matriss et ainsi la couverture des tests automatiques ne sera pas remise en question. Un rel gain de temps pourra tre alors constat lorsque chaque acteur aura particip a son laboration.

LAutomatisation par couche


Pour permettre chacun de tirer un profit maximal de lautomatisation il est indispensable den dissocier ses composantes. (voir diagramme cidessus). De cette manire chacun pourra apporter sa pierre ldifice automatique sans interfrer sur les autres composantes. Dans le cas dun changement denvironnement (donc de jeux de donnes modifier), les donnes tant stockes dans un objet indpendant du script, et le mode opratoire ayant chang, alors la couche de gestion des processus mtiers sera maintenue.

Une force de frappe adapte au besoin


Coded UI est une rponse approprie la mouvance du monde automatique. Profondment ancr dans le socle du dveloppement logiciel, Coded UI sintgre nativement aux cycles de livraison des versions logicielles produites par Visual Studio. Ainsi grce linterface de configuration de la build nous pourrons facilement lancer les package de tests automatiques correspondant aux tests denvironne-

PROgrammez ! -

FVRIER

2012

15

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle
ment, au bon fonctionnement minimum ou la non Rgression au moment ou la version est construite Les campagnes de test cibles sont aussi beaucoup plus simples dfinir grce TFS. En effet TFS permet daccder toutes les donnes cruciales du projet, il est trivial de dfinir les cas de test impacts par un changement dans le code source. Ce niveau de prcision est bien plus utile quun simple lien une exigence mtier. Cette mme fonctionnalit demande dans des outils comparables un dveloppement consquent dont la stabilit nest pas toujours toute preuve

Dun point de vue technique


La participation de tous les acteurs dune cellule de qualification logicielle outille peut tre une pierre ldifice dune campagne de tests automatise. En effet, un testeur manuel a des connaissances mtier prcieuses pour lautomaticien et il convient de les mettre profit dans lautomatisation des tests. Ce testeur manuel a donc sa disposition un client lourd lui servant de rfrentiel de tests et dassistant leur bon droulement: Visual Studio Test Manager. Ds lors quil est prt excuter manuellement ses tests, VSTS lui propose denregistrer toutes ses actions la manire des macros Word ou Excel (Fig. 1). Ds lors, son cas de test est enregistr et il peut dj se vanter: Je fais de lautomatisation de tests. Il pourra sen servir pour rejouer immdiatement son cas de test avec la ligne suivante du jeu de donnes du test et mme lors des prochaines excutions de celui-ci dans les jours, semaines ou mois venir en cliquant licne Play lors de la prochaine campagne. Ce nest pas l leur seul point commun avec ces macros Excel qui ont tant fait pour nous faciliter le travail redondant. En effet, ces actions enregistres peuvent tre rcupres sur lenvironnement de dveloppement de Visual Studio. Le code ainsi gnr est parfaitement comprhensible, retouchable, et entirement personnalisable. Cette gnration de code fait apparatre plusieurs nouveaux fichiersdans notre projet .NET: CodedUITest1.cs: contient la classe reprsentant notre Coded UI. Assure la couche mtier du test dans laquelle on va combiner les diffrents test steps pour former un test case. Elle

Fluidit dans lautomatisation


Imaginez de plus que le mme moteur permettant aux dveloppeurs de crer des objets (IHM ou autre ADO etc.) soit votre disposition pour reconnatre puis interagir avec vos applications, et ce en mode Web ou Windows front end.

Une automatisation par couche Native


Durant des annes nous avons recherch et dvelopp des solutions qui nous permettaient une dissociation entre les diffrentes composantes business, technique, Data ou scnarios, avec la solution dautomatisation de Visual studio et de par son architecture anticipe vous pourrez hberger chacune des couches dans des fichiers diffrents

Un moteur de rapport modulable et puissant


Grce aux Report services de TFS nous disposons de toutes les informations ncessaires llaboration de rapports explicites, orients mtier ou technique, et portables. Nous pourrons donc consolider les indices de qualit pour faire natre un tableau de bord facilement optimis, et si besoin, li un accs SharePoint.

assure galement la rcupration des lignes des jeux de donnes de tests depuis Test Manager. A noter que la source de donnes (Test Manager par dfaut) est modifiable vers une base SQL Server, un fichier XML, Excel, Access, txt, etc. UIMap.uitest : contient le modle XML du mapping des objets manipuls par le test. UIMap.Designer.cs: contient la reprsentation de code du fichier XML contenu dans le fichier UIMap.uitest, soit les proprits utilises pour identifier les objets de test et les mthodes captures prcdemment. Elles portent le nom des pas de tests choisis dans Test Manager. En effet, chaque test step gnre sa propre mthode unitaire afin doptimiser leur rutilisation par la suite. Ces mthodes sont galement commentes. UIMap.cs: contient les mthodes de manipulation des objets de test personnalises. Plus elles sont unitaires, plus elles sont rutilisables. Jusqu ce point, seules des manipulations automatiques dIHM composent notre test automatique. Faut-il encore vrifier le bon comportement de notre application et donc ajouter des points de vrification: lassertion. En faisant apparatre le codedUITestBuilder, on va pouvoir enregistrer de nouvelles manipulations automatiser, ajouter de nouveaux objets de lapplication notre projet afin de pouvoir les manipuler ou vrifier les valeurs de leurs proprits: ce sont les assertions (Fig. 2). Par un glisser-dplacer depuis licne cible du codedUITestBuilder sur un objet composant de lapplication tester, on va le slectionner. Alors, lui et ses proprits apparaissent. On peut ainsi slectionner un couple [proprit valeur] afin dajouter la mthode qui en vrifie le contenu (Fig. 3). En cliquant sur Add Assertion, on va choisir le modle de comparaison de la valeur: AreEqual, not equal, starts with, contains etc (Fig. 4).

PROgrammez ! -

FVRIER

2012

16

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle
Pour ajouter lassertion notre test automatis, on va gnrer le code de cette assertion (Dernier bouton du CodedUITestBuilder). Aprs avoir choisi le nom de la mthode de lassertion, elle sera ajoute la classe UIMap et lappel de cette mthode sera lui ajout la mthode globale dans le fichier CodedUITest1.cs. Nanmoins, vous pourrez dplacer lappel de cette mthode votre guise (Fig. 5). Bien que chaque test case cod dans le codedUITest soit directement excutable, on peut les combiner dans un Ordered Test pour crer et excuter une campagne complte la demande, cet ordered test devenant lui-mme un test case (Fig. 6). Sans sortir de notre sujet, on peut ajouter que lordered test peut contenir non seulement des tests case automatiss mais galement des tests de performance. TFS inclut un processus complet de build de vos applications. Sans en expliciter les dtails ici, on peut dj dire que construire une build de son application ne se rsume plus une simple compilation dun projet Visual Studio. On a aujourdhui besoin, en plus de compiler ses pages de code, de crer un numro de release, de la diffrencier en dtail de la prcdente, deffectuer toutes sortes dactions au niveau de la base de donnes, de crer une nouvelle instance de campagne de tests et beaucoup de choses encore. TFS va nous aider en fournissant un outil de configuration de build qui nous permet, une fois mis en place, de builder lapplication en un seul click mais au-del de cela, de la planifier. Mais pour revenir notre sujet, ce processus de build automatique peut imbriquer nos campagnes de tests automatiques sur la build faite et dploye. Le LAB CENTER fourni en complment nous laisse grer nos environnements pour choisir les emplacements de dploiement et mme crer la vole des machines virtuelles, y dployer nos applications buildes et jouer nos campagnes de tests automatiques et tests de performance (Fig. 7).

Bref, Microsoft fournit ici un outil puissant, simple prendre en main, conome de son temps, et complet. Imaginez: Partir du bureau le soir en ayant termin ce qui tait faire dans votre journe, et vous le savez grce aux indicateurs fournis. Votre infrastructure se met en marche pendant que vous dormez: Votre application se compile, toutes les oprations de build se font, le produit se dploie sur des VM crs au bon moment, les tests automatiss se droulent, jusquaux tests de performance. Vous arrivez le lendemain matin et trouvez les rsultats complets de qualimtrie de vos projets, que de temps gagn!!!

En conclusion
Coded UI de VSTS est donc un outil davantgarde qui peut sintgrer nativement au cycle de dveloppement de vos applications. Nhsitez pas nous contacter.

# Laurent Abid CEO, T.T.C Testing Training & Consulting Ltd Laurent@TTC-testing.com # Didier Davar Consultant Senior Dmarche outille, T.T.C Testing Training & Consulting Ltd didier.d@ttc-testing.com

PROgrammez ! -

FVRIER

2012

17

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

Planifier et organiser les tests avec Microsoft


Microsoft intgre une srie doutils de tests dans sa solution Visual Studio 2010 (Application Life cycle Management). Un processus complet de suivi des plans de test y est propos avec des solutions de collaboration entre dveloppeurs et testeurs.
Les objectifs sont de: simplifier la comprhension du besoin et du test associ, amliorer le dialogue et la visibilit entre le demandeur et le dveloppeur tout au long du cycle de dveloppement, faciliter la remonte dinformations sur les anomalies aux dveloppeurs, par exemple, avec lenregistrement vido des excutions des tests. Microsoft vise galement la dmocratisation des tests plus accessibles et conomiques. Cest une rponse aux besoins croissants des projets qui recherchent plus de qualit, de performance et une mise en production plus rapide. La capacit de supporter des processus agiles est un facteur dcisif dadoption des outils de tests de Visual Studio. Prs de 80% des entreprises affirment quavec son approche Microsoft Agile, Visual Studio est une tape stratgique vers une organisation Agile. Toutefois, cela ne signifie pas que lon peut se passer de quantifier les bnfices de lassurance qualit et des outils de test. Il est vivement recommand de mettre rapidement en place des indicateurs de qualit et damlioration du cycle de dveloppement. campagnes dexcutions, des anomalies et la dcision du Go/no Go - voir schma 1. Le pilotage et le reporting sont assurs tout au long du cycle des tests selon les indicateurs tablis. Sur la base des exigences de tests, les responsables des tests laborent un rfrentiel afin de grer leffort pour chaque itration programme. Lobjectif est ainsi davoir une vue complte sur tous les lments (les cas de tests, les configurations). Plusieurs rfrentiels de tests peuvent tre grs pour un projet donn, toutefois, afin de faciliter la capitalisation, il est prfrable de nen prvoir quun par projet. Chaque plan de test correspond une mise en situation diffrente. Il permet de dfinir les conditions spcifiques des tests tels que le nom, le contenu du plan de test, son responsable ou son tat davancement. Notons quavec la fonctionnalit Build de TFS 2010, lquipe informatique peut optimiser ou automatiser certaines tapes de lALM en vue dune mthodologie agile en acclrant la cadence de monte en production de lapplication tout en maintenant un niveau de qualit lev et en garantissant le contrle des cots (schma 2). Par o commencer? Les processus de tests et A partir dun plan de test, il est possible dexde transformation de la qualit sarticulent tou- cuter des tests manuels et dautomatiser les jours autour de mmes fondamentaux: la ges- tests en utilisant Microsoft Test Manager avec tion des exigences, du rfrentiel des tests, des Visual Studio Test Professionnel 2010 ou Visual Studio 2010 Ultimate. Quel que soit le test lanc, lutilisateur peut sauvegarder les rsultats des tests directement dans le projet dquipe sur Team Foundation Server. Cela permet de voir simultanment o en sont les Schma 2 Dfinition des Plans de test partir de Test Center de Visual Studio 2010 / Microsoft.

Schma 1 Processus de Test.

tests automatiss et les tests manuels raliss. Avec Visual Studio 2010 Ultimate, le pilotage de la correction des bugs se ralise soit avec une vision des bugs prioriss soit avec la vision de couverture des exigences de tests, puisque les anomalies et les tests sont lis aux exigences. Cela permet de concentrer son effort de correction sur ce qui est important. Le traitement des bugs est aussi aisment confi un autre utilisateur, car Visual Studio 2010 donne accs plus dinformations partages. Une fois le bug trait, il peut tre assign un testeur pour vrifier que le problme a t rgl sans incidences secondaires sur lapplication. Les utilisateurs de Visual Studio 2010 Ultimate ou Premium peuvent galement automatiser les tests de linterface utilisateur (coded UI tests). Lautomatisation des tests, qui est un projet dans le projet, permet de rejouer, volont et plus rapidement que les tests manuels, un ensemble de tests prioritaires et importants moindre cot. Dans la mesure o la maintenance de ces tests peut tre lourde, il faut dfinir le ROI et le risque du rfrentiel de tests pour choisir les lments automatiser. Cest la prochaine tape pour transformer la qualit, lefficacit et la performance du dveloppement dapplications de lentreprise tout en rduisant les cots. # Salam Elias, Responsable de lAlliance Microsoft et Directeur de projets chez Cognizant (http://www.cognizant.com). Consulter son blog: http://salam.hd.free.fr/BlogEngine/

PROgrammez ! -

FVRIER

2012

18

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

Amliorer la qualit logicielle avec Team Foundation Server 2010

Tmoignage

La socit Login Space est un diteur de logiciels dans le domaine de limmobilier (grance, syndic, location saisonnire, etc.). Lditeur fait partie des leaders dans le domaine en France.
intgr). Il est cependant possible de mettre en place efficacement ces revues en profitant de la traabilit offerte entre les Work Items (tches et bugs) et les changesets. Mettre en place ce type de revue de code est simple. Assurez-vous que lensemble des dveloppeurs associent leurs changesets avec un work item lors de leur checkin, en mettant en place une Checkin-Policy ou en en indiquant cette obligation dans les normes de dveloppement. Afin de savoir quels sont les lments rviser, crer ensuite une requte de Work Item qui permet de lister lensemble des WorkItems qui sont en tat Resolved. Pour chaque tche/bug termin/rsolu par un dveloppeur (Fig. 1). Il vous est ensuite possible deffectuer des revues de code quotidiennes en analysant le diffrentiel de code implment pour rsoudre les bugs concerns (Fig. 2). La mise en place de ce type de revue de code a cependant un inconvnient majeur: les revues de code ne sont effectues que sur du code qui est dj prsent en source control. Microsoft propose un outil nomm Microsoft Test Manager. Cet outil permet de grer des plans de tests qui contiennent des cas de tests destins vrifier le bon fonctionnement dune fonctionnalit (Fig. 3). Loutil permet denregistrer des squences dactions effectues sur linterface utilisateur afin dtre capable de les reproduire trs rapidement sans avoir effectuer de manipulations manuelles. Ceci implique que le rsultat final doit toujours tre vrifi manuellement par le testeur en fonction des indications fournies par loutil (Fig. 4). Afin darriver effectuer automatiquement les vrifications (les asserts) il est ncessaire dutiliser Visual Studio afin de gnrer un Coded UI Test partir du cas de test auparavant enregistr. Celui-ci va gnrer le code ncessaire lexcution du test, et va permettre dcrire (ou de gnrer) le code ncessaire la dfinition de lAssert. A noter que la dfinition de tests UI ne se fait pas aussi idalement quon le souhaiterait. Il est fort probable que les dveloppeurs aient revenir sur le code XAML de lapplication pour ajouter diffrentes informations telles que la proprit Name si elle est manquante par exemple. De plus, si la cration dassertions peut tre trs simple dans certains cas, il nest pas rare quil soit ncessaire dcrire diffrents outils pour simplifier lcriture de celles-ci. Je peux vous recommander la suite doutils de Jonathan Antoine dans ce domaine: http://bit.ly/xRBNL9 # Patrice Lamarche Leader Technique (Login Space)

vec une gamme existante de logiciels dvelopps dans des technologies comme Cobol et 4D, la socit a fait le choix stratgique de redvelopper la gamme de logiciels avec les technologies .net, en utilisant entre autres, des technologies comme WPF pour proposer une ergonomie originale et efficace, et WCF pour lexposition de la logique mtier et daccs aux donnes sous forme de services. Afin dencadrer le dveloppement de lapplicatif, le choix de Team Foundation Server a t fait afin de profiter de ses diffrentes fonctionnalits et de son intgration au sein de Visual Studio. Nous vous proposons au travers de cet article de vous prsenter deux lments mis en oeuvre pour amliorer la qualit de nos produits grce TFS 2010.

Les revues de code technique


En plus des sessions de pair programming qui permettent de partager des points de vue sur la manire dcrire du code, mettre en place des revues de code permet de sassurer que le code checkin est correct, quil ne comporte pas de potentiels bugs, quil respecte les normes de dveloppement, etc. Visual Studio 2010 ne propose pas de fonctionnalit permettant de mettre en place de manire naturelle ce type de revue de code (la prochaine version corrigera ce dfaut en proposant un outil de revue de code

La mise en place de tests UI


La mise en place de tests est fondamentale pour parvenir amliorer la qualit dun projet, rduire le risque de rgressions et travailler sereinement. La mise en place posteriori de tests unitaires et de tests dintgration peut tre assez complexe et coteuse en temps. Une premire tape assez simple mettre en uvre est dautomatiser les tests manuels. Pour cela

PROgrammez ! -

FVRIER

2012

19

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

Intgration continue et tests avec TFS Lab Management


Sur ma machine, a fonctionne pourtant . Impossible de reproduire ce bug . N'avez-vous pas dj entendu ces phrases dans vos projets de dveloppement ? Avec leur complexit croissante, les outils d'ALM apportent de nouvelles solutions pour assurer une forte qualit logicielle 1 traable et automatise. Team Foundation Server propose la fonctionnalit Lab Management afin de faciliter la reproduction des bugs, l'automatisation des tests et des dploiements ainsi que le suivi de la qualit. Dans cet article, nous verrons comment le mettre en place puis son utilisation et ce qu'il peut nous apporter.
Infrastructure et dploiement
La rticence dployer Lab Management dcoule essentiellement de la complexit de son infrastructure. Pour grer les environnements virtuels des projets dquipe, TFS requiert un serveur System Center Virtual Machine Manager 2008 R2. On peut rsumer trs synthtiquement SCVMM comme un centre de contrle pour hyperviseurs. Avec la mouture actuelle, vous pouvez grer de manire agrge le dploiement et la maintenance de machines virtuelles rparties sur plusieurs htes aussi bien Hyper-V que VMware, par une interface graphique ou avec du PowerShell. Cet article na pas pour but de dtailler le dploiement dun SCVMM mais il faut savoir que cest en lui-mme un projet part entire. Quand on ouvre les proprits de Lab Management dans la console dadministration de TFS, on constate quon ne peut rien faire tant que la Console dadministration de SCVMM na pas t installe. (Fig.1) Il faut donc linstaller depuis le disque/iso dinstallation de SCVMM et sassurer que le compte de service de TFS dispose du rle administrateur dans SCVMM. Une fois ceci fait, on peut commencer configurer les options de base de Lab Management, savoir rfrencer le serveur SCVMM par son nom complet puis les paramtres disolation rseau. Lisolation rseau permet TFS dinstancier des VM sans polluer le rseau existant mais aussi davoir plusieurs environnements dun mme projet en mme temps (pour plus de dtails : http://msdn.microsoft.com/en-us/library/ ee518924.aspx#NetworkIsolationChecklist). Il y a plusieurs choix de topologies possibles mais qui ont des complexits diffrentes en fonction de linfrastructure existante. Aprs avoir configur les bases au niveau global TFS, il faut maintenant configurer plus spcifiquement au niveau de chaque collection de projets (Fig.2). Ces options sont le cur du Lab Management puisque cest ici que lon va configurer les bibliothques de VM, les groupes dhtes (hyperviseurs) sur lesquels elles seront dployes et le compte de service de workflow qui sera utilis pour les builds et les tests. Lintrt des groupes dhtes est que lon na pas se soucier de savoir o sont places les VM : SCVMM le fait pour nous en calculant, daprs les prfrences tablies par ladministrateur, lhyperviseur le mieux not pour la tche en question. On profite l de la premire itration des outils MS pour le Cloud priv appliqu au dveloppement. Lintrt que ces paramtres soient au niveau collection de sites rside bien entendu dans le fait de pouvoir avoir diffrentes configurations. On peut ainsi avoir une collection de projets prioritaires qui bnficiera dhyperviseurs plus vloces et de VM avec plus de ressources par rapports aux projets moins importants. N.B.: actuellement, TFS 2010 ne supporte pas les htes en cluster pour le provisionnement automatique des VM MAIS il fonctionne parfaitement pour des VM provisionnes et configures manuellement ou avec VM prep tool . Afin de pouvoir dispatcher les tests automatiss, on doit installer un contrleur de tests, idalement sur un serveur ddi, provenant du mme disque que les agents. Linstallation et la configuration est trs simple et la capture (Fig.3) parle delle-mme. Enfin, pour avoir une configuration supporte et bnficier des dernires fonctions de TFS, il faut installer un hotfix disponible ladresse suivante: http://support.microsoft.com/kb/983578.

Utilisation de Test Manager


Maintenant que la plateforme est mise en place, on ne va pas se priver dutiliser lensemble des fonctionnalits offertes par le Lab Management! Loutil au cur de lutilisation du Lab Management est le Test Manager. Si vous avez dj lhabitude de dfinir des plans de test, vous avez dj eu affaire lui. Difficile de choisir par quoi commencer, loutil est vraiment complet et rpond aux problmatiques rencontres le plus frquemment au cours de la vie dun logiciel. Nous allons aborder les plus courantes et voir comment le Lab

PROgrammez ! -

FVRIER

2012

20

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle
3 2

Management, coupl au reste de la plateforme TFS bien videmment, y rpond. Je dois tester le dploiement de mon application sur diffrents environnements cibles Sans le Lab Management, on est oblig de grer soi-mme les machines sur lesquelles on dploie lapplication et cela devient vite fastidieux si on doit couvrir un nombre important de systmes dexploitation. Avec, tout devient plus facile: Commencez par crer travers SCVMM autant de machines virtuelles que denvironnements diffrents sur lesquels vous souhaitez tester le dploiement de votre application. Installez galement les agents de Build TFS 2010, tests et lab sur chaque machine. Faites un snapshot sur chaque environnement une fois que vous avez install tous les prrequis ncessaires votre logiciel. N.B.: pour simplifier ces tches, un outil existe: VM prep tool disponible ici: http://archive.msdn.microsoft.com/vslabmgmt Stockez ensuite ces VM dans la librairie de SCVMM. Vous aurez le choix entre les stocker telles quelles ou les enregistrer en tant que template. Vous choisirez la deuxime option si vous avez besoin dinstancier plusieurs fois une mme VM pour vos tests. Importez dans votre projet TFS les VM dont vous avez besoin partir de SCVMM. Cela se passe dans le Test Manager. Notez qutant donn que les VM sont stockes dans SCVMM, une seule VM peut tre rutilise dans plusieurs Team Projects. Crez un environnement (toujours via Test Manager) contenant toutes les VM sur lesquelles vous souhaitez dployer votre application.

Crez une build utilisant le template LabDefaultTemplate.xaml . Dans longlet Process vous aurez accs un wizard de configuration vous permettant de slectionner lenvironnement prcdemment cr. Il ne vous manque plus qu indiquer quelles lignes de commande vous souhaitez excuter sur chaque VM de votre environnement afin de dployer les diffrents composants de votre application. Vous pouvez maintenant lancer votre build et observer les rsultats pour contrler le bon dploiement de votre application sur les diffrents environnements. On vient de voir rapidement lautomatisation du dploiement dune application sur diffrents environnements cibles. Cela peut paratre un peu long mettre en place, cest vrai linitialisation, mais vous gagnez: Lautomatisation du dploiement de votre application, peu importe les modifications de code Lvolution simple de vos environnements cibles (il suffit de changer les VM de votre environnement) La possibilit de vous connecter sur les VM une fois lapplication dploye pour effectuer des tests Les possibilits en termes de paramtrage des environnements et des build de dploiement sont immenses. Le template de build fourni par dfaut peut tre modifi (comme tout template de build). Vous pouvez grer finement les paramtres rseau des VM : fonctionnement dans un rseau isol, interaction avec le rseau de lentreprise). Tout a t prvu pour permettre la dfinition des environnements correspondant au contexte rel de votre application, aussi complexe soit-il. Cela est dj intressant mais on peut aller beaucoup plus loin.

Je veux tester mon application sur diffrents environnements cibles Dployer son application automatiquement, cest un bon dbut mais cela ne garantit pas quelle fonctionne. Allons un peu plus loin dans lautomatisation et rajoutons des tests tout cela. La plus grosse partie du travail se passe dans loutil Test Manager. Si vous tes dj familiaris avec la cration de plans de test vous naurez aucune difficult dfinir lensemble des tests que vous souhaitez excuter de manire automatise. Il vous faut en effet dfinir un plan de test compos de suites de tests composes elles-mmes de cas de tests (automatiss ou non). Une fois que vos plans de test sont dfinis, il ne vous reste plus qu les associer la build qui effectue dj le dploiement de lapplication. En relanant le wizard de configuration voqu prcdemment et en suivant ltape Test vous pourrez slectionner les plans/suites de tests/cas de tests que vous souhaitez excuter. Voil, votre build qui dployait votre application excute dsormais les tests automatiss dans la foule. Les rsultats sont consultables via le rapport de build ou dans le Test Manager en consultant les rsultats des plans de test. Les tests excutables de cette manire sont: Les tests unitaires Les tests web Les tests cods dUI
Cest bien me direz-vous mais comment fait-on pour les tests manuels? Rien de plus simple en utilisant les options fournies. On peut en effet indiquer notre build qui dploie puis teste lapplication de faire un snapshot de lenvironnement aprs avoir dploy

PROgrammez ! -

FVRIER

2012

21

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle
lapplication et avant davoir excut les tests. En passant par le Lab Center nous pouvons accder notre environnement virtualis et dcider de restaurer le snapshot cr par lexcution de la build puis nous connecter lenvironnement. Nous nous trouvons donc sur notre environnement cible sur lequel la version de lapplication que nous voulons tester est installe. Il ne reste plus qu lancer le Test Center depuis cette mme machine, de parcourir le plan de test concern, de slectionner le cas de test manuel drouler et de cliquer sur Run. Nous sommes donc en train dexcuter un test manuel dans les mmes conditions que les tests automatiss qui ont t dclenchs par la build. Petite cerise sur le gteau, si jamais vous dtectez une anomalie lors du test manuel, vous pouvez prendre un snapshot de lenvironnement. Un lien vers ce snapshot sera alors automatiquement ajout lorsque vous crerez le bug associ au cas de test manuel. Le partage de snapshot peut aussi se faire en exportant un fichier .lvr qui peut tre envoy par email un autre collaborateur (Fig.4). Ce fichier ne contient quune simple ligne de connexion (ex CommandUrl=levr://ConnectTo FwdLink?CollectionURI=http://srv-tfs2010labs: 8080/tfs/DefaultCollection&ForwardLink=1 ). Cela permet la personne en charge de la rsolution du bug de constater ce qui sest produit et de pouvoir analyser les logs systme et applicatifs gnrs pas votre test (Fig.5). Comme cela, fini le souci du chez moi a marche qui ne fait pas avancer la rsolution du bug. Vous pouvez tester directement dans les mmes conditions que la personne qui a dtect lanomalie.

Conclusion
Nous avons vu dans ces quelques pages une prsentation rapide de Lab Management dans TFS mais il faudrait un livre entier pour rellement tre exhaustif sur le primtre fonctionnel de l'outil. Pour des projets consquents et, avec de l'investissement en assurance qualit, le TCO arrive rester modr.

Qu'en est-il de l'avenir ?


Les gammes System Center 2012 et TFS 11 sont dores et dj en prversions publiques et apporteront leurs lots d'amliorations. Concernant Lab Management vNext, Brian HARRY, le pre de TFS, a dj annonc qu'il serait plus simple mettre en place en ne ncessitant plus d'tre intgr un SCVMM

pour fonctionner (http://blogs.msdn.com/b/bharry/archive/2011/10/31/lab-management-improvements -in-tfs-11.aspx). Les projets pourront ainsi tre dploys et tests sur des machines physiques existantes qui auront t configures en consquence. Bien entendu, pour des infrastructures plus consquentes, l'outil pourra exploiter SCVMM 2012. Il n'y a, l'heure o ces lignes sont crites, aucune annonce sur les volutions prvues sur ce point. On espre que les clusters d'hyperviseurs et les clouds privs pourront tre intgrs avec TFS. Comme pour tous les dploiements, vous devez vous demander sil est prfrable dattendre avant de mettre en place les vNext. La rponse dpend de la volumtrie mettre en place. Une forte volumtrie (plusieurs dizaines voire cen-

taines de VM) impliquant un projet dune dure suprieure ou gale 10/12 mois pourra justifier dattendre.

Liens utiles
Utilisation d'un lab virtuel pour le cycle de vie de votre application : http://msdn.microsoft. com/fr-fr/library/dd997438.aspx Le blog dquipe de Lab Management (en anglais): http://blogs.msdn.com/b/lab_management/ Les vidos dapprentissage MSDN (en anglais): http://msdn.microsoft.com/en-us/vstudio/gg537361#lab # Pierrick Catro-Brouillet Expert SharePoint et Infrastructure, Winwise http://blogs.developpeur.org/spbrouillet # Cdric Noureau Consultant/Chef de projets, Winwise

PROgrammez ! -

FVRIER

2012

22

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

Aperu de la prochaine version


Collaboration, agilit, gestion du cycle de vie, tests, quatre piliers essentiels qui sont aujourdhui les fondations de TFS et de Visual Studio. Microsoft travaille activement la prochaine version de Visual Studio.

a philosophie demeure identique: couvrir toujours mieux le cycle de vie, amliorer le travail dquipe, mettre des interactions toujours plus efficaces. Voyons ensemble quelques lments de cette prochaine version. Pour cette future version, les quipes Microsoft ont concentr leur travail sur quatre lments: collaboration : concentrer les flux entre les membres des quipes en valorisant ce que ces flux peuvent apporter aux collaborateurs feedback actionnable: il arrive quun commentaire, un retour utilisateur soit ncessaire lquipe pour corriger, modifier des lments dun projet. Mais comment faire concrtement ? Lide est de pouvoir utiliser directement le commentaire. Par exemple, un testeur pointe un dfaut de dveloppement, il

TFS prend le virage cloud!


Dvoil officiellement en septembre 2011, Team Foundation Server sur Windows Azure (prversion) est un portage TFS sur la plateforme Windows Azure de Microsoft. Il sagit dun service hberg TFS. En quelques minutes, il est possible de mettre en place un projet et surtout de disposer dun TFS sans avoir besoin de le dployer localement. Si lheure actuelle, ce TFS nest pas complet, il propose tout de mme des fonctions trs compltes: contrle de source suivi des work item gestion des projets agiles (nouveaut de TFS 11) outils de tests automatisation des builds TFS pour Windows Azure se veut ouvert et peut sinterconnecter avec Visual Studio 11, Team Explorer Everywhere, VS 2010 et Test Professional 2010. Le dmarrage se droule en trois grandes tapes: 1 - URL du compte pour accder son TFS Azure 2 - cration de lquipe projet 3 - installation des clients ncessaires pour connecter lquipe TFS

devrait pouvoir agrmenter son commentaire de vidos, images, informations prcises sur la configuration, un log Intellitrace. Bref, tout ce qui serait utile aux dveloppeurs pour rsoudre, corriger un problme. Les styles de travail : adapter les meilleurs outils pour les diffrents membres des quipes. Car les attentes, les besoins dun dveloppeur, architecte, testeur ne sont pas identiques et leurs manires de travailler sont parfois trs diffrentes. Processus agiles transparents : que toute lquipe travaille sur une source unique vrifie et quon puisse avoir tout moment lexacte situation du projet, des tches, des sources.

Une collaboration toujours plus fluide


vNext doit supprimer toutes les petites choses qui dtournent testeurs, dveloppeurs et lensemble des quipes de leurs tches, du projet. Il sagit aussi damliorer les flux dinformations entre les utilisateurs et lquipe et entre le Product Owner (Scrum) et les utilisateurs. Cela passe par une transparence dans les flux, la planification. Il sagit aussi de pouvoir rcolter et utiliser les commentaires, les retours utilisateurs

le plus rapidement possible et de les utiliser immdiatement. Pour le dveloppement, il sagit daugmenter lassurance qualit par une amlioration du code, de la revue de code, des frameworks de tests unitaires, dans lexploration des tests et des tches au quotidien. Parmi les nombreuses nouveauts (voir page suivante), le lab management sera plus simple utiliser et mettre en uvre. Pas la peine de disposer dun serveur Hyper-V et de System Center Virtual Machine Manager. Un simple serveur (virtualis ou physique, avec tous les lments ncessaires) sera requis! Et a, cest une super nouvelle! Les prversions VS 11 et TFS 11 sont disponibles en tlchargement. Enjoy!

Ressources
Site officiel : http://www.microsoft.com/visual studio/en-us/roadmap Blog en Franais pointu sur le sujet: http://blogs.developpeur.org/etienne/ Blog sur Lab Management: http://blogs.msdn.com/b/bharry/archive/2011/10 /31/lab-management-improvements-in-tfs-11.aspx # Franois Tonic

PROgrammez ! -

FVRIER

2012

23

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Qualit logicielle

Les principales nouveauts VS 11 sur le cycle de vie


GEsTIOn dEs ExIGEncEs LGrE
Afin de pouvoir grer de manire simple et rapide les exigences on aura un plugin pour Powerpoint permettant de rapidement crer une maquette de lapplication. Lavantage, outre le fait que Powerpoint est un outil familier, est, quune fois la maquette finie (ou suffisamment avance), on dispose automatiquement dune prsentation simple et efficace permettant de rcuprer des commentaires des stakeholders (intervenants) onglet ddi au feedback pour permettre une meilleure communication entre quipe de dveloppement et les intervenants. mework prfr nest pas un de ceux-l, pas de problme, Microsoft a prvu un point dextensibilit permettant qui le veut de rajouter le support dun autre frameworkr

PLAnIfIcATIOn AGILE

TEsTs ExPLOrATOIrEs
Il arrive que certains bogues soient trouvs en dehors de lexcution des tests de recettes. On parle alors de tests exploratoires o lutilisateur est libre de ses actions et peut ainsi dcouvrir des bogues lors dun scnario non prvu. Il est souvent difficile dans ce cas de reproduire le bogue. Pour amliorer cela, la prochaine version de Visual Studio va supporter ce type de test en proposant un Test Runner libre (sans tape). Comme pour le test runner classique, les donnes et actions de lutilisateur seront enregistres.

cOMMEnTAIrEs/rETOUrs dEs sTAkEhOLdErs


Le maquettage dans Powerpoint permet un premier feedback avant le dveloppement de lapplication. Afin de permettre dobtenir du feedback lors du dveloppement, Microsoft va proposer un outil se basant sur le TestRunner de VisualStudio Test Professionnal 2010. Une fois lanc, loutil collectera des donnes (vido, son, actions) pendant que lutilisateur se servira de lapplication. Il pourra tout moment faire un commentaire qui se traduira par la cration dun work item dans TFS contenant lensemble des donnes collectes. Au niveau du web access on retrouvera aussi un

Les mthodologies Agile sont de plus en plus utilises. Microsoft a donc revu son interface web access pour simplifier la partie planification. On va donc retrouver : Une gestion du product backlog avec possibilit de rordonner facilement les items par glisser/dposer. La gestion de la capacit directement dans linterface web (il fallait passer par les workbooks Excel en 2010) Un taskboard afin de suivre et mettre jour par glisser/dposer le statut des work items. Comme vous pouvez le voir aussi sur ces captures dcran, le style complet du site web access a t repris pour suivre les guidelines METRO. Lutilisation de METRO, du HTML et dAJAX font que le site est trs ractif et devient vraiment utilisable au jour le jour.

InTGrATIOn AVEc sysTEM cEnTEr


Afin de supporter les interactions avec les oprations, Microsoft va fournir un nouveau connecteur pour System Center Operation Manager afin de pouvoir crer des work items dans TFS directement depuis SCOM lorsquun problme intervient en production. Pour tous les fans de lIntelliTrace, sachez que Microsoft prvoit de fournir une version pour la production !

MEILLEUrE ExPrIEncE UTILIsATEUr


Dune manire gnrale, longlet Team Explorer de Visual Studio va tre repris et devenir un Team Navigator. Il sera plus simple de voir les informations et cela apportera une grande nouveaut : la gestion du contexte de travail. Questce que cest ? Lorsquun dveloppeur voudra travailler sur une tche, il indiquera via linterface quil commence travailler dessus. Visual Studio pourra alors suivre les modifications qui sont faites et les liera la tche en cours. Si le dveloppeur doit changer de tche (pour corriger un bogue par exemple), Visual Studio prendra lensemble du contexte en cours et le sauvegardera en le liant la tche. Lutilisateur pourra ensuite travailler sur autre chose et lorsquil indiquera quil reprend son travail sur la premire tche, son contexte sera automatiquement restaur ! # Guillaume Rouchon Wygwam http://blog.qetza.net/fr/tag/team-foundation-server-vnext/

TEsTs UnITAIrEs cOnTInUs


Lutilisation des tests unitaires nest plus dmontrer. Par contre dans la pratique cela peut tre contraignant car il faut penser les excuter, en fonction du nombre, cela peut prendre du temps etc. La prochaine version de Visual Studio apportera plusieurs amliorations: Linterface de tests a t revue afin de faire ressortir ce sur quoi le dveloppeur doit se concentrer. Les tests sont aussi maintenant excuts en permanence en tche de fond. Lexplorateur de tests unitaires supportera de nouveaux framework de tests !! On retrouvera en plus de MSTest, NUnit et XUnit. Si votre fraFVRIER 2012

PROgrammez ! -

24

S U P P L M E N T T E A M F O U N D AT I O N S E R V E R

Das könnte Ihnen auch gefallen