Services collaboratifs
- PARTAGE
- Evento
- Guide utilisateur
- Tutoriels
- Notes de version
- Filesender
- RENAvisio
- Rendez-vous
- Sourcesup
- Universalistes
Après le développement d'un logiciel, il est de nos jours indispensable de le tester afin de voir s'il répond au besoin demandé. Une série de tests est donc nécessaire pour s'assurer que les fonctionnalités du logiciel marchent. Dérouler des campagnes de tests permet de mettre au jour les défaillances d'un logiciel, qu'elles fonctionnelles ou bien structurelles.
TestLink est une plateforme web permettant de gérer les cas de tests d'un projet. Cet outil hébergera les différents tests a exécuter, sur quel version de l'application il faudra les passer, et gardera un historique des résultats, permettant ainsi de voir l'évolution de la conformité et l'intégrité de l'application. TestLink est interfacé avec SourceSup et Mantis. Si le résultat d'un test est 'échec' et qu'une anomalie est créée sous Mantis, il sera possible de lié l'exécution du cas de test avec le bug sous Mantis.
L'interface de TestLink n'est pas simple à prendre en main, elle comporte beaucoup de menu permettant de manipuler les nombreux objets de l'outils. Nous allons les détailler dans la partie suivante.
Mantis est un tracker de bugs web, permettant de créer des anomalies, avoir un suivi dessus, les affecter à des développeurs pour correction. La gestion des évolutions d'un projet peut aussi être effectuée avec Mantis. Mantis est interfacé avec SourceSup et TestLink. Mantis pourra par exemple récupérer la liste des versions définies sur la forge, qui serviront pour la création d'une anomalie.
Mantis possède une interface claire, simple à manipuler pour créer un bug ou une évolution. Elle présente par défaut un tableau de bord à l'utilisateur lui synthétisant ses bugs qui lui sont affectés, les anomalies qu'il a pu saisir, cela sur les différents projets auxquels il a accès.
Cette partie présente comment utiliser les outils TestLink et Mantis, en passant par la forge SourceSup. Le but est qu'un utilisateur comprenne leur fonctionnement soit capable de les utiliser de manière autonome.
- permet de créer des versions pour un projet
La forge possède un gestionnaire de version qui permet de regrouper les releases au sein de paquets. Nous allons créer un paquet concernant la version 1.0 de notre application. Pour cela nous allons avoir besoin d'une archive de notre code.
# cd /opt/ # tar -cvf form-svn-XXX.tar.gz form-svn-XXX
La création d'un projet TestLink ou Mantis se fait depuis l'interface SourceSup. Chaque projet sur la forge a la possibilité d'être lié à un projet sur les outils TestLink et Mantis. Seul l'administrateur d'un projet SourceSup a les droits pour demander la création de ces projets. Les utilisateurs de la forge n'ont pas besoin de se créer des comptes utilisateurs sur ces outils, un compte sera créé automatiquement, les utilisateurs seront ainsi authentifiés directement sans avoir besoin de rentrer un login/mot de passe, s'ils sont bien authentifiés sur la forge.
Une fois les projets sous TestLink et Mantis créés, il reste à synchroniser les utilisateurs de la forge vers ces outils et leur affecter des rôles en fonction de ceux qu'ils possèdent sur leur projet SourceSup. Si un utilisateur est administrateur d'un projet SourceSup, il sera alors synchronisé comme administrateur d'un projet Mantis. Ce processus permet d'avoir une gestion des rôles des utilisateurs en un seul point, puis de transmettre ces permissions vers les différents outils.
Maintenant que le projet TestLink est créé et que les droits sont correctement positionnés, nous allons pouvoir initialiser les différents objets nécessaires à l'exécution des tests de notre application.
Une séquence de tests est une catégorie et sert à regrouper les cas de tests validant le même composant fonctionnel. Par exemple, pour tester la création d'un objet “personne” via un formulaire, nous pouvons avoir une séquence de tests “création d'une personne”. Il est aussi possible de créer des sous séquences de tests afin de regrouper les tests de manière plus précise.
Test création des personnes
Ensemble de tests permettant de tester la conformiter du formulaire de création des personnes
Une nouvelle séquence de tests apparait maintenant dans l'arborescence à gauche de l'application.
Un cas de test est un situation à tester. Il est composé des pré-conditions à remplir pour pouvoir déclencher le scénario du test, d'une série d'étapes à exécuter, et du résultat attendu à la fin du scénario. Il est possible de lier un cas de test à des mots clés, afin de regrouper les cas de tests, permettant aux testeurs de les retrouver plus facilement.
Création d'une personne
* remplir tous les champs du formulaire de création d'une personne * valider le formulaire * vérifier qu'un message informe l'utilisateur de la création de la personne
Un nouveau cas de test apparait dans l'arborescence.
Créer un deuxième cas de test de la même manière que le précédent avec les informations suivantes :
Tester la non possibilité de créer une personne sans nom de famille
* remplir les champs du formulaire de création d'une personne sauf le champ "nom de famille" * valider le formulaire * vérifier qu'un message informe l'utilisateur qu'un des champs est vide
Un deuxième cas de test doit apparaitre dans l'arborescence.
Si sur votre projet vous souhaiter gérer des exigences métiers auxquelles votre logiciel devra répondre, il est possible de les incorporer dans TestLink. Une exigence est une expression d'un besoin, sur ce qu'un logiciel doit être ou savoir faire. Une exigence peut être liée à un ou plusieurs cas de test. Cela permet de savoir si les tests couvrent les exigences métier de l'application.
Une campagne de tests est un ensemble de cas de tests que l'on choisira d'exécuter séquentiellement afin de valider un logiciel.
Une campagne de tests est l'objet de base permettant l'exécution de tests, elles sont composées d'un ensemble de cas de tests choisis pour valider un logiciel (ou certaines fonctionnalités d'un logiciel). Seuls les administrateurs et “leader” peuvent créer des campagnes de tests, celles-ci pouvant être nouvelles ou bien créées à partir d'une autre campagne de test. Cette particularité est pratique par exemple dans le cas où les testeurs doivent validés un patch d'une version. Les cas de tests à exécuter étant un sous ensemble des cas de tests ayant servi à valider la version de l'application.
Validation du formulaire "Création de personne"
vérifier le bon fonctionnement du formulaire "création de personnes"
Une nouvelle campagne de test a été créée. Nous allons pouvoir indiquer quels cas de tests seront à exécuter dans cette campagne.
Un build dans l'écosystème TestLink est une version publiée (release) de l'application. Dans Subversion, lorsqu'une release est identifiée, un tag est créé. A partir de ce tag, l'application est déployée sur un serveur afin d'être testée. Pour cela, un nouvel objet “build” devra être créé au niveau de TestLink afin d'exécuter une campagne de tests. Le code étant modifié entre chaque version de l'application, il est probable que les résultats des tests diffèrent, il est donc important d'avoir un “build” pour chaque versions déployées. Cela permet aussi de garder l'historique des tests exécutés sur les “builds” précédent, et ainsi voir de possibles régressions.
Version 1.0
Test de la version 1.0 de l'application
Un nouveau Build vient d'être créé.
Nous avons créé notre campagne de tests ainsi que le build correspondant à la version de l'application à tester, nous pouvons maintenant affecter les cas de tests concernant la partie du logiciel que nous voulons éprouver.
Notre campagne de test est maintenant prête à être exécutée.
Nous allons maintenant opérer sur l'outil Mantis.
Pas de vérification sur la validation du formulaire création de personne
Les champs ne sont pas vérifiés lors de la validation du formulaire
Un nouveau bogue vient d'être créé et apparait sur le tableau de bord de l'utilisateur :
Maintenant que le problème a été identifié et remonté auprès de l'équipe de développement, le bogue va devoir être corrigé.
Le correctif va être développé sur la branche ayant servi à faire les tests. Une fois que celui-ci aura été éprouvé par de nouveaux tests, les modifications seront reportées sur le trunk.
# cd /opt/form-svn-XXX/branches/version-1.0 # emacs www/create.php
<html> <head></head> <body> <?php require_once '../common/person.class.php'; if (isset($_REQUEST) && $_REQUEST['submit']) { if ($_REQUEST['lastname']== null || $_REQUEST['lastname']=='') { echo 'Personne non créée car le nom de famille est vide' } else { $person = new Person(); $person->address = $_REQUEST['address']; $person->city = $_REQUEST['city']; $person->lastname = $_REQUEST['lastname']; $person->firstname = $_REQUEST['firstname']; $person->create(); echo "Nouvelle personne créée"; } } ?> <H3>Nouvelle personne</H3> <form action="create.php" method="post"> <p> Nom de famille :<br/> <input size="40" maxlength="40" type="text" name="lastname" value=""/> </p> <p> Prénom :<br/> <inputsize="40" maxlength="40" type="text" name="firstname" value=""/> </p> <p> Adresse :<br/> <input size="40" maxlength="40" type="text" name="address" value=""/> </p> <p> Ville :<br/> <input size="40" maxlength="40" type="text" name="city" value=""/> </p> <p> <input type="submit" name="submit" value="Valider" /> </p> </form> <a href="index.php">Accueil</a> </body>
# svn ci -m "correction : ajout d'une validation sur le formulaire de creation de personne" Sending www/create.php Transmitting file data . Committed revision 15.