Architecture .NET pour l'automatisation des test en Ecommerce (3/3)

Architecture C# Selenium
Par Lina AZOUZI il y a un mois 3 minutes

Conformément à notre roadmap, nous allons explorer cette partie en intégrant SpecFlow à la couche d'exécution des tests, un outil de développement logiciel réputé qui facilite la création et l'exécution de tests automatisés en utilisant le développement piloté par le comportement (BDD)

Cependant, avant d'entrer dans le vif du sujet et de vous montrer l'implémentation, il est primordial de comprendre les principes fondamentaux du BDD et comment cette approche est mise en œuvre dans SpecFlow, n'est-ce pas ?

Qu’est-ce que le BDD ?

Avec la complexité croissante des applications logicielles, de nouvelles méthodes de gestion de la qualité et de tests sont en constante évolution. Ces méthodes sont essentielles pour garantir de manière fiable la fonctionnalité des différents composants et pour détecter rapidement les erreurs. Parmi les défis majeurs de ces méthodes, je mentionne la coordination entre les différentes parties prenantes et l'implication non seulement des développeurs, mais aussi des membres de l'équipe ou des parties prenantes qui ne sont pas familiers avec le code technique avant le début de la phase de développement.

C'est là que le Behavior Driven Development (BDD) entre en jeu ! Cette approche facilite les échanges en direct sur les critères d'acceptation des "User Stories" lors des réunions des "3 amigos" (QA/DEV/PO), garantissant ainsi une compréhension commune.

Bien évidemment, lorsque le développeur et le QA comprennent bien les attentes du business, cela nous emmènera à une meilleure qualité du produit !

Comment SpecFlow intervient ?

Pour formaliser ces discussions et les rendre compréhensibles pour toutes les parties prenantes, SpecFlow est souvent utilisé en conjonction avec le langage Gherkin.

Gherkin utilise des mots-clés tels que "Given", "When" et "Then" pour structurer les scénarios de test des "User Stories" de manière claire et explicite. SpecFlow interprète ces scénarios et les traduit en code exécutable, permettant ainsi une communication efficace entre les membres de l'équipe et une compréhension précise des exigences métier lors de la création des tests automatisés. Si vous souhaitez approfondir vos connaissances sur le BDD avec SpecFlow, je vous recommande de visiter ce lien : SpecFlow. Start learning BDD!

Dans la suite, nous allons nous amuser à intégrer SpecFlow dans la couche d’exécution de notre framework.

Intégration du SpecFlow dans la couche d’exécution de tests

Pour utiliser des scénarios avec SpecFlow dans un projet C#, suivez les étapes suivantes :

  1. Installez l'extension SpecFlow pour Visual Studio à partir de la galerie d'extensions de Visual Studio.   image

  2. Intégrez une référence à SpecFlow en utilisant le Gestionnaire de packages NuGet dans notre projet.   image

  3. Ajoutez un fichier « feature » dans un dossier « Features » comme ci-dessous et écrivez les scénarios et les étapes « given », « when », « then ». Voici l'exemple que j'ai choisi, en maintenant le même cas que celui présenté précédemment dans la Partie 2 pour le sous-module LoginTests, qui fait partie de l'automatisation des scénarios de test du module UserAccountTests dans une application e-commerce.   image

  4. Décrivez les étapes de votre scénario en utilisant les annotations de méthode de SpecFlow et en écrivant du code C# qui met en œuvre ces étapes dans la classe StepDefinitions. Voici comment j'ai procédé dans notre exemple :   image

Maintenant que vous avez une idée de ce qu'est SpecFlow, voyons une fonctionnalité que j'ai trouvée intéressante lors de mes tests : les Hooks !

Ce que j'ai particulièrement apprécié avec les Hooks de SpecFlow, c'est la possibilité d’exécuter une logique d’automatisation à des moments spécifiques en utilisant par exemple [BeforeTestRun], [BeforeFeature], [BeforeScenario(Order = 1)]

Je vous joins comment j’ai procédé dans notre exemple :

image

Pour en savoir plus sur les SpecFlow Hooks, consultez leur GitHub repository : GitHub -SpecFlow-Hooks

Voyons maintenant après ces modifications dans la couche d’exécution des tests comment notre diagramme de classes est devenu : image

Voici aussi le rapport d’exécution du 1er Scenario :

image

Nous arrivons à la fin de l’intégration de SpecFlow dans la couche d'exécution des tests.

Maintenant, c'est à vous de jouer avec SpecFlow pour gérer l’exécution de vos tests automatisés ! Il n'y a plus d'excuses maintenant 😊

C’est vrai que SpecFlow est un outil bien connu en .NET, permettant d'écrire des spécifications exécutables en utilisant le langage Gherkin. Cependant, saviez-vous qu'il existe un fork de SpecFlow appelé Reqnroll ?

Reqnroll offre une grande compatibilité avec SpecFlow tout en apportant des améliorations et des nouveautés. Pour en savoir plus, consultez leur site Web : Home • Reqnroll

Conclusion

Et pour finir voici le lien GitHub du projet ECommerceAutomation en utilisant BDD avec SpecFlow:
GitHub - ECommerceAutomation_SpecFlow

Vous avez ainsi la liberté de choisir entre : le projet ECommerceAutomation , étalé dans mon précédent article, ou bien le projet ECommerceAutomationSpecFlow. À vous de choisir celui qui vous convient le mieux !