d5:a02

Ceci est une ancienne révision du document !


D5-A02 : Les tests unitaires

Durée estimée : 4 heures

Important: Travail validé par la présentation de sa validation(au moins 1 test) à la classe le vendredi 26/09 à 11h

Un test automatisé est un programme qui se découpe en trois phases dites AAA pour Arrange, Act, Assert :

  1. Arrange : La mise en place de l’environnement : création et initialisation des objets nécessaires à l’exécution du test.
  2. Act : Le test proprement dit.
  3. Assert : La vérification des résultats obtenus par le test.

Le sous-système (l’ensemble des objets) éprouvé par le test est parfois appelé SUT (System Under Test).

  • Comprendre la différence entre tests unitaires, d’intégration, fonctionnels et de performance.
  • Savoir écrire et exécuter des tests avec un framework (en Java avec JUnit / en PHP avec PHPUnit).
  • Prendre conscience de l’importance de l’automatisation et des bonnes pratiques de validation.

Vous travaillez pour une startup qui développe une application de gestion de bibliothèque. L’application doit permettre :

  • La gestion d’un catalogue de livres.
  • L’ajout et la suppression d’utilisateurs.
  • La gestion des emprunts (règle : un utilisateur ne peut pas emprunter plus de 3 livres).

L’application a un fonctionnement actuel minimal et nous allons nous concentrer sur la gestion des livres.

Objectif : améliorer la qualité et la sécurité des données via les tests unitaires, d’intégration et fonctionnels.

Vous allez développer et tester progressivement ce projet.

  • récupérer le projet sur gitea

Attention: Dans Netbeans :

  1. créer votre branche -votre prénom- et ne travailler que sur votre branche
  2. commiter avec un commentaire précis sur votre branche uniquement

Travail à faire1

  1. Étudier la classe Livre et les tests unitaires créés
  2. Identifier les 3 parties AAA
  3. Que vérifient les tests ?
  4. Ajouter un message clair en cas d'erreur sur chaque test
  5. Qu’est-ce qui n’est pas testé ?
  6. Quels risques pour la sécurité si ces vérifications manquent ?

Vous allez mettre en place de nouveaux tests pour assurer :

  • la validation des champs (titre, auteur, ISBN),
  • la robustesse face aux entrées malveillantes (XSS, caractères interdits),
  • l’intégrité globale des données (unicité dans la bibliothèque).

Travail à faire2

Chaque étudiant va implémenter une nouvelle règle de validation :

  1. ISBN : doit avoir 13 chiffres (pas de lettres, pas de caractères spéciaux), exemple invalide : “1234ABCD567”.
  2. Titre : ne doit pas contenir <script> (risque XSS).
  3. Auteur : non vide, pas de caractères spéciaux suspects, de chiffres.
  4. Longueur maximale du titre (ex. 200 caractères - l'objectif cybersécurité étant d'éviter surcharge et attaques par dépassement de mémoire (DoS)).

Consignes : Chaque règle = une nouvelle méthode dans testCreationLivre + son test unitaire JUnit.

  • d5/a02.1758705383.txt.gz
  • Dernière modification : 2025/09/24 11:16
  • de dthevenot