A4 · Livrer du logiciel robuste : tests, seams, reproductibilité
Lab
Nécessite Python 3.12 ou plus récent, une connexion réseau, pydantic.
Décompressez l'archive, puis dans ce dossier :
uv run python verify.py
Évaluation
Évaluation de sortie A4 : preuve du défaut et reproductibilité
Durée : 40 minutes, puis un défi oral de 3 à 5 minutes.
Rendu
1. Détecter le défaut, A4.1
Écrivez le plus petit test qui détecte le défaut attribué. Exécutez-le avant toute modification de l'implémentation et montrez qu'il échoue pour la raison comportementale attendue. Corrigez ensuite le défaut et montrez que le même test passe.
2. Introduire une couture, A4.2
Placez sous test la fonction de rapport dépendante du réseau au moyen de la plus petite couture utile. Préservez le comportement observable et excluez du diff les fichiers sans rapport.
3. Prouver la reproductibilité, A4.3
Rendez le lab exécutable depuis un checkout propre avec une seule commande documentée. Lancez-le dans le vérificateur isolé fourni et consignez toute commande ou tout état d'environnement qui n'existait auparavant que sur votre machine.
Défi oral
L'enseignant attribue un autre défaut, choisit une autre interaction à substituer ou retire une hypothèse d'environnement. Diagnostiquez la couche en échec et modifiez le plus petit artefact pertinent.
Références
- Beck, Test-Driven Development: By Example, 2002
- Feathers, Working Effectively with Legacy Code, 2004
- Wilson, Bryan, Cranston, Kitzes, Nederbragt & Teal, Good Enough Practices in Scientific Computing, PLOS Computational Biology, 2017
- Wiggins, The Twelve-Factor App, factors II and III, 2011