5.3 KiB
marp | paginate |
---|---|
true | true |
R6.06. Maintenance applicative
Cours 2
Présentation
Maxime Pierront - contact@pierrontmaxi.me
Behavior Driven Development (BDD)
Le BDD est une approche de développement logiciel qui se concentre sur la collaboration entre les membres de l'équipe pour comprendre et définir le comportement attendu du logiciel.
Le BDD se base sur les principes du TDD (Test Driven Development), mais avec une approche plus orientée vers la communication et la collaboration entre les différents intervenants (développeurs, testeurs, chefs de projet, utilisateurs finaux, etc.).
Le processus de BDD se déroule en trois étapes :
- Définir les comportements attendus du logiciel sous forme de scénarios concrets et compréhensibles par tous les intervenants.
- Écrire des tests automatisés qui vérifient que les comportements définis dans les scénarios sont correctement implémentés dans le code.
- Implémenter le code qui répond aux comportements attendus et passer les tests avec succès.
Le BDD encourage la communication et la collaboration entre les différents membres de l'équipe pour s'assurer que le logiciel répond aux besoins réels des utilisateurs finaux. Il permet également de réduire les risques d'erreurs et de malentendus en clarifiant les exigences et en les traduisant en scénarios concrets.
Libraire pour faire du BDD
Cucumber
Cucumber est un outil open source utilisé pour faire du Behavior Driven Development (BDD). Il permet de décrire les comportements attendus d'une application sous forme de scénarios écrits en langage naturel, accessibles à tous les membres de l'équipe (développeurs, testeurs, chefs de projet, utilisateurs finaux, etc.).
Cucumber
Les scénarios Cucumber sont écrits dans un format appelé Gherkin, qui utilise une syntaxe simple et lisible pour décrire les étapes d'un scénario. Chaque scénario est composé de trois parties :
Given : décrit l'état initial du système avant que l'utilisateur n'effectue une action. When : décrit l'action effectuée par l'utilisateur. Then : décrit le résultat attendu après l'action de l'utilisateur.
Exemple fichier feature
Feature: FizzBuzz
En tant qu'utilisateur,
Je veux pouvoir générer une liste d'entiers de 1 à 100
Avec les règles suivantes :
- Pour les multiples de 3, remplacez le nombre par "Fizz"
- Pour les multiples de 5, remplacez le nombre par "Buzz"
- Pour les multiples de 15, remplacez le nombre par "FizzBuzz"
Scenario: Générer la liste FizzBuzz
Given que je génère la liste d'entiers de 1 à 100
When j'applique les règles FizzBuzz
Then je devrais obtenir la liste suivante :
| 1 | 2 | Fizz | 4 | Buzz | Fizz | 7 | 8 | Fizz | Buzz | 11 | Fizz | 13 | 14 | FizzBuzz | ... |
Ajouter cucumber sur le projet
Ajout de cucumber : npm install --save-dev @cucumber/cucumber
Ajout d'un nouveau script dans package.json
:
"scripts": {
"test": "jest",
"behavior": "npx cucumber-js"
}
Création du fichier à la racine cucumber.js
avec le contenu suivant :
module.exports = {
default: {
}
};
Ajout fichier feature
Création dossier features
à la racine
Création dossier support : features/support
Dans features
créer le fichier sum.feature
suivant :
Feature: Sum two numbers
Scenario: Add two numbers
Given I have a sum function
When I add 1 and 2
Then the result should be 3
Ajout de la glue
Dans support
créer le fichier sum-steps.js
suivant :
const { Given, When, Then } = require('@cucumber/cucumber');
const assert = require('assert');
const sum = require('../../src/sum');
let result;
Given('I have a sum function', function () {
// This step is more for context, no action needed
});
When('I add {int} and {int}', function (a, b) {
result = sum(a, b);
});
Then('the result should be {int}', function (expectedResult) {
assert.strictEqual(result, expectedResult);
});
Lancer le test de comportement
Commande : npm behavior
Calculateur de TVA en BDD
Consignes :
Écrire un programme qui calcule la TVA d'un produit en fonction de son prix hors taxe et du taux de TVA en vigueur. Le programme doit afficher le prix TTC (toutes taxes comprises) du produit. Le taux de TVA peut être modifié par l'utilisateur.
Correction calculateur de TVA en BDD
Le loup, la chèvre et le chou en BDD
Consignes :
Écrire un programme qui simule le passage du loup, de la chèvre et du chou d'une rive à l'autre d'une rivière à l'aide d'un bateau.
- Le bateau ne peut transporter qu'un seul passager à la fois, à l'exception du fermier qui peut le conduire.
- Le loup ne peut pas être laissé seul avec la chèvre, sinon il la mangera.
- La chèvre ne peut pas être laissée seule avec le chou, sinon elle le mangera.
- Le programme doit afficher les étapes nécessaires pour amener les trois passagers sur l'autre rive en toute sécurité.
Correction le loup, la chèvre et le chou en BDD
Recap
- Bonne pratique de code
- SOLID
- KISS
- Complexité cyclomatique
- TDD
- BDD