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 la classe de tests unitaires correspondante (LivreTest)
  2. Identifier les 3 parties AAA de chaque test
  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

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)).
  5. Unicité de l’ISBN dans la bibliothèque (Un même ISBN ne peut pas être enregistré deux fois. Cela garantit l’intégrité des données et empêche des doublons malveillants)

Consignes : Pour chaque règle :

  1. Compléter la méthode prévue dans la classe de contrôle LivreTest
  2. Compléter chaque méthode correspondante dans la classe LivreValideTest avec ses tests unitaire JUnit.
  • d5/a02.1758730581.txt.gz
  • Dernière modification : 2025/09/24 18:16
  • de dthevenot