J’ai eu la chance de pouvoir tester pendant 2 mois le logiciel Yest de Smatesting. C’est un logiciel récent basé sur du MBT (Model Based Testing) allégé.
Présentation rapide :
Le MBT c’est le fait de concevoir ses tests au travers de modèles (ou ici de schémas) écrits en amont. Le travail de conception du testeur se fait donc sur le modèle à définir.
C’est exactement un des objectifs de Yest, un autre étant de pouvoir s’adapter aux contraintes apportées par l’agilité (ce qui n’est pas forcément le cas d’autres logiciels de MBT).
Yest ne se positionne donc pas comme un ALM car se concentre uniquement sur la conception et l’implémentation des cas et passe ensuite la main à des ALM (comme HP ALM) au moyen de synchronisation ou d’exportation des tests générés. C’est un outil supplémentaire qui permet de concevoir des tests mais aussi de les maintenir et bien-sûr les ajouter sur l’outil de gestion de test utilisé par l’équipe.
Parcours applicatif :
Le principe de Yest est donc simple il faut modéliser son application (ou ses fonctionnalités). Pour cela on a accès à différents modules :
· Le point d’entrée est unique et définit le début du parcours (ou sous-parcours).
· Le point de sortie définit la fin du parcours et il peut y en avoir plusieurs
· La tâche et le point de choix (fonctionnellement identiques) permettant de définir les actions faites lors du parcours
· Les Sous-parcours pour définir l’entrée dans un parcours appelé par le parcours que l’on crée
· Des connecteurs afin de connaitre l’ensemble des connexions et chemins possibles.
Un parcours est très facile à créer mais afin d’avoir de bons tests par génération automatique il faut avoir un parcours pertinent… et bien définir les tables de données à l’intérieur des tâches et des points de choix. La grande partie du travail se fait en fait à ce moment-là. C’est ce qui définira la qualité et la cohérence des tests générés par Yest.
Tables de données :
Les tables de données sont la clé pour générer les cas de test et sont insérées dans les points de choix et les tâches :
On a alors accès à plusieurs « types » de données :
· Affectations (illimité):
o Donnée réutilisable dans le parcours. Elles sont extrêmement importantes à utiliser afin d’avoir des scénarios cohérents (ex : au début du parcours on ne met pas de destinataire à notre mail, à la fin le mail ne doit pas être envoyé parce qu’il n’y a pas de destinataire. Il est possible de faire cela uniquement avec une affectation qui sera réutilisée avec une condition ensuite)
o Les affectations sont réutilisables sous forme de données dans les étapes de test
· Conditions (illimité):
o Peut reprendre des affectations définies préalablement.
o Les conditions sont réutilisables dans les étapes de test sous forme de données.
· Etapes de test (limité à 1 colonne, mais lignes illimitées):
o Ensemble des actions et de leur résultat à cet étape du parcours
· Direction suivante (limité à 1):
o Les possibilités offertes sont définies avec les connecteurs
· Objectif (limité à 1):
o Donne un objectif à la ligne de donnée, permet de nommer les cas de test automatiquement. La construction du nom du cas de test se fera de manière itérative avec l’ensemble des objectifs des tâches parcourues lors du test, dans leur ordre d’exécution.
· Exigence (Limité à 1):
o Je ne l’ai pas utilisé. Cela sert à la priorisation des tests et un suivi avec le tableau de bord (dashboard) et avoir une traçabilité entre les tests et les exigences.
· Informations supplémentaires (illimité):
o A créer selon ses besoins.
Aucun type de donnée n’est obligatoire à ajouter dans la table.
Ecriture des cas de test :
Génération automatique :
Le processus est très simple quand on veut les générer automatiquement. Un clic droit puis génération (la mise à jour se fait de la même manière).
Cela crée les tests en exécutant (lorsque c’est possible) l’ensemble des lignes des tables de données au moins 1 fois. Quand des lignes ont déjà été parcourues, le chemin le plus rapide est toujours utilisé (ex : avec une authentification nécessaire ou non, il y aura 1 test pour chaque scénario de l’authentification, puis Yest passera toujours par l’option déjà identifiée).
Pour chaque test généré, il est possible de visualiser son parcours sur le schéma créé. Il est également possible de voir si un test est toujours conforme au parcours et voir à partir d’où il ne l’est pas (ou plus). Une ou plusieurs propositions sont alors faites par Yest pour le mettre à jour ce qui permet une mise à jour en 2 clics.
Il est également possible lors de la génération de :
· Générer uniquement les tests passant par une tâche
· Faire une génération combinatoire sur 2 tâches.
· Quand on est dans un sous-parcours de générer les tests uniquement pour le sous-parcours ou en partant directement du parcours « père »
Génération manuelle :
Il est également possible d’ajouter des tests manuellement (avec une aide en suivant le parcours) si la couverture nous parait insuffisante ou si on veut ajouter 1 ou plusieurs tests que nous n’aurions pas modélisés. Dans le second cas le test sera indiqué comme non conforme au parcours mais cela n’empêchera pas de l’exporter.
Une chose me semble très importante à noter. Tout est modulaire. Si on modifie une tâche ou une ligne de la tâche cela modifie tout. C’est un gros point fort pour la maintenance… Notamment pour l’automatisation !
Export des cas de test :
Yest n’a pas pour but de gérer l’exécution des cas de test et le suivi des anomalies. Après la génération des cas il faut alors passer sur un autre outil.
Pour pouvoir exporter des tests il faut créer une campagne dans laquelle on ajoute les tests que l’on souhaite (je faisais 1 campagne par User Story, il est également possible d’avoir une campagne pour les tests de régression ou les tests vitaux).
Il faut alors aller sur cette campagne et l’exporter !
Yest propose une génération pour un certain nombre de ces outils notamment :
· SquashTM
· ALM (avec une synchronisation et une mise à jour des tests sur ALM)
· TestLink (avec la création d’un fichier .xml puis un import de campagne sur TestLink)
· Excel avec un bilan intégré
· Sélénium (en KDT (Keyword Driven Testing) je reviendrai plus tard dessus)
Je n’ai testé qu’Excel et TestLink mais cela fonctionne assez bien et c’est assez simple d’utilisation. J’aurais aimé faire le test avec ALM pour voir la mise à jour se faire au lieu d’avoir une duplication avec TestLink.
Export Sélénium :
J’en fais une catégorie à part car cela reste bien spécifique et m’a demandé pas mal de temps à bien utiliser et comprendre (en partie car je ne suis pas un automaticien). Je n’ai également pas pu aller jusqu’au bout avec l’exécution de ces tests pour des raisons inhérentes à ma mission.
Le principe repose sur du KDT comme pour RobotFramework. Il faut d’abord entrer les dictionnaires de mots clés.
On arrive ensuite à un écran avec l’ensemble des tests de la campagne et l’ensemble des lignes qui sont traversées par ces tests (1 ou plusieurs fois, dans tous les cas elles sont affichées 1 unique fois car tout est modulaire).
Pour chacune des lignes on ajoute si on le souhaite des actions en entrée et sortie (avec les mots clés et les paramètres de ces derniers) ainsi que les actions directement relatives à l’étape (toujours avec les mots clés des dictionnaires renseignés).
Lorsque toutes les étapes traversées par un test sont renseignées, le test est indiqué comme automatisé, il est alors possible de l’exporter. Le test est alors la suite des mots clés renseignés dans les étapes parcourues.
La mise à jour d’une étape met évidemment à jour tous les tests passant par cette étape.
Tableau de bord :
C’est une option très pratique que je n’ai que trop peu utilisée… Car je ne la trouvais pas. Elle permet d’avoir des informations de couverture des tests (en fonction des objectifs, des parcours…). Cela permet aussi de savoir quels sont les parcours non testés ou sur lesquels on doit encore travailler.
Bref une option bien pratique !
Pour quels projets :
J’ai trouvé Yest très agréable à utiliser. J’ai commencé à le tester sur un projet déjà en cours, c’est possible mais personnellement je pense qu’il est plus efficace de commencer avec Yest sur un projet afin de ne pas passer du temps à modéliser des fonctionnalités qui existent déjà ou de ne pas les avoir du tout.
Je pense que Yest perd beaucoup de son potentiel si l’application n’est pas modélisée dans son intégralité, en partie car la maintenance de ce qui n’est pas sur Yest devra être faite séparément.
Yest a été prévu pour s’adapter à l’agilité et je pense qu’avec sa simplicité d’utilisation et son fonctionnement par « parcours applicatif » cela correspond bien aux besoins de l’agilité, surtout avec une bonne maitrise de l’automatisation si Sélénium est utilisé sur le projet.
Conclusion :
Yest est un outil « à part » dans le sens où ce n’est pas un ALM et qu’il se concentre uniquement sur la conception, l’écriture et la maintenance des cas. C’est un point fort mais aussi un de ces points faibles car Yest ne se suffit pas à lui-même et il faut obligatoirement un autre outil à côté.
De plus Yest reste un outil jeune qui a encore besoin de quelques améliorations d’ergonomie même si la prise en main est facile et qu’il est très agréable à utiliser.
Yest, de par son approche MBT allégé oblige également à penser différemment, de se reposer des questions, de voir ce qui pourrait être fait par les utilisateurs… Bref, je pense que l’on s’approche plus d’une approche basé sur le produit.
J’ai personnellement vu une très grande progression entre mes parcours fait au bout d’une semaine et ceux faits au bout d’un mois. Dans les 2 cas les parcours étaient valables, mais mes derniers sont plus lisibles et je les trouve plus pertinents.
Enfin, Yest offre également un gros avantage induit par le MBT, les parcours sont faciles à comprendre par les techniques et les fonctionnels ! Les échanges et la communication sont alors plus aisés.
Je vous invite à regarder cette présentation afin d’avoir plus d’images et d’informations :
Pensez à rejoindre le groupe Le métier du test si le test vous intéresse !
N’hésitez pas à me suivre et lire mes autres articles si vous voulez en apprendre plus sur le test ou venir partager vos connaissances
Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles
Merci pour votre partage.
Avez vous le lien de téléchargement du yest ?
J’aimeJ’aime
Bonjour,
Je ne connais pas de lien public pour télécharger l’outil. Il faut passer par l’éditeur Smartesting: https://www.smartesting.com/#
J’aimeJ’aime