Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Schopnost, kterou dokumentace slibuje a nic ji nedokazuje

Věta popisující, co software dělá, se napíše jednou a nikdy se nespojí s ničím, co by selhalo, kdyby přestala platit.

→ přečetl v README slib, za nímž nestál žádný test

cena, když k tomu dojde
vysoká
jak často
běžné

Okamžik

README říká, že nástroj před zápisem ověřuje vstup. Dříve ano. Ověření bylo odstraněno při refaktoringu před osmi měsíci a věta zůstala, protože nic nespojovalo větu s kódem.

Proč k tomu dochází

Próza a chování se udržují různými úkony. Smazání kódu je změna s diffem; smazání věty, která jej popisovala, je akt vzpomínání. Nikdo si nevzpomene a žádná kontrola neexistuje, protože věta není testovatelný artefakt — je to odstavec.

Proč to lepší model nevyřeší

Worker, který má implementovat podle dokumentace, věrně implementuje podle popisu systému, který už neexistuje. Dokumentace, která nemůže být nepravdivá, se od pravdivé nedá odlišit.

Co to stojí

Uživatelé a přispěvatelé staví na slibu, který se nedodržuje. Hůř, slib se používá jako specifikace: někdo popsané chování špatně obnoví nebo postaví vrstvu na záruce, která nikdy neexistovala.

Co Majordomus dělá

Věta o schopnosti je tvrzení se stavem — guaranteed, advisory, planned nebo rejected — se souborem, který ji implementuje, a behaviorálním případem, který ji dokazuje. Zaručené tvrzení bez skutečné implementace a skutečného testu kontrolu neprojde a věta, kterou nelze podložit, se formuluje jako cíl. Případy užití jdou dál: každý jmenuje příkazy a tvrzení, která procvičuje, a nese scénář, který se provádí proti skutečnému nástroji, takže příklad na stránce je výstupem běhu, ne vloženým textem.

Před a po

before   README: "validates input before writing"     (last true in January)

after    $ majordomus doctor
         FAIL claims  input-validation — status guaranteed, test '-' 
                      [reproduce: majordomus usecase coverage]

Co nedělá

Nepíše testy a nepozná, zda je test dobrý. Odmítá kombinaci silného tvrzení a žádných důkazů, což je stav, v němž dokumentace začíná lhát.

Jak to vypadá

Konkrétní situace, jedna pro každé publikum. Každá je deklarována v záhlaví okamžiku, takže stav před a po jsou data, ne próza, od které by se stránka mohla odchýlit.

  1. README, které slibuje open-source-maintainer

    před
    README říká, že nástroj odmítá neplatný vstup; odmítnutí bylo při refaktoringu odstraněno a nikdo si toho nevšiml.
    po
    Každá věta o schopnosti je tvrzení se stavem, implementací a testem a tvrzení bez testu smí být formulováno jen jako cíl.
  2. Záruky platform-team

    před
    Marketingová próza a inženýrská realita jsou ve stejném odstavci a nelze je rozlišit.
    po
    Tvrzení nese svůj vlastní stav, takže „zaručeno“ a „plánováno“ jsou různá slova s různými závazky.
  3. Které sliby jsou nosné enterprise

    před
    Schopnost, na které spoléhá kontrola, je zdokumentována a neprokázána a mezera se objeví při auditu.
    po
    Zaručené tvrzení pojmenovává svůj implementační soubor a svůj behaviorální případ a CI odmítne tvrzení, které nepojmenovává ani jedno.

Jak to poznáte

Pozorovatelné příznaky, které tento okamžik deklaruje. Jsou dotazníkem na indexu a vstupem pro majordomus why diagnose; nic jiného je nedefinuje.

  • Dokumentace uvádí schopnost a žádný test by neselhal, kdyby zmizela. claim-no-test
  • Nikdo neumí jmenovat test, který dokazuje dané zdokumentované chování. cannot-name-the-test
  • Dokumentace popisuje zamýšlené chování vedle skutečného a nic neoznačuje, co je co. aspirational-prose

Kde to v nástroji najdete

Vše níže je načteno z vlastního záhlaví tohoto okamžiku a ověřeno proti repozitáři. Neexistující název by neprošel validací.

příkazy, které na to odpovídají

schopnosti spustitelného souboru, které na to odpovídají

co dohlíží — odvozeno z tvrzení níže

tvrzení, která tuto stránku podpírají, a důkazy za každým z nich

pravidla, která jej řídí

  • project.no-claim-without-test
  • project.use-case-evidence
  • majordomus.use-case-coverage
  • majordomus.verify-outcomes

případy užití, které ukazují cestu ven

Pokud vám tohle zní povědomě, další také

Co tento okamžik pojmenovává, co pojmenovává jeho a co sdílí jeho oblast, publikum nebo štítky. Druhé a třetí je odvozeno; zapsáno je jen první.

Všech 38 a jak souvisejí s nástrojem →

Prohledává názvy a popisy všech stránek, které tento web publikuje.