Commit fa743269 authored by Jordan Grossemy's avatar Jordan Grossemy
Browse files

Les douze garanties orphelines ont enfin l'exigence qui les justifiait

Douze identifiants employés par la suite n'apparaissaient dans aucun des deux
cahiers des charges. Qui remontait d'un contrôle vers sa raison d'être tombait
sur un cul-de-sac — et dans l'autre sens c'est pire : une garantie peut survivre
à l'exigence qui la justifiait, et continuer d'exiger d'un produit un
comportement que plus personne n'a demandé.

── Rédigées d'après ce que les garanties vérifient, ligne par ligne

Et cela valait la peine de les lire plutôt que de recopier le résumé que j'avais
écrit dans le cahier de test : quatre y étaient mal décrites. EF-404a porte sur
la recherche et les filtres de la main courante, non sur ce que le journal y
verse. EF-707a et EF-707b sur la portée des dépêches temps réel et les
interpellations, non sur la recherche. EF-1002a sur la bibliothèque de modèles
portée par l'organisation, non sur des modèles qui posent des éléments. Un
résumé écrit de mémoire vaut ce qu'il vaut.

Neuf sous-exigences, placées dans la section où on les chercherait — 6.1
invitation multicanal et compte ouvert sur place, 6.4 recherche en main courante,
6.5 qui peut porter une action, 6.7 portée des dépêches et « @tous », 6.10
bibliothèque de modèles de tableau. La lettre en suffixe est déjà l'usage du
document, qui porte un EF-1103c ; elle ne signifie pas « cas particulier du
parent », et les textes le disent d'eux-mêmes.

── Une fonction entière n'était pas spécifiée

« Veille externe » n'apparaissait pas une seule fois dans le cahier des charges.
Ce n'était donc pas trois identifiants à recoller mais une sous-section à
écrire : 6.13, avec la lecture de flux sans bibliothèque tierce, le versement
d'un signal retenu en main courante — source, auteur, heure de publication
d'origine, adresse, numéro de séquence — et la purge à trente jours qui épargne
ce qu'on a retenu.

La garde sur la destination d'une source y est écrite en entier, parce qu'elle
n'a rien d'évident : l'adresse est saisie par l'organisation mais c'est le
serveur qui va la chercher, et l'inscription est en libre-service. Point de
métadonnées d'un hébergeur, boucle locale, nom qui y résout, plages privées en
IPv4 et IPv6, IPv4 encapsulée en IPv6, jeton en clair, flux qui ne s'arrête
jamais — et la borne inverse, qui interdit d'écarter les adresses publiques
voisines des plages privées.

── RG-292 n'avait besoin de rien de neuf

Il vivait au milieu de « RG-291 à RG-293 », une plage dont seuls les bouts
étaient écrits. Son comportement était déjà spécifié dans le texte d'EF-1108,
mot pour mot. La plage est énumérée.

── Ce qui les y maintient

Une garantie, EX-39, et une exigence pour la porter — c'est une treizième
exigence que j'ai écrite, au-delà des douze demandées, et je la signale comme
telle : sans elle, la garantie qui rattache les douze serait elle-même orpheline.

Elle est exécutée en dernier, ce qui est la condition de son sens : elle porte
sur tout ce que la course a touché. Et elle relève les identifiants à
l'exécution, dans le rapport, plutôt qu'au grep du source — un identifiant
calculé y figure, un contrôle jamais exécuté n'y figure pas, ce qui est le bon
comportement des deux côtés.

Éprouvée dans les deux sens, avec une garantie factice : elle signale
« EF-9999 » comme absent des cahiers, et se tait sur EF-1301, qui vient d'y
entrer.

1184 garanties au vert. Les cahiers nomment 296 exigences ; la suite en éprouve
210, toutes rattachées.

── Ce qui reste stale, et que je n'ai pas touché

Le relevé du §10 du cahier de test porte encore « onze étiquettes nomment un
groupe » comme écart ouvert, alors que quatorze sont corrigées, et ne mentionne
ni les barres d'onglets ni les états d'appui. C'est ma propre traîne, sur cinq
commits. Le corriger demande de reprendre les deux tableaux du relevé, ce qui
est un travail de rédaction à part.

Co-Authored-By: Claude (RCA)
parent 4e836903
Loading
Loading
Loading
Loading