Beruflich Dokumente
Kultur Dokumente
Supplment
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
GAMME
A vous de choisir! ......................................................................................................3
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:
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:
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
Oui Oui Oui Oui Oui Oui
Oui Oui Oui Oui Oui Oui
Oui Oui Oui Oui Oui Oui Oui
Oui Oui Oui Oui Oui Oui Oui
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
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
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 :
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
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
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.
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-
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
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
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
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.
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.
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
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
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
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.
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.
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
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
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
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.
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
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.
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
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
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.
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
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.
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.
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