-->

jeudi 13 mars 2014

Ajouter les Test Case au Scrum Board TFS


Description de la problématique

Dans un contexte Scrum avec des équipes délocalisées, il est important d'avoir un outil qui centralise les informations et qui permet d'avoir une vision global du Sprint en cours.
Le Scrum Board de TFS est de base trop restrictif, il faut donc personnaliser le Task Board afin de répondre au mieux à nos besoins.
Dans le cadre de cet article, nous allons voir comment intégrer les Test Case (et les colonnes correspondantes)au Board afin de pouvoir tout gérer depuis le Web Portal.

Voici à quoi ressemble le Scrum Board de base dans TFS 2013 (3 colonne et uniquement des Tasks)

Objectif: Intégrer les Test Case au Scrum Board, ajouter des statuts au Scrum Board, assurer le changement de statut par glisser déposer.

NB: avant de faire les modification des fichiers Xml, assurez vous de garder une copie des originaux au cas ou il faudrait revenir en arrière.


Etape 1: Ajouter les champs requis au Test Case
Prérequis: Avoir les permissions admin sur le team project

1- Ouvrir une commande Windows en tant qu'administrateur puis naviguer vers le bon répertoire:
cd %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE
2- Exporter le fichier xml du test case
Witadmin exportwitd  /n:"Test Case" /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:"MyProject" /f:"c:\temp\testcase.witd.xml"
3- Ajouter les champs Activity et Stack Rank qui sont obligatoire afin que le Scrum Board ne plante pas au lancement. (Vous pouvez égalment ajouter des champs optionnels comme RemainingWork par exemple)
<FIELDS>
. . .
   <FIELD name="Activity" refname="Microsoft.VSTS.Common.Activity" type="String" reportable="dimension">
      <HELPTEXT>Type of work involved</HELPTEXT>
         <SUGGESTEDVALUES>
            <LISTITEM value="Testing"/>
         </SUGGESTEDVALUES>
   </FIELD>
   <FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension">

   </FIELD>
. . .
</FIELDS>
4- Ajouter les champs dans l'affichage des test case (FORM) par exemple sous "Assigned To"
<FORM>
. . .
  <Group Label="Status">
              <Column PercentWidth="100">
                <Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&amp;gned To" LabelPosition="Left" />
                <Control FieldName="Microsoft.VSTS.Common.StackRank" Type="FieldControl" Label="Stack Rank" LabelPosition="Left" />
                <Control FieldName="Microsoft.VSTS.Common.Activity" Type="FieldControl" Label="Activity" LabelPosition="Left" EmptyText="&lt;None&gt;" />
              </Column>
  </Group>
. . .
</FORM>
5- Importer le nouveau fichier de définition des test case
Witadmin importwitd  /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:"MyProject" /f:"c:\temp\testcase.witd.xml"

Etape 2: Ajouter le Test Case dans les Task Category
1- Exporter le fichier xml des Task Category
witadmin exportcategories /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:"MyProject" /f:"c:\temp\categories.xml"
2- Ajouter Tast case dans les Task Category
<CATEGORY refname="Microsoft.TaskCategory" name="Task Category">
    <DEFAULTWORKITEMTYPE name="Task" />
    <WORKITEMTYPE name="Test Case" />
</CATEGORY>
3- Importer le nouveau fichier des Task Category
witadmin importcategories /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:"MyProject" /f:"c:\temp\categories.xml"

Etape 3: Modifier les statuts possible pour les Test Case afin de correspondre au statut des colonnes (et des tasks) et de pouvoir effectuer les drag and drop directement dans le board

1- Il faut remplacer les statuts de base de la manière suivante: (soit en modifiant directement le fichier Xml "testcase.witd.xml", soit en utilisant les PowerTools de TFS que je vous recommande)
    1. Design -> To Do
    2. Deleted -> Removed
    3. Passed -> Done
2- Dans notre contexte, nous avons rajouter une colonne Failed mais cela n'est pas obligatoire, vous pouvez personnaliser votre workflow comme bon vous semble du moment qu'il n'y a pas de conflit entre les statuts des Task et des Test Case (voir ci-dessous un exemple de workflow des test case  que nous utilisons sur nos projets)


Etape 4: Modifier le Xml du process afin d'ajouter les colonnes dans le Board
1- Exporter le fichier de config du process
Witadmin exportprocessconfig  /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:"MyProject" /f:"c:\temp\processconfiguration.xml"
2- Modifier les statuts dans le bloc TaskCategory (ce sont ces statuts qui sont utilisés pour les colonnes), dans notre contexte, on rajoute les statuts Ready et Failed.
<States>
      <State type="Proposed" value="To Do" />
      <State type="InProgress" value="In Progress" />
      <State type="InProgress" value="Ready" />
      <State type="InProgress" value="Failed" />
      <State type="Complete" value="Done" />
 </States>
3- Importer le fichier de config modifié
Witadmin importprocessconfig  /collection:"http://MyServer:8080/tfs/DefaultCollection" /p:"MyProject" /f:"c:\temp\processconfiguration.xml"

Conclusion
Vérification que l'on peut voir et ajouter des Test Case depuis le Scrum Board, un rafraichissement de la page peut être nécessaire.


NB: Attention, les Test Case devront être saisis en tant que lien de type "Child" du PBI pour les voir sur le Scrum Board et non en tant que "Tested by"

Et voici le résultat obtenu, avec bien sur les restrictions en fonction de l'item:
Task: utilise seulement les statuts To Do, In Progress et Done
Test Case: Utilise seulement les statuts To Do, Ready, Failed, Done

Aucun commentaire:

Enregistrer un commentaire