Utilisation du BDD avec Cucumber dans Squash
Cette page décrit comment utiliser le BDD et Cucumber JVM : déclarer des cas de test Gherkin, implémenter les tests et les exécuter.
Le public cible de ce HowTo est :
- Les personnes qui veulent avoir une vue d'ensemble de tout le processus, elles peuvent parcourir le document, en sautant les détails techniques.
- Les personnes qui seront impliquées dans un tel processus.
Pour la partie administration, elles doivent connaître les bases de l'administration de Squash TM. Des pointeurs vers les instructions précises sont fournis.
Pour la partie automatisation des tests, elles doivent connaître les bases de Git, Java et Maven. Quelques conseils d'architecture et de codage sont fournis. Le code utilise Selenium pour interagir avec le navigateur.
Vue d'ensemble du processus
Mise en situation
Nous allons voir comment une équipe de développement en charge de réaliser un site de e-commerce va mettre en place les tests automatisés pour valider les premières fonctionnalités livrées par les développeurs : création de compte, login et remplissage du panier. D'un commun accord, ils ont décidé de formaliser les cas de test en Gherkin afin d'éviter les ambiguïtés et d'assurer la réutilisation des étapes de test. L'automaticienne utilisera les technologies qu'elle maîtrise pour gagner du temps.
Personas impliquées
Nous utiliserons les personas suivantes dans ce HowTo :
- Pravash, le Product Owner du projet ;
- Fabrice, le testeur fonctionnel ;
- Antonine, l’automaticienne chargée d'implémenter les cas de test définis par Fabrice ;
- Annita, l'administratrice de Squash TM.
Phases
Les phases que nous allons décrire sont les suivantes :
Annita Administratrice Squash TM |
Pravash Product owner |
Fabrice Testeur fonctionnel |
Antonine Automaticienne |
---|---|---|---|
Configurer Squash TM | |||
Rédiger les exigences | |||
Rédiger les cas de test | |||
Transmettre les cas de test | |||
Récupérer les cas de test | |||
Automatiser les cas de test | |||
Fournir les cas de test automatisés | |||
Indiquer que l’automatisation est effectuée | |||
Exécuter les tests automatisés |
(Vous pouvez cliquer sur une phase pour y accéder directement).
Quelques remarques initiales
Stratégie de test
Cet exemple décrit comment effectuer des tests d'interface utilisateur. Leur objectif est de vérifier que l'interface utilisateur se comporte correctement, et non de vérifier que les flux de travail des utilisateurs fonctionnent comme prévu (par exemple, qu'une commande est correctement générée et enregistrée dans la base de données des commandes).
Ces flux de travail doivent être testés au niveau du service, en appelant l'API du service Web (SOAP, REST, GraphQL…) du SUT. Les services Web ont tendance à être beaucoup plus stables que l'interface utilisateur, de sorte que le coût de maintenance est plus faible pour les tests de services Web que pour les tests d'interface utilisateur. Les tests de services Web sont également plus simples et plus rapides à écrire.
Actuellement, ce HowTo ne contient pas de tests de services Web.
Accès au code
Le code utilisé dans cet exemple est disponible dans https://gitlab.com/henixdevelopment/open-source/code-samples/howto-bdd-cucumber-01.
Versions utilisées
Ce HowTo utilise
- Squash TM 3.0.2
- Cucumber-JVM 7.2.3
- Selenium 4.1.1
- Java 11.0.13
- Maven 3.6.3
Les numéros des versions des outils ci-dessus correspondent aux versions utilisées pour ce HowTo, mais l’utilisation de toutes autres versions de ces outils n’empêchera pas de suivre toutes les étapes, seuls certains détails techniques changeront si vous utilisez une autre version de Squash TM, Cucumber, Java ou Maven.
Installation de Prestashop comme exemple de SUT
Nous avons besoin d'un exemple de SUT pour illustrer le cycle de vie des tests BDD. À cette fin, nous utiliserons la démo de Prestashop. Si vous souhaitez reproduire les étapes décrites dans ce document, cette page décrit comment installer Prestashop.