---
generated_at: 2026-02-22 00:15:00
metrics:
  claims_total: 43
  claims_with_evidence: 39
  claims_without_evidence: 4
confidence_derived: 0.91
---

# 根拠レポート：非機能要件テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.91**
  - 根拠あり：39 / 43、根拠なし：4
- 優先レビュー（高）
  1. **NFT-007 シーン遷移時のメモリ確保スパイクテスト**：HSPのGC非搭載は推定であり直接的なメモリリーク計測根拠なし
  2. **NFT-008 曲リスト構築パフォーマンステスト**：合格基準「30秒以内」は推定値であり実測根拠なし
  3. **NFT-022 コースファイル相対パストラバーサルテスト**：「..」のみのパスが検出されない可能性は推定であり未検証
  4. **NFT-038 Wine環境での動作テスト**：README記載はあるが具体的なWineバージョン等の根拠なし

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `third_party/mod_d3d9vsync.hsp` — Direct3D 9 VSync走査線同期実装
- E-02: `src/bass.as` — BASSライブラリAPI定義
- E-03: `kshootmania.hsp` — メインプログラム（DLLチェック、初期化、BOM検出、instr修正、picloadラッパー、パストラバーサルチェック）
- E-04: `src/scene/play/play_audio.hsp` — 音声再生位置同期処理
- E-05: `src/scene/play/play_chart_load.hsp` — チャートデータ読み込み・配列確保・音声バッファ
- E-06: `src/scene/play/play_game_logic.hsp` — 入力判定ロジック（judgedelay補正）
- E-07: `src/scene/play/play_update.hsp` — フレーム更新処理（VSync切替、フレームスキップ、Windows 10対応）
- E-08: `src/scene/play/play_audio_effects.hsp` — 音声エフェクト更新処理
- E-09: `src/scene/select.hsp` — 選曲画面（曲リスト構築、HTTPストリーミング）
- E-10: `src/filesystem_utils.as` — safeChdir/dirExistsユーティリティ
- E-11: `third_party/rc4_crypt.hsp` — RC4暗号実装
- E-12: `third_party/jstick.as` — ジョイスティック入力（joyGetPosEx）
- E-13: `src/winapi.as` — Win32 API呼び出し定義
- E-14: `src/ir.hsp` — インターネットランキング（削除済みスタブ）
- E-15: `README.md` — 動作環境要件・設計上の問題点の記述
- E-16: `lang/` — 多言語テキストファイル（Japanese/English/Korean/Simplified Chinese/Traditional Chinese）
- E-17: `src/kshlib.as` — kshlib.dll API定義
- E-18: `src/ksmcore.as` — ksmcore.dll API定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | NFT-001: VSync走査線待機モードで60FPS安定維持 | E-01, E-07 | ○ |
| C-02 | NFT-002: タイマーモードでのFPS安定性（timeBeginPeriod 1） | E-01, E-07 | ○ |
| C-03 | NFT-003: BASSバッファ200ms/更新周期100msのレイテンシ | E-02, E-03 | ○ |
| C-04 | NFT-004: 複数チャンネル間100ms超で再同期 | E-04 | ○ |
| C-05 | NFT-005: judgedelay_configによる入力遅延補正 | E-06 | ○ |
| C-06 | NFT-006: 131072要素×複数配列の大規模メモリ確保 | E-05 | ○ |
| C-07 | NFT-007: シーン遷移時のメモリスパイク（GC非搭載） | E-05, E-15 | △ |
| C-08 | NFT-008: SONG_MAX=8192曲の読み込み性能（30秒基準） | E-03, E-09 | △ |
| C-09 | NFT-009: bufferfrommemory時の4トラック音声メモリ読み込み | E-05 | ○ |
| C-10 | NFT-010: frameskipによる描画間引き | E-07 | ○ |
| C-11 | NFT-011: lowquality/highquality描画品質設定 | E-07 | ○ |
| C-12 | NFT-012: updateperiod依存のエフェクト更新頻度 | E-08 | ○ |
| C-13 | NFT-013: exist命令による必須DLL存在チェック | E-03 | ○ |
| C-14 | NFT-014: KSHLib_GetVersionによるバージョンチェック | E-03, E-17 | ○ |
| C-15 | NFT-015: BASS_Init失敗時のダイアログ表示 | E-03 | ○ |
| C-16 | NFT-016: D3D9_TestCooperativeLevelによるデバイスロスト検出 | E-01 | ○ |
| C-17 | NFT-017: picloadラッパーによる画像不在検出 | E-03 | ○ |
| C-18 | NFT-018: safeChdirによるディレクトリ不在時のエラー表示 | E-10 | ○ |
| C-19 | NFT-019: 複数音声ファイルのフォールバック機構 | E-05 | ○ |
| C-20 | NFT-020: VSync初期化失敗時のタイマーモードフォールバック | E-01 | ○ |
| C-21 | NFT-021: 「./」「.\」パストラバーサルチェック | E-03 | ○ |
| C-22 | NFT-022: 「..」のみの相対パスが検出されない可能性 | E-03, E-10 | △ |
| C-23 | NFT-023: #uselib指定がファイル名のみでDLLハイジャックリスク | E-02, E-13, E-01 | ○ |
| C-24 | NFT-024: RC4暗号の脆弱性 | E-11 | ○ |
| C-25 | NFT-025: HTTPのみのストリーミング通信 | E-09 | ○ |
| C-26 | NFT-026: BPM負値チェック（"-"文字除去比較） | E-05 | ○ |
| C-27 | NFT-027: ver=フィールドのint()直接変換 | E-05 | ○ |
| C-28 | NFT-028: Windows 10対応の描画処理 | E-07 | ○ |
| C-29 | NFT-029: HSP 3.51（x86 ANSI版）必須 | E-15 | ○ |
| C-30 | NFT-030: HSP 3.6以降での非互換性 | E-15 | ○ |
| C-31 | NFT-031: scrsize_h/480スケールファクター | E-03 | ○ |
| C-32 | NFT-032: fullscrsize=1280,720設定 | E-03 | ○ |
| C-33 | NFT-033: getkey/onkeyによるキーボード入力 | E-06 | ○ |
| C-34 | NFT-034: analoginput=1〜5のモード別入力処理 | E-12 | ○ |
| C-35 | NFT-035: UTF-8 BOM（0xBFBBEF）検出とsjisenc変換 | E-03 | ○ |
| C-36 | NFT-036: HSP ANSI版でのShift-JIS処理 | E-15 | ○ |
| C-37 | NFT-037: 5言語ファイルとcurrentlang設定 | E-16, E-03 | ○ |
| C-38 | NFT-038: Wine環境での動作可能性 | E-15 | △ |
| C-39 | NFT-039: msvcr100.dll必須依存 | E-03 | ○ |
| C-40 | NFT-040: #module未使用による全変数グローバル化 | E-15 | ○ |
| C-41 | NFT-041: play.hspの14個の#includeによるファイル分割 | E-09 | ○ |
| C-42 | NFT-042: 起動時のDLLバージョンチェック機構 | E-03, E-17, E-18 | ○ |
| C-43 | NFT-043: #undef instrによるマルチバイト文字列バグ修正 | E-03 | ○ |

## 4) 不足情報（Unknown / Missing）
- **NFT-007**: HSPのメモリ管理仕様に関する公式ドキュメントが未確認。GC非搭載の確認は言語仕様からの推定
  - 候補：HSP公式マニュアル / HSPメモリ管理仕様書
- **NFT-008**: 8192曲読み込みの合格基準「30秒以内」は推定値。実測データなし
  - 候補：パフォーマンスベンチマーク結果 / ユーザーフィードバック
- **NFT-022**: `..`のみの相対パスに対するinstrチェックの挙動は未検証
  - 候補：実環境での動作テスト結果
- **NFT-038**: Wine環境での具体的な動作検証結果・対応Wineバージョン情報がない
  - 候補：Wine互換性データベース / 実機テスト結果

## 5) リスクフラグ（レビュー観点）
- **2（高リスク）**: NFT-022 — パストラバーサル防止の網羅性に懸念。`..`単独パスが通過する可能性があり、セキュリティ上の脆弱性となりうる
- **1（中リスク）**: NFT-023 — DLLハイジャックはゲームアプリでは一般的な実装だが、意図しないコード実行リスクがある
- **1（中リスク）**: NFT-024 — RC4暗号は脆弱であり、IR機能が復活する場合は代替暗号の検討が必要
- **1（中リスク）**: NFT-025 — HTTP平文通信による中間者攻撃リスク
- **0（低リスク）**: NFT-007 — メモリスパイクはシーン遷移時のみで発生し、ゲームプレイ中の影響は限定的

## 6) レビュアーチェックリスト（最小）
- [ ] NFT-001〜002: VSync ON/OFFの両モードでフレームレート安定性を実環境で計測しているか
- [ ] NFT-003〜004: オーディオレイテンシのデフォルト値（200ms）が音楽ゲームとして許容範囲か判断しているか
- [ ] NFT-006〜007: 大規模配列確保によるメモリ使用量の上限値を実環境で確認しているか
- [ ] NFT-013〜015: 全必須DLLの不在パターンを網羅的にテストしているか
- [ ] NFT-021〜022: パストラバーサル防止の網羅性（`..`単独パスのケース）を検証しているか
- [ ] NFT-028〜032: Windows 10 + 各解像度の組み合わせを実環境でテストしているか
- [ ] NFT-035〜036: UTF-8/Shift-JISの両エンコーディングで多言語文字列が正しく表示されるか確認しているか
