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

Le cahier de test, éprouvé contre lui-même

J'ai écrit un vérificateur pour le document avant de l'appliquer au produit :
ancres internes, existence des exigences citées, renvois croisés, recalcul des
chiffres publiés, existence des commandes. Quatre écarts, dont deux graves.

── Une exigence que j'avais inventée

« EF-1401 » n'existe dans aucun des deux cahiers des charges. Je l'avais écrite
pour tracer le parcours des droits. Remplacée par EA-13 et EF-106, qui existent.

Trois autres — EF-505a, EF-708a, EF-1301 — étaient citées comme exigences du
cahier alors qu'elles ne vivent que dans le code. Remplacées par EF-503/505,
EF-702/704 et EF-1201/1207.

── Et le vrai défaut derrière celles-là

Douze identifiants sont employés par la suite de vérification sans exister dans
aucun cahier des charges : EF-107a, EF-404a, EF-505a, EF-707a, EF-707b,
EF-708a, EF-1002a, EF-1301 à EF-1303, RG-292. Qui remonte d'une garantie vers
son exigence tombe sur un cul-de-sac. La liste est désormais dans le cahier,
avec ce que chaque garantie contrôle, à rattacher ou à retirer.

── Deux défauts de rendu, hérités du style de la maison

Aucun des trois documents HTML du dépôt ne déclare son jeu de caractères. Servi
par un serveur qui n'annonce pas UTF-8, le titre s'affichait « Ce qu’une
machine ne peut pas voir ». Le mien le déclare ; les deux cahiers des charges
ont le même manque, signalé et non touché.

Et l'encre discrète des documents avait dérivé plus clair que celle de
l'application : #6D8085 contre #5A6C71, soit 3,49:1 pour les en-têtes de
tableau, sous le seuil AA. Alignée sur la couleur du produit — 4,64:1. Les deux
cahiers des charges portent la même dérive.

── La révision

Le document citait une révision figée, ce qui n'a pas de sens pour un cahier
qu'on rejoue : il dit maintenant à quelle révision ses chiffres ont été
extraits, et demande à chaque campagne de consigner celle qu'elle a éprouvée.

Mesuré après correction : texte 15,2:1, titres de section 6,6 et 8,6:1,
pastilles 4,7 à 5,5:1, aucun débordement à 1440 et 900 px, le sommaire passe de
collant à statique au point de rupture, aucun tableau large hors cadre.

Co-Authored-By: Claude (RCA)
parent 8f705b3d
Loading
Loading
Loading
Loading
+50 −13
Changes for cahier-de-test.html: 50 added lines, 13 removed lines.
Original line number Diff line number Diff line
<meta charset="utf-8">
<title>Cahier de test Kastell</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
@@ -7,7 +8,7 @@
:root{
  --bg:#E9ECEE; --surface:#FFFFFF; --surface-2:#F2F5F6; --surface-3:#E3E9EA;
  --line:#D2DADC; --line-strong:#A6B4B7;
  --ink:#10181B; --ink-2:#3F5257; --ink-3:#6D8085;
  --ink:#10181B; --ink-2:#3F5257; --ink-3:#5A6C71;
  --accent:#0E5A66; --accent-soft:#DBEDEF;
  --crit:#A8352A; --crit-soft:#F6E2DF;
  --warn:#8A6112; --warn-soft:#F7EBD4;
@@ -185,7 +186,7 @@ footer{
<header class="mast">
  <div class="kicker">
    <span>Kastell</span><span class="sep"></span><span>Cahier de test</span>
    <span class="sep"></span><span>Révision c8d33ad</span>
    <span class="sep"></span><span>Chiffres extraits en 8f705b3</span>
  </div>
  <h1>Ce qu’une machine ne peut pas voir</h1>
  <p class="deck">
@@ -745,7 +746,7 @@ pnpm arreter # arrête tout, sans détruire les volumes</code></pre>
<div class="parcours">
  <header>
    <span class="id">P4</span><span class="titre">Conduire — décider, confier, publier</span>
    <span class="pousse"><span class="rid">EF-501</span><span class="rid">EF-505a</span><span class="rid">EF-601</span></span>
    <span class="pousse"><span class="rid">EF-501</span><span class="rid">EF-503</span><span class="rid">EF-505</span><span class="rid">EF-601</span></span>
  </header>
  <div class="corps">
    <p class="pre">Prérequis&nbsp;: crise ouverte, deux cellules, deux membres admis.</p>
@@ -810,7 +811,7 @@ pnpm arreter # arrête tout, sans détruire les volumes</code></pre>
<div class="parcours">
  <header>
    <span class="id">P6</span><span class="titre">Clore et relire</span>
    <span class="pousse"><span class="rid">EB-04</span><span class="rid">EB-12</span><span class="rid">EF-1301</span></span>
    <span class="pousse"><span class="rid">EB-04</span><span class="rid">EB-12</span><span class="rid">EF-1201</span><span class="rid">EF-1207</span></span>
  </header>
  <div class="corps">
    <p class="pre">Prérequis&nbsp;: une crise avec au moins vingt entrées, deux décisions,
@@ -877,7 +878,7 @@ pnpm arreter # arrête tout, sans détruire les volumes</code></pre>
<div class="parcours">
  <header>
    <span class="id">P8</span><span class="titre">Deux personnes en même temps</span>
    <span class="pousse"><span class="rid">EF-701</span><span class="rid">EF-708a</span><span class="tag">deux postes</span></span>
    <span class="pousse"><span class="rid">EF-701</span><span class="rid">EF-702</span><span class="rid">EF-704</span><span class="tag">deux postes</span></span>
  </header>
  <div class="corps">
    <p class="pre">Prérequis&nbsp;: deux comptes membres de la même crise, côte à côte.</p>
@@ -1054,7 +1055,7 @@ pnpm arreter # arrête tout, sans détruire les volumes</code></pre>
<div class="parcours">
  <header>
    <span class="id">P14</span><span class="titre">Droits et refus</span>
    <span class="pousse"><span class="rid">EA-01</span><span class="rid">EF-1401</span></span>
    <span class="pousse"><span class="rid">EA-01</span><span class="rid">EA-13</span><span class="rid">EF-106</span></span>
  </header>
  <div class="corps">
    <p class="pre">Prérequis&nbsp;: les quatre comptes de rôles distincts du §03. Ce parcours
@@ -1187,7 +1188,7 @@ pnpm arreter # arrête tout, sans détruire les volumes</code></pre>
<div class="note crit">
  <span class="lbl">Avertissement au testeur</span>
  Ces quinze exigences décrivent des fonctions qui n’existent pas dans la révision
  <code>c8d33ad</code>. Vérifié dans le code, non déduit. La fiche se solde
  <code>8f705b3</code>. Vérifié dans le code, non déduit. La fiche se solde
  « non implémenté », sans capture et sans recherche.
</div>
<div class="scroll">
@@ -1343,13 +1344,48 @@ pnpm arreter # arrête tout, sans détruire les volumes</code></pre>
  ils ne remplacent pas l’œil.
</p>

<h3>Douze garanties dont l’exigence n’existe pas</h3>
<p class="measure">
  Ces identifiants sont employés par la suite et n’apparaissent dans aucun des
  deux cahiers des charges. Un testeur qui remonte d’une garantie vers son
  exigence tombe donc sur un cul-de-sac. Constaté en rédigeant ce cahier, non
  supposé&nbsp;: c’est la différence entre les identifiants cités par
  <code>r.verifie</code> et ceux que les cahiers nomment.
</p>
<div class="scroll">
<table>
  <caption>À rattacher au cahier des charges, ou à en retirer</caption>
  <thead><tr><th>Identifiant</th><th>Ce que la garantie contrôle</th></tr></thead>
  <tbody>
    <tr><td><span class="rid">EF-107a</span> <span class="rid">EF-107b</span></td>
      <td>Invitation multicanal, et laissez-passer quand aucun canal ne part.</td></tr>
    <tr><td><span class="rid">EF-404a</span></td>
      <td>Ce que le journal verse de lui-même en main courante.</td></tr>
    <tr><td><span class="rid">EF-505a</span></td>
      <td>Qui peut porter une action, au-delà des membres d’une cellule.</td></tr>
    <tr><td><span class="rid">EF-707a</span> <span class="rid">EF-707b</span></td>
      <td>Recherche&nbsp;: portée et refus.</td></tr>
    <tr><td><span class="rid">EF-708a</span></td>
      <td>Conversations flottantes&nbsp;: réduire et fermer sont deux gestes.</td></tr>
    <tr><td><span class="rid">EF-1002a</span></td>
      <td>Modèles de tableau blanc qui posent des éléments.</td></tr>
    <tr><td><span class="rid">EF-1301</span> <span class="rid">EF-1302</span>
      <span class="rid">EF-1303</span></td>
      <td>Veille externe&nbsp;: lecture d’un flux, versement, refus de surveiller une
        personne nommée.</td></tr>
    <tr><td><span class="rid">RG-292</span></td>
      <td>Alertes multilingues&nbsp;: la variante non déclarée du cahier.</td></tr>
  </tbody>
</table>
</div>

<h2 id="s10"><span class="n">10</span>Relevé et suites</h2>

<h3>La fiche d’écart</h3>
<div class="card">
<pre><code>Identifiant   P11.3
Exigence      EX-19 (filet d'erreurs)
Révision      c8d33ad
Révision      8f705b3
Rôle          directeur de crise
Navigateur    Firefox 129 — 1440×900 — langue fr — thème sombre
Prérequis     crise ouverte, une action au statut « à faire »
@@ -1395,11 +1431,12 @@ Journal aucune entrée correspondante en main courante</code></pre>

<footer>
  <div class="wrap" style="padding:0">
    Kastell — cahier de test, révision <code>c8d33ad</code>.
    Compagnon du cahier des charges&nbsp;: les identifiants d’exigence renvoient à
    <code>cahier-des-charges.html</code>. Les chiffres de couverture sont extraits
    du source à la rédaction&nbsp;: <code>pnpm verif</code> les recompte à chaque
    exécution.
    Kastell — cahier de test. Compagnon du cahier des charges&nbsp;: les identifiants
    d’exigence renvoient à <code>cahier-des-charges.html</code>.
    Les chiffres publiés ont été extraits du source en <code>8f705b3</code>&nbsp;;
    <code>pnpm verif</code> les recompte à chaque exécution, et chaque campagne
    consigne la révision qu’elle a réellement éprouvée — celle du pied de page de
    l’application.
  </div>
</footer>