Field notes
Notes courtes prises en construisant : une observation, sa cause, le correctif, le test qui le tient, et ce qui reste ouvert.
Écrit et couvert par des tests, pas encore observé en exécution réelle
Chaque note suit les mêmes quatre temps : ce qui a été vu, pourquoi c’est arrivé, ce qui a changé, et ce qui n’est toujours pas couvert. Elles sont courtes à dessein, une note est une mesure et une conséquence.
#Un correctif qui reproduisait son propre défaut
- Observé, une demande combinant trois livrables n’en produisait que deux.
- Cause, la liste des négations était cherchée en sous-chaîne. L’article indéfini français contient la particule de négation, donc « une présentation » se lisait « ne présentation ».
- Correctif, la négation se cherche sur des mots entiers, en découpant sur tout ce qui n’est pas alphanumérique, l’apostrophe exceptée.
- Test, une demande combinée doit rendre trois sorties distinctes.
- Reste ouvert, l’analyseur est lexical. Une demande formulée en question plutôt qu’en consigne n’est pas couverte.
#Un test qui accusait la prose
- Observé, une garde exigeait que l’outil de classeur n’expose aucun chemin de fichier, et elle rougissait.
- Cause, la garde lisait la description humaine de l’outil, y trouvait le mot « chemin » dans une phrase expliquant qu’il n’y en a pas, et rougissait sur sa propre explication.
- Correctif, la garde inspecte désormais les clés du schéma d’entrée déclaré.
- Test, le schéma porte exactement six clés, et aucune n’est un chemin.
- Reste ouvert, rien ne vérifie que la description et le schéma s’accordent.
#Un fichier sur un disque n’est pas une preuve
- Observé, un tableur se trouvait dans une salle de données, et il avait l’air de prouver que le moteur marchait.
- Cause, il avait été écrit par un agent Python dans une version antérieure, avant que le moteur n’existe.
- Correctif, aucun dans le code ; c’est la règle de compte rendu qui a changé. Un fichier produit ne compte comme preuve que si l’exécution qui l’a écrit est identifiée.
- Test, les tests du moteur écrivent, rouvrent et vérifient, pour que son affirmation ne repose jamais sur un fichier trouvé par quelqu’un.
- Reste ouvert, le moteur n’a toujours jamais tourné dans une session d’agent réelle.
#Un compteur qui voyait les voisins
- Observé, un test exigeant qu’une carte bloquée ne démarre aucun processus rougissait, apparemment au hasard.
- Cause, le compteur de processus était global et ramassait des auxiliaires inoffensifs lancés par les tests voisins.
- Correctif, le compteur ne compte que les processus d’éditeurs.
- Test, la même assertion, désormais stable.
- Reste ouvert, le compteur est une heuristique sur le nom du processus.
#Une demande qui convoquait le mauvais rôle
- Observé en exécution réelle, une demande de classeur est allée au seul analyste fondamental. Personne qui possède le format du classeur n’a été appelé.
- Cause, l’aiguillage se fondait sur les mots de la demande plutôt que sur le propriétaire du format demandé.
- Correctif, un livrable demandé convoque son propriétaire. Un format, un propriétaire.
- Test, une demande de classeur appelle le rôle comptable même sans mot-clé comptable dans la phrase.
- Reste ouvert, testé, pas encore observé en exécution réelle.
#Une interruption brutale n’est pas une sortie propre
- Observé, un processus orphelin est resté après une session, et il a fallu le terminer à la main.
- Cause, l’application a été arrêtée par un signal plutôt que par son propre chemin de sortie, donc sa routine d’extinction n’a jamais tourné.
- Correctif, aucun. Le comportement est correct : une interruption brutale contourne le nettoyage par définition.
- Test, le chemin de sortie arrête tout processus qu’il a démarré.
- Reste ouvert, ce n’est pas la preuve qu’une sortie normale fuit ; c’est la preuve qu’une interruption brutale, si.
#Sources
- Deskworth OS, product state at 0.0.23DeskworthDocument interne, non publié
- Deskworth OS, handover report 0.0.22DeskworthDocument interne, non publié
Read next
- Études de casDes exécutions qui ont réellement eu lieu, avec ce qui a été demandé, les rôles convoqués, ce qui a été produit, et où chacune s’est arrêtée.
- MéthodologieComment une exécution Deskworth est posée pour qu’on puisse discuter son résultat : périmètre, date d’arrêté, sources admissibles, données manquantes, provenance, contrôles, et ce qui compte comme preuve.
More in Research