Portfolio/Tests automatisés

Tests fonctionnels avec Cypress et Cucumber

Implémentation d'un écosystème de tests automatisés pour l'outil de gestion des biens immobiliers chez I@D, avec une approche TDD (Test-Driven Development) accessible à tous les membres de l'équipe.

Cypress + Cucumber

Tests fonctionnels accessibles

Cucumber+Cypress

Le besoin

L'équipe de développement d'I@D travaillait sur un outil complexe de gestion des biens immobiliers et faisait face à plusieurs défis importants :

  • Assurer la qualité et la stabilité de l'application face à des évolutions fréquentes
  • Faciliter la collaboration entre développeurs et équipes métier dans le processus de test
  • Mettre en place une approche TDD (Test-Driven Development) accessible à tous
  • Créer des tests fonctionnels non-techniques compréhensibles par les équipes métier

La principale difficulté était de créer un système de tests à la fois puissant pour les développeurs et accessible aux non-techniciens, tout en garantissant une couverture fonctionnelle complète de l'application.

La solution

Approche BDD avec Cypress et Cucumber

J'ai conçu et implémenté une solution de tests fonctionnels combinant la puissance de Cypress pour les tests E2E avec l'approche BDD (Behavior-Driven Development) de Cucumber, rendant les tests accessibles et compréhensibles par tous.

1Mise en place de l'écosystème technique

J'ai implémenté une architecture de tests complète comprenant :

  • Intégration de Cypress pour l'exécution des tests de bout en bout
  • Configuration de Cucumber pour la définition des scénarios en langage naturel
  • Mise en place du plugin cypress-cucumber-preprocessor pour faire le lien entre les deux
  • Automatisation via CI/CD pour l'exécution régulière des tests

2Langage Gherkin pour des tests non-techniques

L'utilisation du langage Gherkin a permis de créer des scénarios de test en langage naturel :

Feature: Création d'un bien immobilier

  Scenario: Ajout d'un nouveau bien avec toutes les informations requises
    Given je suis connecté en tant qu'agent immobilier
    When j'accède à la page "Création de bien"
    And je remplis le formulaire avec les informations suivantes:
      | Titre    | Appartement 3 pièces |
      | Type     | Appartement          |
      | Surface  | 65                   |
      | Prix     | 250000               |
    And je clique sur le bouton "Enregistrer"
    Then je devrais voir un message de confirmation
    And le bien devrait apparaître dans ma liste de biens

3Formation et accompagnement des équipes

Pour assurer l'adoption de cette méthodologie, j'ai mis en place :

Pour les développeurs

  • Formation technique sur Cypress et ses capacités
  • Accompagnement sur l'écriture des step definitions
  • Mise en place de modèles et bonnes pratiques
  • Sessions de pair programming sur les tests complexes

Pour les équipes métier

  • Formation sur l'approche BDD et le langage Gherkin
  • Ateliers d'écriture de scénarios métier
  • Création de documentation et guides de référence
  • Support continu pour la rédaction des features

4Intégration dans le workflow de développement

La mise en place d'une approche TDD a modifié le workflow de développement :

  1. Les équipes métier rédigent les scénarios Gherkin basés sur les besoins fonctionnels
  2. Les développeurs implémentent les step definitions Cypress correspondantes
  3. Les tests sont exécutés avant le développement pour confirmer qu'ils échouent comme prévu
  4. Le développement est réalisé jusqu'à ce que tous les tests passent
  5. Des tests de régression sont automatiquement exécutés à chaque PR pour prévenir les régressions

Les résultats

L'implémentation de cette solution a apporté des bénéfices significatifs à l'équipe et au projet dans son ensemble.

Les principaux avantages incluent :

  • Amélioration de la qualité du code grâce à la détection précoce des régressions
  • Collaboration renforcée entre les équipes techniques et métier
  • Documentation vivante des fonctionnalités de l'application via les scénarios Gherkin
  • Confiance accrue lors des déploiements et des évolutions majeures
  • Onboarding facilité pour les nouveaux membres de l'équipe

Cette approche a également permis une évolution culturelle au sein de l'équipe, établissant une véritable mentalité de qualité et de test comme partie intégrante du processus de développement.

Galerie du projet

Cypress with Cucumber demonstration

Voir la démonstration de Cypress avec Cucumber

Informations du projet

Client

I@D

Année

2021

Technologies

CypressCucumberGherkinJavaScriptNodeJSBDDTDDCI/CD

Autres réalisations