10 KiB
10 KiB
自動テスト対応表
この表は、仕様上の主要な不変条件をどのHeadless Testで検証しているかを示す。ゲームルールの正本ではなく、実装の回帰防止範囲を確認するための索引である。
実行
全件:
make test
段階別:
make test-s0
make test-s1
make test-s2
make test-s3
make test-s4
make test-s5
make test-s6
make test-mvp
make test-acceptance
make test-ui
make test-perf
make test-perf-full
構文、Autoload、Main Sceneの読み込み確認:
make check
対応表
| 段階 | Test | 主な検証対象 |
|---|---|---|
| S0 | tests/run_tests.gd |
Clock、GameState、基本Snapshot、Atomic Save |
| S0 | tests/s0/test_definition_registry.gd |
Definition Schema、重複ID、参照検証 |
| S0 | tests/s0/test_command_transaction.gd |
Command順序、処理後も残る受理ID/冪等Key履歴、旧Snapshot移行、厳密復元、Transaction rollback |
| S0 | tests/s0/test_determinism.gd |
24時間再生、RNG Stream、Digest一致 |
| S0 | tests/s0/test_stable_id_generator.gd |
安定ID、Save/Load後の連番 |
| S0 | tests/s0/test_domain_events.gd |
Domain Event順序、再配送境界、Batch全件先行Commit、無変更拒否、再入配信順、配信中Restore拒否 |
| S0 | tests/s0/test_runtime_integration.gd |
Runtime Command、Snapshot、復元原子性 |
| S1 | tests/s1/test_world_service.gd |
Zone/Layer、Occupancy、支持、Rank拡張 |
| S1 | tests/s1/test_path_service.gd |
決定的A*、権限Edge、Cache失効 |
| S1 | tests/s1/test_path_congestion.gd |
密度Cost、Soft Collision、Cache低下側失効、Connector権限別Cost、Elevator Request一意性、停止時迂回、退場Cleanup、30分停滞 |
| S1 | tests/s1/test_construction_service.gd |
Placement、費用、取消、完成、撤去、完成通知の保留/確定/破棄、通知中の再入拒否 |
| S1 | tests/s1/test_excavation_service.gd |
硬度別費用・時間、入口接続、支保、中断再開、二層解放、厳密Snapshot |
| S1 | tests/s1/test_spatial_subslot_service.gd |
ROUTE/DECORATION/UTILITY独立共存、複数Cell、crosslink、revision、Path query、外部検証境界、厳密Snapshot |
| S1 | tests/s1/test_route_subslot_path_adapter.gd |
base+ROUTEのPath投影、追加・置換・撤去の原子更新、到達性、revision、隔離、厳密Snapshot |
| S1 | tests/s1/test_facility_infrastructure_projector.gd |
完成した客用/業務用通路と職員扉の実Path投影、利用権限、安定ID、撤去、replay、crosslink、exact rollback、隔離、厳密Snapshot、未対応昇降機の無変更拒否 |
| S1 | tests/s1/test_runtime_infrastructure_integration.gd |
Runtime v6、掘削29/30分境界、建設通知順、通路・職員扉完成/撤去、失敗時signalゼロ、Rank拡張、v5代理施設移行、破損Saveの原子的拒否 |
| S1 | tests/s1/test_runtime_world_construction.gd |
World/Path/Construction統合とReplay |
| S2 | tests/s2/test_facility_service.gd |
状態優先、Queue、Slot、中断、原子的完了 |
| S2 | tests/s2/test_inventory_logistics.gd |
FEFO、Reservation、Cargo所有権、入力fingerprint冪等性、ID Tombstone、Carrier予約負荷、原子Batch |
| S2 | tests/s2/test_mana_network_service.gd |
優先供給、Brownout、蓄電、復旧保持 |
| S2 | tests/s2/test_economy_service.gd |
複式Ledger、冪等取引、逆仕訳、残高監査 |
| S2 | tests/s2/test_ledger_backed_resources.gd |
GameState資源とLedgerの原子的Adapter |
| S2 | tests/s2/test_runtime_operations_cycle.gd |
入荷からService売上までの完全Cycle |
| S3 | tests/s3/test_guest_service.gd |
SYS-GST-001〜007、6欲求、旧5欲求移行、成人境界、Utility、退出復旧 |
| S3 | tests/s3/test_staff_service.gd |
SYS-STF-001〜006、複数Shift、Task原子性、雇用区分、日給、退職者未払台帳 |
| S3 | tests/s3/test_staff_payroll_operations.gd |
当日日給と繰越債務、部分清算、退職後債務、日次冪等性、厳密履歴Snapshot |
| S3 | tests/s3/test_runtime_actor_cycle.gd |
Guest/Staff/Facility/Inventory/Ledgerの24時間統合 |
| S3 | tests/s3/test_runtime_actor_hardening.gd |
実移動、残高予約、勤務終了、破損Snapshot拒否 |
| S3 | tests/s3/test_runtime_path_traffic.gd |
Guest/StaffのPath密度投影、固定小数点混雑速度、30分停滞復旧、旧Runtime移行、Dispatcher相互照合 |
| S4 | tests/s4/test_relationship_event_service.gd |
SYS-REL-001〜004、SYS-EVT-001〜004、限定Lock修復、Content Filter enum厳密復元 |
| S4 | tests/s4/test_placement_risk_preview_service.gd |
同一施設・Shift接触時間、Shield/Event候補、Route Lock警告、Content Filter不変、決定的回避案、fail-closed入力 |
| S4 | tests/s4/test_runtime_relationship_events.gd |
Choice pause、Cost escrow、Actor欠落、exact Replay |
| S5 | tests/s5/test_authority_service.gd |
SYS-AUT-001〜004、Heat、Evidence、Inspection |
| S5 | tests/s5/test_defense_service.gd |
Wave、参加者、扉、設備、目的物、Skill、撤退、Snapshot |
| S5 | tests/s5/test_runtime_authority_cycle.gd |
Path/LOS/Ledger/Authority統合とexact Replay |
| S5 | tests/s5/test_runtime_defense_cycle.gd |
全10 Command、専用RNG、Skill費用、Staff/Facility損害、Raid排他Lock、途中Save、原子rollback |
| S6 | tests/s6/test_save_operations.gd |
Autosave世代・縮小、Migration、Checksum Recovery、package内symlink拒否、rename中断復旧 |
| S6 | tests/s6/test_performance_budget.gd |
x1/x4、Path、Save/Loadの性能予算判定 |
| S6 | tests/s6/test_runtime_save_lifecycle.gd |
06:00日次保存、3世代、Recovery、読込原子性、限定修復、Content Filter統合 |
| MVP | tests/mvp/test_operations_coordinator.gd |
06:00営業日締め・朝境界、需要・自動来客、7日平均、未払・破綻、14日exact replay |
| MVP | tests/mvp/test_mvp_content_catalog.gd |
客8クラス×種族4種、雇用候補20人、ユニーク2人、成人境界、厳密Schema、全体fail-closed |
| MVP | tests/mvp/test_progression_service.gd |
Rank 1~7条件、累計値、逐次昇格、原子的World境界、冪等性、rollback隔離、Snapshot |
| MVP | tests/mvp/test_runtime_content_progression.gd |
32 Guest定義、候補雇用・契約費・日給・Shift・Path、未払時の無変更拒否、累計値、Rank拡張、旧Runtime移行、Runtime v6、24時間再生 |
| MVP | tests/mvp/test_runtime_operations_integration.gd |
本番運営の明示有効化、06:00営業日境界、実来客、給与・未払・破綻、Runtime v6、14日運営境界再生 |
| MVP | tests/mvp/test_runtime_operations_acceptance.gd |
実Tick 24時間、選択待ち停止再開、Save・Command再送、部分給与、破綻、破綻後no-op、14日運営境界の連続/Day 7復元一致 |
| UI | tests/ui/test_main_dashboard.gd |
2解像度Layout、本番運営表示、雇用候補20人の表示と即時/予約雇用・二重送信防止・保存済み操作連番復元、座標変換、建設、掘削モード/Preview/Command、施設選択、前景Event Choice、手動Save/Load |
| PERF | tests/performance/test_perf_mvp_001.gd |
独立Service合成の24時間負荷Smoke。PERF_MVP_FULL=1で仕様上限の完全Fixture。Runtime全Domain・UI・実描画Frameは別受入 |
横断的な合格条件
各System追加時は、少なくとも次を同じ段階のTestへ含める。
- 不正入力を副作用なしで拒否する。
- 外部境界の途中失敗を原子的に巻き戻す。
- 同じCommandまたは解決IDを再送しても二重適用しない。
- Snapshotを完全往復でき、破損Snapshotの拒否が既存状態を変えない。
- 同一Seed、同一Command列、同一開始Snapshotから同一Digestへ到達する。
- Actor、Task、Reservation、Queue、Ledger、Event Lockに孤児参照を残さない。
性能Scenarioは機能回帰とは分離して測定する。時間超過時にもTickやEntityを間引いて合格扱いにはしない。
MVP受入として未完了のScenario
System単体の合格と、ゲームとしてのMVP合格を混同しないため、次は別の受入Scenarioとして追加する。
数値境界、共通Fixture、A/B分岐条件は MVP_ACCEPTANCE_SCENARIOS.md を正本とする。
- 全Actor AI、Event、監査、Path移動を含む20,160回の実Tickで14ゲーム日を完走する。現在の14日自動試験は運営境界を加速しており、実Tick受入の代替にはしていない。
- 夕方混雑を、施設追加前後と動線改善前後で同一Seed比較する。
- FRONTだけの動線と適切なBACK動線を、物流時間・従業員移動・客待ち時間で比較する。
- 健全営業と地下営業を、Heat対策費込みの14日利益で比較する。
- ヒロイン/ライバルの配置変更前に、接触・Shield・EventリスクPreviewが変化することを確認する。
- 100客、30従業員を表示した状態で基準PCの実Frame rateを測定する。
- 初見Playtestで地上/地下とFRONT/BACKの違いを30分以内に説明できるか観察する。
P2 明示階段と車内混雑(Runtime v9/Path v5)
make test-stairs: 全階間Path policy、transit密度、階段投影と下部足場、一回限りの旧通路移行、実移動端数と保存、占有中の撤去拒否、階段と待ち統計のUI。make test-transport: 上記に加え、既存の実かご・実通勤・工事勤務境界・自然4停止階の乗降、旧乗車中保存の密度移行を検証。make test-transport-comparison: 同Seed/同需要48人/480分で1台と2台を比較。Path+かご版と実GuestRuntime版を区別し、P95・全員の完了・実歩数・途中再生・設備費を記録。make test-opening/make test-supply: 上階動線を明示階段へ更新した通常初期予算の営業。Guideは実Path到達を使う。- 条件・数値・限界は P2階段と比較QA。固定需要比較を自然来客の離脱改善やS14全条件の合格としない。