• ホーム
  • ブログ
  • ギャラリー
  • 料金
  • ホーム
  • ブログ
  • ギャラリー
  • 料金
制作を始める

創る。遊ぶ。

クリエイターブログ

ホーム/ブログ/制作実践

分岐ストーリーのテスト方法:状態マトリクス、パスカバレッジ、回帰テストの完全テンプレート

状態辞書、ノードのテストケース、ペアワイズカバレッジ、重要パスで分岐ストーリーをテストし、再現可能な回帰テストの手順を構築します。

D
DramaFork Editorial Teamインタラクティブ物語とAI制作
2026.08.06読了目安:7分
「分岐ストーリーのテスト方法:状態マトリクス、パスカバレッジ、回帰テストの完全テンプレート」のブログ記事カバー
目次
クリエイターブログ
  1. 01はじめに
  2. 021. 状態辞書を作る
  3. 032. ノードのテストケースを作る
  4. 043. 全数テストの代わりにペアワイズカバレッジを使う
  5. 054. 6つの重要パス
  6. 065. 不具合記録テンプレート
  7. 07完全なルートテストより先に状態辞書を作る
  8. 08ノードのテストケースは異常な入力もカバーする
  9. 09パスカバレッジの優先度をどう分けるか
  10. 10回帰テストケースは実際の不具合から作る
  11. 11リリース報告で説明すべきこと
  12. 12パスにリスクレベルを設定する
  13. 13バージョンアップ時には旧セーブを必ずテストする
記事上部へ

はじめに

分岐ストーリーのテストは、「すべてのルートを一度ずつプレイする」だけでは完了しません。パスの数は急速に増え、多くの不具合は状態の組み合わせから生じます。より確実な方法は、まず状態遷移を検証し、次にリスクを優先したパスで重要な組み合わせをカバーし、最後に各不具合を回帰テストケースに変えることです。

1. 状態辞書を作る

状態 範囲 初期値 書き込み 読み取り 目に見えるフィードバック
trust_A -1/0/1 0 N03/N06 N08/END セリフと援助

読み取り箇所のない変数は削除し、値の出所がない読み取り条件には、その出所を補います。

2. ノードのテストケースを作る

各テストケースには、開始ノード、前提となる状態、操作、想定される次のノード、状態の変化、スクリーンショットまたはログを記録します。時間制限付きの選択では、タイムアウト、制限時間の境界での入力、連続クリックもテストします。メディアノードでは、読み込み失敗と復旧をテストします。

3. 全数テストの代わりにペアワイズカバレッジを使う

関係値の高低と鍵の所持、QTEの成功・失敗と手がかりの入手など、2つの変数の重要な組み合わせを優先してカバーします。高リスクな全組み合わせのテストを代替することはできませんが、比較的低いコストでよくある条件の誤りを発見できます。

4. 6つの重要パス

標準のメインルート、各エンディングへの最短ルート、リソースが最も少ないルート、すべてのQTEに失敗するルート、セーブ/チャプターの復旧ルート、過去の重大な不具合に対する回帰テストルートです。

5. 不具合記録テンプレート

バージョン/プラットフォーム:
開始ノードと前提となる状態:
再現手順:
実際の結果/期待する結果:
発生頻度:
スクリーンショットまたはログ:

リリース前には、少なくともすべての重大な不具合がクローズされ、各エンディングを2回再現でき、セーブデータのアップグレードとチャプタージャンプが検証済みであることを確認し、未カバーの組み合わせに伴うリスクを明示します。

完全なルートテストより先に状態辞書を作る

ストーリー図だけでテストすると、プレイヤーがAからBへ移動したことはわかっても、どの変数に値が書き込まれたかはわかりません。状態辞書では、変数の型、初期値、有効範囲、書き込みと読み取りのノードを定義します。変数名や範囲が変わるたびに、テストケースも更新する必要があります。

関係値は特に制御が難しくなりがちです。単に「信頼が増える」と書くのではなく、いくつからいくつになるのか、上限があるのか、どの場面で読み取るのか、画面でどうフィードバックするのかを記載します。エンディング条件が trust > 3 なら、境界値の3と4を両方テストする必要があります。

ノードのテストケースは異常な入力もカバーする

通常の選択に加えて、連続クリック、カウントダウンの境界での入力、ネットワーク切断、バックグラウンドへの切り替え、メディアの読み込み失敗、高速スキップ、言語の切り替え、セーブデータの復元もテストします。よくある不具合はストーリーの誤りではなく、異常な操作の後に状態が重複して書き込まれたり、まったく書き込まれなかったりすることです。

各テストケースは、再現可能なセーブデータから開始します。「第3章に入って左側をクリックする」だけでは再現に不十分です。第3章に引き継がれる関係値やアイテムが異なる可能性があるためです。

パスカバレッジの優先度をどう分けるか

P0はメインルート、すべてのエンディング、セーブデータの破損、コンテンツの安全性をカバーします。P1は重要な関係、アイテム、QTE、チャプタージャンプをカバーします。P2は個別のセリフと低リスクな視覚的差異をカバーします。コミットごとにノードテストとP0のスモークテストを実行し、リリース候補版でP1/P2を実行します。

カバレッジは、訪問したノード数だけで報告しないでください。状態遷移、エンディング条件、異常時の復旧、未テストの組み合わせも報告します。ノードを訪問したことは、そのすべての条件が正しいことを意味しません。

回帰テストケースは実際の不具合から作る

問題を1つ修正するたびに、元の前提状態と操作を回帰テストの集合に追加します。チャプタージャンプ時の初期値が原因なら、今後のすべてのバージョンでその場面を検証する必要があります。そうしなければ、リファクタリング後に同種の誤りが再発します。

たとえば、プレイヤーがN05で鍵を入手したのに、N08へジャンプするとシステムが初期値の has_key=false を使ってしまう場合です。記録には、通常の全行程とジャンプを使った行程の比較、セーブデータのバージョン、ログを含めます。修正後は、新規セーブ、旧セーブ、チャプターのやり直しをそれぞれ検証します。

リリース報告で説明すべきこと

報告には、合格したエンディング、重要パス、リリースを阻む不具合、残存リスク、バージョンを列挙します。「全行程をテスト済み」のような、監査できない表現は使わないでください。目的はバグがないと宣言することではなく、どの因果関係を検証し、どの組み合わせがまだ不明なのかを意思決定者に伝えることです。

パスにリスクレベルを設定する

メインルートの初回クリア、課金への入口、取り消せない選択、最終エンディングは最高リスクに分類し、ビルドごとにテストします。よく使われるサブルートと主要な合流箇所は毎日回帰テストし、まれな組み合わせはバージョンごとに交代でテストできます。優先順位は、ユーザーへの影響、発生確率、修正コスト、過去の不具合を合わせて決めます。自動化しやすいルートだけをテストしてはいけません。

各テストケースには、初期セーブ、操作手順、期待する状態、目に見える結果、後処理の方法を明記します。失敗時には、ビルド番号、ノード、状態のスナップショット、スクリーンショットまたは動画、最短の再現パスを保存します。「たまに誤ったエンディングへ飛ぶ」としか説明できなければ、開発者は条件計算、セーブデータの移行、メディアの読み込みのどこに問題があるのかを特定しにくくなります。

バージョンアップ時には旧セーブを必ずテストする

状態の追加、ノード名の変更、初期値の調整を行う際は、リリース版の旧セーブを新しいビルドで読み込み、欠けたフィールドがどう補われるか、解放済みのコンテンツが保持されるか、以前のセーブに戻すことで重要な移行処理を飛ばしてしまわないかを確認します。新規セーブで合格しても、アップグレードが安全とは限りません。互換性を維持できない場合は、影響を事前に説明し、理解しやすい対処方法を提示します。

受け入れ会議では、証拠のある結果だけを扱います。どのパスを実行したか、どの状態の境界をカバーしたか、残る不足を許容できる理由は何かを確認します。未カバーの領域を明示することは、大まかな合格率ひとつで安心感を生み出すよりも価値があります。

プロダクト機能を見る 作品を体験

続きを読む

他の記事を見る
完成した作品パッケージのそばに、制作者のツール、バージョンラベル、フィードバック収集箱が置かれている。
制作実践2026.10.04 · 8分

インタラクティブストーリーの結末に署名とバージョン説明をどう書けば、フィードバックの宛先が明確になるか?

結末情報は三層に書けば十分です:納品物の名称とバージョン番号、創作貢献とツール使用の分担、フィードバック時に添える三項目。読者は問題を見れば具体的なファイルを特定でき、あなたはフィードバックを受け取ればどの層を直すべきか判断でき、メールで「どのバージョンのことですか」と何度も聞き返す必要がありません。

同じキャラクターが三つの独立した舞台に現れ、それぞれ異なる進行状況と小道具を保っている。
制作実践2026.10.04 · 7分

同一IPのキャラクターチャットとテキストアドベンチャーで、進行状況が共有されると誤解させずに関係を紹介する方法

二つの入口の関係を「同一世界、同一キャラクターアイデンティティ、それぞれ独立して進行」と書き、入口ページで状態対照表を使い、何が引き継がれ、何が引き継がれないかを明確にする。具体的な方法は四段階:まずこのIPにキャラクターアーカイブを定め、二つの入口が共有するアイデンティティの土台とする。次に各入口ごとに「状態境界」の説明を個別に書く。そして言える/言えない表を用意し、運営コピーを制約する。最後に架空の会話で、プレイヤーが読んだ後に誤った期待を抱かないか検証する。

温かい入口と厳しい鉄門がジャンル約束の落差を生み、制作者が再調整する。
制作実践2026.10.04 · 6分

表紙はホラーなのに本文は温かい日常?作品のジャンル約束が一貫しているか確認する方法

先に結論:あらすじ、冒頭、最初のコアタスク、結末のそれぞれに「プレイヤーがこの時点でどの程度の強度を受け止めると予想するか」を一文で書き、四つを並べて読む。表紙とあらすじがホラーを指しているのに、冒頭が温かい日常だけを提示し、コアタスクで強度が突然最大になるなら、問題は「驚きがあること」ではなく、驚きの前に推論可能な手がかりが欠けていることにある。確認の目的は転換を消すことではなく、転換が起きる前にプレイヤーが既存情報から「ここは重くなるかもしれない」と推測できるようにすることだ。

制作の複雑さはAgentに、創作の決定権はあなたに。

ひとつの物語のアイデアから、脚本、キャラクター、ショット、分岐をまとめ、遊べる最初のバージョンを作れます。

プロダクト

  • 料金
  • 機能
  • 制作フロー
  • 作品例
  • よくある質問

探索

  • 作品ギャラリー
  • クリエイターブログ
  • クリエイターパートナー

法的情報

  • プライバシー
  • 利用規約
© 2026 DramaFork/AIインタラクティブストーリースタジオ
Press Enter to send, or drag away and release.