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)