18. Tests et outillage
18. Tests et outillage
Un bon test est un document vivant. Il capture lâintention et vous protĂšge contre les rĂ©gressions. Dans un langage systĂšme, un test est aussi un gardeâfou de sĂ©curitĂ©.
Types de tests
Tests unitaires pour les fonctions critiques. Tests dâintĂ©gration pour les flux complets. Tests de nonârĂ©gression pour les bugs corrigĂ©s.
Lâoutillage
Le principe est simple : un test doit ĂȘtre rapide Ă lancer et facile Ă comprendre. Les scripts de test du repo sont pensĂ©s dans cet esprit.
Un bon test
Un bon test est court, prĂ©cis, et raconte une histoire. Si vous devez relire le test trois fois pour comprendre ce quâil fait, le test est trop complexe.
Tests comme documentation
Un test est une preuve. Quand vous revenez six mois plus tard, câest souvent plus clair quâun commentaire. Ăcrivez des tests comme des exemples explicites.
Erreurs courantes
Tester trop de choses dans un seul test. Ăcrire un test qui dĂ©pend de lâordre dâexĂ©cution. Utiliser des donnĂ©es alĂ©atoires sans seed.
Ă retenir
Les tests ne sont pas un coût, ils sont une assurance.
Exemple guidé : un test de bug
Reproduisez un bug rĂ©el (mĂȘme petit), puis Ă©crivez un test minimal. Câest une pratique clĂ© pour un langage en Ă©volution.
Checklist tests
Tests courts. Tests stables. Tests qui racontent une histoire.
Exercice : test minimal
Prenez un bug corrigé et écrivez un test qui échoue avant le fix et passe aprÚs. Ce test est votre mémoire technique.
Code complet (API actuelle)
Exemple : test de nonârĂ©gression (conceptuel) basĂ© sur un binaire.
vitte check tests/case.vit
API idéale (future)
Un framework de test intĂ©grĂ© (assertions, fixtures, snapshots) simplifierait lâĂ©criture de tests.