---
generated_at: 2026-02-22 12:00:00
metrics:
  claims_total: 48
  claims_with_evidence: 44
  claims_without_evidence: 4
confidence_derived: 0.92
---

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

## 本レポートについて

### 目的
本レポートは、生成された非機能要件テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.92**
  - 根拠あり：44 / 48、根拠なし：4
- 優先レビュー（高）
  1. **NFT-006/007/008 VMディスパッチ性能基準値**：合格基準の具体的数値（200ms/100ms/5000ms）はベンチマークコードの存在から推定した参考値であり、公式な性能要件定義は確認できない
  2. **NFT-009 メソッドキャッシュヒット率**：キャッシュヒット率95%以上の基準は一般的なガイドラインに基づく推定値
  3. **NFT-011 メモリプール割当性能**：100万回/秒の基準は一般的な性能期待値であり、プロジェクト固有の要件定義は未確認
  4. **NFT-021 RCE防止**：SECURITY.mdに方針記載があるが、具体的なテスト手法の定義はプロジェクト内にない

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

- E-01: `src/gc.c` - GC実装（インクリメンタルGC、世代別GC、メモリ管理）
- E-02: `include/mruby/gc.h` - GC構造体定義（mrb_gc、各種定数）
- E-03: `include/mrbconf.h` - コア設定（アーキテクチャ、ボクシング、整数型、プロファイル）
- E-04: `src/vm.c` - VM実装（スタック管理、コールレベル制限）
- E-05: `src/mempool.c` - メモリプール実装
- E-06: `src/allocf.c` - デフォルトメモリアロケータ
- E-07: `src/state.c` - mrb_state管理（open/close/atexit）
- E-08: `src/error.c` - エラー・例外処理
- E-09: `src/string.c` - 文字列クラス（長さ制限チェック）
- E-10: `src/array.c` - 配列クラス（サイズ制限チェック）
- E-11: `src/load.c` - バイトコードローダー（境界チェック）
- E-12: `SECURITY.md` - セキュリティポリシー
- E-13: `oss-fuzz/mruby_fuzzer.c` - ファジングハーネス
- E-14: `oss-fuzz/mruby_proto_fuzzer.cpp` - プロトコルベースファジングハーネス
- E-15: `build_config/clang-asan.rb` - ASan/UBSanビルド設定
- E-16: `build_config/default.rb` - デフォルトビルド設定
- E-17: `build_config/host-debug.rb` - デバッグビルド設定
- E-18: `build_config/minimal.rb` - 最小ビルド設定
- E-19: `build_config/cross-mingw.rb` - クロスコンパイル設定
- E-20: `build_config/cross-32bit.rb` - 32-bitクロスコンパイル設定
- E-21: `benchmark/vm_dispatch_bench.c` - VMディスパッチベンチマーク
- E-22: `benchmark/vm_optimization_bench.rb` - VM最適化ベンチマーク
- E-23: `Dockerfile` - Dockerビルド環境
- E-24: `docker-compose.yml` - Docker Compose設定
- E-25: `Makefile` / `Rakefile` - ビルドシステム
- E-26: `mrbgems/` - GEMディレクトリ（default.gembox/full-core.gembox等）
- E-27: `build_config/ArduinoDue.rb` / `RX630.rb` / `gameboyadvance.rb` - 組込ターゲット設定

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (NFT-001) | インクリメンタルGCステップ実行時間10ms以下 | E-01, E-02 | ○ |
| C-02 (NFT-002) | フルGCサイクル実行時間100ms以下 | E-01 | ○ |
| C-03 (NFT-003) | Minor GCがFull GCの50%以下の時間 | E-01 | ○ |
| C-04 (NFT-004) | interval_ratio制御によるGC頻度変化 | E-01, E-02 | ○ |
| C-05 (NFT-005) | step_ratio制御によるマーキング量変化 | E-01, E-02 | ○ |
| C-06 (NFT-006) | 空ループ100万回が200ms以下 | E-21 | △ |
| C-07 (NFT-007) | メソッド呼出10万回が100ms以下 | E-21 | △ |
| C-08 (NFT-008) | fib(30)が5000ms以下 | E-21 | △ |
| C-09 (NFT-009) | メソッドキャッシュヒット率95%以上 | E-03 | △ |
| C-10 (NFT-010) | ヒープページ追加1ms以下 | E-01 | ○ |
| C-11 (NFT-011) | メモリプール割当100万回/秒以上 | E-05 | ○ |
| C-12 (NFT-012) | MAJOR_GC_TOOMANY超過時のGC動作 | E-01 | ○ |
| C-13 (NFT-013) | MRB_CALL_LEVEL_MAX超過時のスタックエラー | E-04 | ○ |
| C-14 (NFT-014) | VMスタック1.5倍成長 | E-04 | ○ |
| C-15 (NFT-015) | GCアリーナオーバーフロー処理 | E-01, E-02 | ○ |
| C-16 (NFT-016) | MRB_STR_LENGTH_MAX超過時のエラー | E-09 | ○ |
| C-17 (NFT-017) | MRB_ARY_LENGTH_MAX超過時のエラー | E-10 | ○ |
| C-18 (NFT-018) | OOM時のNoMemoryError発生 | E-01 | ○ |
| C-19 (NFT-019) | GC_STRESS有効時の安定性 | E-01 | ○ |
| C-20 (NFT-020) | calloc乗算オーバーフロー検出 | E-01 | ○ |
| C-21 (NFT-021) | RCE防止 | E-12 | ○ |
| C-22 (NFT-022) | ランダム入力ファジング耐性 | E-13 | ○ |
| C-23 (NFT-023) | プロトコルベースファジング耐性 | E-14 | ○ |
| C-24 (NFT-024) | ASan/UBSanで検出0件 | E-15 | ○ |
| C-25 (NFT-025) | GC書き込みバリアの整合性 | E-01 | ○ |
| C-26 (NFT-026) | 不正バイトコード読込時の安全性 | E-11 | ○ |
| C-27 (NFT-027) | mrb_state初期化・終了の安定性 | E-07 | ○ |
| C-28 (NFT-028) | 例外発生後のVM継続動作 | E-08 | ○ |
| C-29 (NFT-029) | OOM後のGC回復機能 | E-01 | ○ |
| C-30 (NFT-030) | ファイバー終了後のリソース解放 | E-01, E-07 | ○ |
| C-31 (NFT-031) | GC無効化・有効化の動作 | E-01 | ○ |
| C-32 (NFT-032) | 32-bit/64-bitアーキテクチャ互換性 | E-03, E-20 | ○ |
| C-33 (NFT-033) | ボクシング方式の互換性 | E-03 | ○ |
| C-34 (NFT-034) | MRB_INT32/MRB_INT64互換性 | E-03 | ○ |
| C-35 (NFT-035) | 浮動小数点なし構成での動作 | E-03, E-26 | ○ |
| C-36 (NFT-036) | float32/float64精度 | E-03 | ○ |
| C-37 (NFT-037) | クロスコンパイル対象互換性 | E-19, E-20 | ○ |
| C-38 (NFT-038) | 組込ターゲット向けビルド | E-27 | ○ |
| C-39 (NFT-039) | チューニングプロファイルの動作 | E-03 | ○ |
| C-40 (NFT-040) | エンディアン互換性 | E-03, E-11 | ○ |
| C-41 (NFT-041) | 標準ビルドの完全性 | E-16, E-25 | ○ |
| C-42 (NFT-042) | テストスイート自動実行 | E-16 | ○ |
| C-43 (NFT-043) | デバッグビルドの動作検証 | E-17 | ○ |
| C-44 (NFT-044) | カスタムアロケータ差替え性 | E-06 | ○ |
| C-45 (NFT-045) | GEM拡張性 | E-26 | ○ |
| C-46 (NFT-046) | Dockerビルド再現性 | E-23, E-24 | ○ |
| C-47 (NFT-047) | atexit関数の登録・実行 | E-07 | ○ |
| C-48 (NFT-048) | シンボルテーブルの閾値切替 | E-03 | ○ |

## 4) 不足情報（Unknown / Missing）
- **NFT-006/007/008の合格基準（具体的な性能数値）**：ベンチマークコード（vm_dispatch_bench.c）は存在するが、公式な性能要件ドキュメント（SLA定義等）がプロジェクト内に存在しない。合格基準の数値は一般的な期待値として推定した参考値。
  - 候補：性能要件仕様書 / ベンチマーク結果レポート / CI/CDパイプラインの性能閾値設定
- **NFT-009のメソッドキャッシュヒット率基準**：MRB_METHOD_CACHE_SIZEの定義は確認できるが、期待ヒット率の要件定義は不在。
  - 候補：キャッシュ設計ドキュメント / 性能プロファイリング結果
- **NFT-011のメモリプール性能基準**：mempool実装は確認できるが、具体的なスループット要件の定義は不在。
  - 候補：性能要件仕様書 / メモリプール設計ドキュメント
- **NFT-021のRCE防止テスト手法**：SECURITY.mdにRCEを最優先脅威と定義しているが、具体的なテスト手順やテストケースはプロジェクト内に定義されていない。
  - 候補：セキュリティテスト手順書 / ペネトレーションテスト計画書

## 5) リスクフラグ（レビュー観点）
- **リスク2（高）**：NFT-006/007/008 - 性能合格基準の数値が推定値であり、実環境での検証が必要。基準値の妥当性を要レビュー。
- **リスク1（中）**：NFT-009 - メソッドキャッシュヒット率の基準値は一般的なガイドラインに基づくもので、ワークロード依存の可能性がある。
- **リスク1（中）**：NFT-021 - RCE防止テストの具体的な手法がプロジェクト内に未定義。テスト実施前にテスト手法の策定が必要。
- **リスク0（低）**：その他のテストケース - ソースコード内の定数・マクロ・実装から直接導出されており、根拠の信頼性は高い。

## 6) レビュアーチェックリスト（最小）
- [ ] NFT-006/007/008の性能合格基準（200ms/100ms/5000ms）がプロジェクトの実環境で妥当か確認
- [ ] NFT-009のメソッドキャッシュヒット率95%基準が想定ワークロードに対して適切か確認
- [ ] NFT-011のメモリプール割当性能基準（100万回/秒）の妥当性確認
- [ ] NFT-021のRCE防止テストの具体的なテスト手法が定義されているか確認
- [ ] NFT-013/014のスタック制限値（MRB_CALL_LEVEL_MAX=512, MRB_STACK_MAX）がASan有効時に128に変更される点を考慮しているか確認
- [ ] NFT-032〜NFT-040の互換性テストが実際のCI/CDパイプラインで網羅されているか確認
- [ ] NFT-024のASan/UBSan検出0件基準が現実的か（既知の許容事項があるか）確認
