Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
d5:a02 [2025/09/18 08:49] – créée dthevenot | d5:a02 [2025/09/18 09:44] (Version actuelle) – [A02 : Les tests (unitaires et d'intégration)] dthevenot | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===== A02 : Les tests unitaires ===== | + | ====== Ressources ====== |
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | ===== A02 : Les tests (unitaires | ||
+ | __Durée estimée__ : 4 heures | ||
==== Objectif pédagogique ==== | ==== Objectif pédagogique ==== | ||
* Comprendre la différence entre tests unitaires, d’intégration, | * Comprendre la différence entre tests unitaires, d’intégration, | ||
Ligne 14: | Ligne 19: | ||
Vous allez développer et tester progressivement ce projet. | Vous allez développer et tester progressivement ce projet. | ||
- récupérer le projet sur gitea | - récupérer le projet sur gitea | ||
- | < | + | < |
+ | - cloner le dépôt | ||
+ | - créer | ||
+ | - commiter avec un commentaire précis sur votre branche uniquement | ||
+ | </ | ||
- Étudier les classes fournies (Livre, Utilisateur). | - Étudier les classes fournies (Livre, Utilisateur). | ||
- exécuter les tests existants / être capable de les expliquer | - exécuter les tests existants / être capable de les expliquer | ||
- Compléter les méthodes manquantes (ex. calcul du prix TTC d’un livre, ajout d’un livre dans la liste d’un utilisateur). | - Compléter les méthodes manquantes (ex. calcul du prix TTC d’un livre, ajout d’un livre dans la liste d’un utilisateur). | ||
===== ===== | ===== ===== | ||
+ | ====== Les tests unitaires ====== | ||
+ | |||
- Écrire des **tests unitaires** avec JUnit pour : | - Écrire des **tests unitaires** avec JUnit pour : | ||
- vérifier les méthodes de la classe Utilisateur | - vérifier les méthodes de la classe Utilisateur | ||
- Vérifier le calcul du prix TTC. | - Vérifier le calcul du prix TTC. | ||
- Vérifier que l’ajout d’un livre à un utilisateur fonctionne. | - Vérifier que l’ajout d’un livre à un utilisateur fonctionne. | ||
- | - Ajouter au moins 2 tests supplémentaires par classe pour couvrir des cas limites (ex. : emprunter plus de 3 livres, prix négatif, etc.). | + | - Ajouter au moins 2 tests supplémentaires par classe(y compris la classe Emprunt) |
- Exécuter les tests et corriger les bugs si nécessaire. | - Exécuter les tests et corriger les bugs si nécessaire. | ||
- | < | + | < |
===== ===== | ===== ===== | ||
- | **Les tests d' | + | ====== |
Vous aller vérifier que plusieurs composants du système fonctionnent correctement ensemble. | Vous aller vérifier que plusieurs composants du système fonctionnent correctement ensemble. | ||
Ligne 36: | Ligne 48: | ||
* le livre n’est pas déjà emprunté | * le livre n’est pas déjà emprunté | ||
* l’utilisateur a moins de 3 emprunts | * l’utilisateur a moins de 3 emprunts | ||
- | - Vérifier que l’état du livre et la liste des emprunts de l’utilisateur sont correctement mis à jour. | + | - Vérifier que l’état du livre(emprunté ou pas) et la liste des emprunts de l’utilisateur sont correctement mis à jour. |
- | + | ||
- | ===== ===== | + | |
- | ==== Etape1 : les tests unitaires | + | |
- | === Qu' | + | |
- | + | ||
- | Un test unitaire est un test automatisé écrit en même temps, voire même avant le programme lui | + | |
- | même. Il ne valide qu'une portion très réduite du code source (par exemple certaines méthodes | + | |
- | d'une seule classe). Il permet de vérifier le bon fonctionnement d'une partie spécifique d'une | + | |
- | application. (Une unité = un module, une classe, une méthode …). | + | |
- | === Pourquoi effectuer des tests unitaires ? === | + | |
- | Les tests unitaires vont permettre d' | + | |
- | * Problème de coordination entre développeurs | + | |
- | Une application est souvent réalisée par plusieurs développeurs qui travaillent en parallèle sur une | + | |
- | base de code commune. il est fréquent que des modifications effectuées par un programmeur | + | |
- | entrainent à son insu des dysfonctionnements sur d' | + | |
- | programmeurs constatent alors avec surprise que leurs parties du projet ne fonctionnent plus, sans | + | |
- | qu'ils aient modifié quoi que ce soit au code. En pratique, ces " | + | |
- | souvent les erreurs les plus frustrantes et les plus difficiles à résoudre dans le cycle de | + | |
- | développement logiciel. | + | |
- | * Problème de maintenance | + | |
- | En entreprise, la fin du codage initial ne signifie pas la fin du projet : il y aura forcément des bugs à | + | |
- | corriger, des améliorations demandées par le client, des modifications, | + | |
- | durée de vie couvre plusieurs années au-delà de son développement initial. Les tests permettront de | + | |
- | vérifier que le programme fonctionne toujours après une modification. | + | |
- | * Besoin de rassurer le client | + | |
- | Aucun client n' | + | |
- | === Le principe des tests unitaires === | + | |
- | + | ||
- | Le principe des tests unitaires est le suivant : au lieu d' | + | |
- | exécutant le programme selon divers paramètres ou d' | + | |
- | test non réutilisables, | + | |
- | précise du projet. | + | |
- | + | ||
- | Si toutes les parties essentielles du code source sont validées par des tests unitaires, alors le projet | + | |
- | global a de bonnes chances de fonctionner correctement. | + | |
- | + | ||
- | Les tests unitaires sont montrables au client souhaitant faire des vérifications. | + | |
- | + | ||
- | De plus, les tests unitaires étant toujours à disposition, | + | |
- | rapidement toute modification apportée ultérieurement au code source, ce qui évite l' | + | |
- | de nouveaux bugs dans le projet. | + | |
- | + | ||
- | + | ||