---
generated_at: 2026-02-25 15:30:00
metrics:
  claims_total: 58
  claims_with_evidence: 55
  claims_without_evidence: 3
confidence_derived: 0.95
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：55 / 58、根拠なし：3
- 優先レビュー（高）
  1. **NFT-015 稼働率99.9%**：具体的なSLA定義書が見つからない
  2. **NFT-016 RTO 1時間以内**：復旧手順書の詳細未確認
  3. **NFT-018 RPO 15分以内**：レプリケーション設定の詳細未確認

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `docs/code-to-docs/非機能要件定義書/非機能要件定義書.md`
- E-02: `docs/code-to-docs/セキュリティ設計書/セキュリティ設計書.md`
- E-03: `docs/code-to-docs/インフラ設計書/インフラ設計書.md`
- E-04: `docs/code-to-docs/テスト方針書/テスト方針書.md`
- E-05: `config/puma.rb`
- E-06: `config/environments/production.rb`
- E-07: `config/cache.yml`
- E-08: `config/queue.yml`
- E-09: `config/recurring.yml`
- E-10: `config/initializers/content_security_policy.rb`
- E-11: `config/initializers/filter_parameter_logging.rb`
- E-12: `config/brakeman.ignore`
- E-13: `config/deploy.yml`
- E-14: `config/database.sqlite.yml`
- E-15: `config/database.mysql.yml`
- E-16: `app/controllers/sessions_controller.rb`
- E-17: `app/controllers/signups_controller.rb`
- E-18: `app/controllers/sessions/magic_links_controller.rb`
- E-19: `app/controllers/users/email_addresses_controller.rb`
- E-20: `app/controllers/concerns/authentication.rb`
- E-21: `app/models/identity.rb`
- E-22: `app/models/magic_link.rb`
- E-23: `Gemfile`
- E-24: `Dockerfile`
- E-25: `.github/workflows/ci-checks.yml`（推定）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | 画面表示500ms以内 | E-01（性能要件セクション） | ○ |
| C-02 | API応答200ms以内 | E-01（性能要件セクション） | ○ |
| C-03 | WebSocket接続100ms以内 | E-01, E-08（polling_interval: 0.1） | ○ |
| C-04 | Webhook配信7秒タイムアウト | E-01（ENDPOINT_TIMEOUT: 7秒） | ○ |
| C-05 | DNS解決2秒タイムアウト | E-01（SSRF対策セクション） | ○ |
| C-06 | 同時接続数=CPUコア x 1 x 1 | E-01, E-05（Puma設定） | ○ |
| C-07 | DB接続プール50接続 | E-14, E-15（pool設定） | ○ |
| C-08 | ジョブ3スレッド/ワーカー | E-08（threads: 3） | ○ |
| C-09 | キャッシュ60日有効 | E-07（max_age: 60.days） | ○ |
| C-10 | 静的ファイル5分キャッシュ | E-06（max-age: 5.minutes） | ○ |
| C-11 | 水平スケーリング対応 | E-03（Kamalデプロイ） | ○ |
| C-12 | ジョブワーカー並列処理 | E-08（JOB_CONCURRENCY） | ○ |
| C-13 | メモリリーク検出（jemalloc） | E-24（LD_PRELOAD設定） | ○ |
| C-14 | GC最適化（rgengc_allow_full_mark） | E-05（GC.config設定） | ○ |
| C-15 | 稼働率99.9%以上 | E-01（SaaS版可用性） | △ |
| C-16 | RTO 1時間以内 | E-01（障害復旧時間） | △ |
| C-17 | マルチDC切替 | E-03（3DC構成） | ○ |
| C-18 | RPO 15分以内 | E-01（目標復旧時点） | △ |
| C-19 | 定期ジョブ実行 | E-09（recurringスケジュール） | ○ |
| C-20 | Magic Link有効期限15分 | E-02（EXPIRATION_TIME） | ○ |
| C-21 | ログイン試行制限3分/10回 | E-16（rate_limit設定） | ○ |
| C-22 | Magic Link検証制限15分/10回 | E-18（rate_limit設定） | ○ |
| C-23 | メールアドレス変更制限1時間/5回 | E-19（rate_limit設定） | ○ |
| C-24 | サインアップ制限3分/10回 | E-17（rate_limit設定） | ○ |
| C-25 | セッションCookie属性 | E-20（httponly, same_site） | ○ |
| C-26 | APIトークンBearer認証 | E-20, E-21（AccessToken） | ○ |
| C-27 | タイミング攻撃対策 | E-02（secure_compare） | ○ |
| C-28 | マルチテナント分離 | E-01, E-02（account_idスコープ） | ○ |
| C-29 | ロール別権限 | E-02（認可設計セクション） | ○ |
| C-30 | HTTPS強制 | E-06（force_ssl = true） | ○ |
| C-31 | Webhook署名検証 | E-01（HMAC-SHA256） | ○ |
| C-32 | CSP実装 | E-10（CSP設定） | ○ |
| C-33 | XSS対策（HTMLサニタイズ） | E-02（SafeListSanitizer） | ○ |
| C-34 | SQLインジェクション対策 | E-02（Active Record ORM） | ○ |
| C-35 | CSRF対策 | E-02（protect_from_forgery） | ○ |
| C-36 | メールアドレス形式検証 | E-21（EMAIL_REGEXP） | ○ |
| C-37 | SSRF対策（プライベートIP拒否） | E-01（SSRF対策セクション） | ○ |
| C-38 | パラメータフィルタリング | E-11（filter_parameters） | ○ |
| C-39 | Brakeman脆弱性チェック | E-12, E-04（CI設定） | ○ |
| C-40 | bundler-audit | E-23, E-04（CI設定） | ○ |
| C-41 | importmap audit | E-04（CI設定） | ○ |
| C-42 | モダンブラウザ対応 | E-02（allow_browser） | ○ |
| C-43 | SQLite動作確認 | E-14, E-04（テストマトリクス） | ○ |
| C-44 | MySQL動作確認 | E-15, E-04（テストマトリクス） | ○ |
| C-45 | マルチテナントモード切替 | E-01（MULTI_TENANT環境変数） | ○ |
| C-46 | OSS/SaaS切替 | E-04（SAAS環境変数） | ○ |
| C-47 | Dockerコンテナ動作 | E-24（Dockerfile） | ○ |
| C-48 | マルチアーキテクチャ対応 | E-03（amd64/arm64） | ○ |
| C-49 | RuboCopスタイルチェック | E-23（rubocop-rails-omakase） | ○ |
| C-50 | 単体テスト通過 | E-04（218テストファイル） | ○ |
| C-51 | 並列テスト実行 | E-04（ワークスティーリング） | ○ |
| C-52 | アプリケーション起動時間 | E-24（Bootsnap） | ○ |
| C-53 | 無停止デプロイ | E-03（アセットブリッジング） | ○ |
| C-54 | ロールバック | E-03（retain_containers: 2） | ○ |
| C-55 | 構造化ログ出力 | E-06（log_tags: request_id） | ○ |
| C-56 | Prometheusメトリクス | E-05（yabeda_prometheus） | ○ |
| C-57 | Sentryエラー通知 | E-03（SENTRY_DSN） | ○ |
| C-58 | Mission Control Jobs | E-23（mission_control-jobs） | ○ |

## 4) 不足情報（Unknown / Missing）
- **SLA定義書**: 稼働率99.9%の具体的な契約条件・測定方法が未確認
  - 候補：サービス利用規約 / 運用契約書 / SLAドキュメント
- **障害復旧手順書**: RTO/RPOを達成するための具体的な復旧手順が未確認
  - 候補：運用マニュアル / インシデント対応手順書 / DRプラン
- **レプリケーション設定詳細**: MySQLレプリケーションのlag許容値等が未確認
  - 候補：MySQLインフラ設定書 / データベース運用手順書

## 5) リスクフラグ（レビュー観点）
- **1: 中リスク** - NFT-015（稼働率）: SLA定義の具体的な根拠が不足。運用実績データでの検証推奨
- **1: 中リスク** - NFT-016（RTO）: 復旧手順の実効性を訓練等で確認する必要あり
- **1: 中リスク** - NFT-018（RPO）: レプリケーション遅延の実測値確認が必要
- **0: 低リスク** - その他のテストケースは設定ファイル・コードから直接確認可能

## 6) レビュアーチェックリスト（最小）
- [ ] 稼働率99.9%の測定方法・監視体制が明確か確認
- [ ] RTO 1時間以内を達成するための復旧手順が存在するか確認
- [ ] RPO 15分以内を達成するためのレプリケーション設定が適切か確認
- [ ] 各レート制限値が運用要件と整合しているか確認
- [ ] セキュリティテストケースがOWASP Top 10をカバーしているか確認
- [ ] 互換性テストケースが想定環境を網羅しているか確認
- [ ] 保守性テストケースのCI/CD連携が適切か確認
