View on GitHub

club-lecture

Limites

Deux types de limites :

Le code tiers.

Idéalement : enfermer le code tiers derrière une API correspondant à la tâche que nous souhaitons réaliser. Cela robustifie la conception aux changements du code tiers.

Par conséquent, on doit écrire des tests pour le code tiers :

Le code pas encore écrit.

Moment où une partie du logiciel n’est pas encore développée.

Définir l’interface que l’on voudrait de ce code. Il sera généralement assez aisé de l’adapter le jour où elle sera disponible.

Tests unitaires

Chapitre fortement lié au TDD

Trois lois

Objectif

On veut écrire du code qui soit testable parce que l’on a en tête le test que l’on cherche à valider. Cela évite de ne pas savoir écrire le test qui correspond à un code que l’on vient d’écrire parce qu’on ne sait pas comment le tester.

Cela permet virtuellement une couverture parfaite du code.

Tests propres

Les tests doivent rester propre pour rester utilisable. Si les tests sont sales, il finit par être difficile de savoir si un problème est dû aux tests ou au code. Résultat : les tests deviennent un handicap.

Avoir des tests implique d’avoir un filin de sûreté : on n’a pas peur de modifier le code parce qu’on sait que les tests nous donneront des informations pertinentes en cas de soucis.

Test propre :

FIRST

Discussion - Limites

Les codes de tests de prise en main :

Difficulté à faire évoluer les libs ?

Discussion - Tests unitaires

Philosophie de l’entreprise : investissement dans les tests.

Conseiller les décideurs :

Formation technique des décideurs ?

Outils :

TDD : pas si utilisée ?

Les coûts à long terme doivent être estimés mais c’est parfois difficile. Les systèmes à longs termes marchent mieux pour les tests et la maintenance ? On a tendance à tester les cas auxquels on s’attend

Fuzzer et reproductibilité -> écrire le test qui correspond fuzzing. Reproductibilité : la concurrence peut vraiment poser des problèmes.