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.

Scénář případu užití se provede proti skutečnému nástroji v jednorázovém repozitáři, ověří se návratový kód a výstup každého kroku a web ukazuje normalizované důkazy

Případ užití nese scénář: připravený repozitář a skutečná volání

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

majordomus usecase run zapíše .ai/local/evidence/use-cases/<id>.json; scripts/generate-site-data spouští stejné scénáře a vkládá důkazy do site/data/generated/catalogue.json, takže --check dokazuje, že stránky ukazují to, co nástroj udělal. Cesty, časové značky, id, hashe a doby trvání jsou normalizovány; nic z chování ne.

Co to znamená

Případ užití nese scénář: připravený repozitář a skutečná volání bin/majordomus s očekávanými exit kódy a výstupem. majordomus usecase run jej provede krok za krokem v dočasném repozitáři, který připravil setup skript, a zaznamená příkaz, exit kód, výstup a aserce každého kroku jako důkaz v lokální polovině. Generátor webu spouští tytéž scénáře a důkaz vkládá, takže stránka, která ukazuje, co příkaz vypsal, ukazuje, co nástroj udělal v době jejího vzniku, a scripts/generate-site-data --check to v CI dokládá znovu.

Princip

mj_uc_run_one v lib/usecase.sh vytvoří repozitář, načte setup skript z fixtures (sdílený s ukázkami příkazů), spustí každý krok s argv ze souboru (nikdy shellový řetězec), zachytí spojený výstup, ověří exit kód a každé očekávání stdout_contains, stdout_not_contains, files_exist a files_contain, normalizuje výstup (cesta repozitáře, cesta nástroje, domovský adresář, časová razítka, id úloh a relací, hashe záznamů, doby trvání) a zapíše .ai/local/evidence/use-cases/<id>.json. Generátor zahodí časování a zbytek vloží do site/data/generated/catalogue.json; šablona stránky jej vykreslí.

Jak to vidět

majordomus usecase run                          # every scenario; exit 10 on a failed step
majordomus usecase run prove-a-rule-is-enforced --keep
majordomus usecase show prove-a-rule-is-enforced   # the file and its last evidence
jq '.steps[] | {command, exit, result}' .ai/local/evidence/use-cases/prove-a-rule-is-enforced.json

Co nepokrývá

Důkazy dokazují tvrzení scénáře a nic víc: scénář, který tvrdí málo, dokazuje málo. Normalizace nahrazuje hodnoty, které se liší podle stroje a času; chování, které se liší podle stroje, jí není skryto a kontrola selže.

Proč existuje

Vložený přepis v dokumentaci je fikce den poté, co byl vložen. Důkaz vygenerovaný provedením scénáře a ověřený proti čisté regeneraci se od nástroje nemůže rozejít.

Detail vykreslený z docs/claims/use-case-evidence.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Scénář případu užití se provede proti skutečnému nástroji v jednorázovém repozitáři, ověří se návratový kód a výstup každého kroku a web ukazuje normalizované důkazy

    Vytvořeno na Use cases, Doctor.

  2. 2 · kanonické tvrzení

    use-case-evidencedeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si na tomto webu · docs/USE_CASES.md

  3. 3 · implementace

    lib/usecase.sh · majordomus usecase

  4. 4 · test a scénáře

    Test: test/cases/94_use_cases.sh

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 94_use_cases

Kde se toto tvrzení používá

Související tvrzení stejná implementace

Okamžiky, na které to odpovídá

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