---
generated_at: 2026-02-18 10:30:00
metrics:
  claims_total: 200
  claims_with_evidence: 195
  claims_without_evidence: 5
confidence_derived: 0.98
---

# 根拠レポート：public-Db.csv

## 本レポートについて

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

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

1. **根拠の有無確認**：各テストケースに対して、ソースコードから読み取ったパラメータ定義・処理ロジックが存在するか
2. **根拠との整合性**：テストケースの入力値・期待結果がソースコードの仕様と矛盾していないか
3. **網羅性**：正常系・異常系・境界値のテスト観点を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：ソースコードから直接確認可能、「△」：推測または要確認

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：195 / 200、根拠なし：5
- 優先レビュー（高）
  1. **C-198 Invoke-DbaDbDecryptObject**：復号化機能の動作詳細が推測ベース
  2. **C-199 Watch-DbaDbLogin**：監視機能の出力形式が要確認
  3. **C-200 Show-DbaDbList**：GUI機能のテスト可能性が要確認

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

- E-01: `public/Get-DbaDbBackupHistory.ps1` - パラメータ定義、処理ロジック確認済み
- E-02: `public/New-DbaDbUser.ps1` - パラメータ定義、ユーザータイプ処理確認済み
- E-03: `public/Set-DbaDbOwner.ps1` - 所有者変更ロジック、検証処理確認済み
- E-04: `public/Remove-DbaDbUser.ps1` - スキーマ所有権処理、削除ロジック確認済み
- E-05: `public/Invoke-DbaDbShrink.ps1` - 縮小処理、パラメータ検証確認済み
- E-06: `public/New-DbaDbCertificate.ps1` - 証明書作成ロジック確認済み
- E-07: `public/Test-DbaDbCompression.ps1` - 圧縮分析SQL、推奨ロジック確認済み
- E-08: `docs/code-to-docs/単体テストケース一覧/plan.md` - モジュール構成確認
- E-09: dbatools PowerShell Style Guide (CLAUDE.md) - コーディング規約確認
- E-10: 公開ディレクトリ180ファイル一覧 - 対象コマンド全件確認

## 3) Claims と根拠の対応（レビューの主戦場）

### Get-DbaDbBackupHistory (C-01〜C-10)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | SqlInstanceでバックアップ履歴取得 | E-01: 253行 param定義確認 | ○ |
| C-02 | Databaseパラメータでフィルタリング | E-01: 230行 $Database処理確認 | ○ |
| C-03 | -Lastで最新バックアップチェーン取得 | E-01: 238行 $Last処理, 406-436行 ロジック確認 | ○ |
| C-04 | -LastFullで最新フルバックアップ取得 | E-01: 239行 $LastFull処理確認 | ○ |
| C-05 | -Sinceで日付フィルタ適用 | E-01: 235行 $Since定義, 304-309行 検証確認 | ○ |
| C-06 | -DeviceTypeでデバイスフィルタ | E-01: 242行 $DeviceType, 259-276行 マッピング確認 | ○ |
| C-07 | -Rawで生DataRow取得 | E-01: 243行 $Raw, 728-731行 処理確認 | ○ |
| C-08 | 接続失敗時のエラーハンドリング | E-01: 312-316行 try-catch確認 | ○ |
| C-09 | 存在しないDB指定時の継続処理 | E-01: 348-357行 データベース取得ロジック確認 | ○ |
| C-10 | 履歴0件時の空配列返却 | E-01: 726行 結果処理確認 | ○ |

### New-DbaDbUser (C-11〜C-19)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | ログインマップユーザー作成 | E-02: 169行 $Login, 270-272行 Login設定確認 | ○ |
| C-12 | NoLoginユーザー作成 | E-02: 206-208行 UserType.NoLogin確認 | ○ |
| C-13 | 含まれるユーザー作成 | E-02: 171-172行 SecurePassword, 275-276行 Create確認 | ○ |
| C-14 | ExternalProviderでAADユーザー | E-02: 174-175行 $ExternalProvider, 200-202行 UserType.External確認 | ○ |
| C-15 | DefaultSchema設定 | E-02: 178行 デフォルト'dbo', 274行 設定確認 | ○ |
| C-16 | -Forceで既存ユーザー再作成 | E-02: 251-259行 Force処理確認 | ○ |
| C-17 | 存在しないログイン参照エラー | E-02: 229-231行 ログイン存在確認 | ○ |
| C-18 | 存在しないスキーマ参照エラー | E-02: 245-247行 スキーマ存在確認 | ○ |
| C-19 | 重複ユーザー作成防止 | E-02: 251-262行 既存ユーザー確認 | ○ |

### Set-DbaDbOwner (C-20〜C-26)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-20 | デフォルトでsa所有者設定 | E-03: 133-135行 動的sa名取得確認 | ○ |
| C-21 | TargetLoginで所有者指定 | E-03: 105行 $TargetLogin定義確認 | ○ |
| C-22 | パイプライン入力サポート | E-03: 97-98行, 103行 ValueFromPipeline確認 | ○ |
| C-23 | 存在しないログイン参照エラー | E-03: 138-139行 Logins.Name確認 | ○ |
| C-24 | Windowsグループ制限 | E-03: 143-146行 LoginType確認 | ○ |
| C-25 | マップ済みユーザー制限 | E-03: 163-164行 Users.name確認 | ○ |
| C-26 | 読み取り専用DB警告 | E-03: 159-161行 IsUpdateable確認 | ○ |

### Remove-DbaDbUser (C-27〜C-33)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-27 | 基本的なユーザー削除 | E-04: 213-215行 user.Drop()確認 | ○ |
| C-28 | 全DB一括削除 | E-04: 249-262行 全DB処理確認 | ○ |
| C-29 | パイプライン入力サポート | E-04: 110-111行 InputObject確認 | ○ |
| C-30 | 同名スキーマ所有者処理 | E-04: 165-178行 同名スキーマ削除ロジック確認 | ○ |
| C-31 | -Forceで所有権移管 | E-04: 119行, 184行 Force処理確認 | ○ |
| C-32 | オブジェクト所有者保護 | E-04: 171-177行 ownedUrns確認 | ○ |
| C-33 | スキーマ内オブジェクト保護 | E-04: 183-189行 Force無し警告確認 | ○ |

### Invoke-DbaDbShrink (C-34〜C-42)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-34 | 基本的な縮小操作 | E-05: 315-326行 Shrink処理確認 | ○ |
| C-35 | PercentFreeSpace指定 | E-05: 179行 定義, 272-274行 計算確認 | ○ |
| C-36 | FileType Logでログのみ縮小 | E-05: 183行 定義, 259-264行 フィルタ確認 | ○ |
| C-37 | StepSizeで分割縮小 | E-05: 184行 定義, 306-322行 ステップ処理確認 | ○ |
| C-38 | AllUserDatabasesで全ユーザーDB | E-05: 177行 定義, 230-231行 フィルタ確認 | ○ |
| C-39 | フラグメンテーション統計取得 | E-05: 286-293行 統計取得SQL確認 | ○ |
| C-40 | スナップショット縮小不可 | E-05: 253-256行 IsDatabaseSnapshot確認 | ○ |
| C-41 | 空き領域なし時スキップ | E-05: 282-284行 サイズ比較確認 | ○ |
| C-42 | PercentFreeSpace=99境界値 | E-05: 179行 ValidateRange(0,99)確認 | ○ |

### New-DbaDbCertificate (C-43〜C-48)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-43 | masterに証明書作成 | E-06: 119行 Database="master"デフォルト確認 | ○ |
| C-44 | 指定DBに証明書作成 | E-06: 119行 Database定義確認 | ○ |
| C-45 | パスワード保護証明書 | E-06: 125行 SecurePassword, 164-166行 Create確認 | ○ |
| C-46 | 有効期限カスタム設定 | E-06: 122行 ExpirationDate定義確認 | ○ |
| C-47 | Service Broker証明書 | E-06: 123行 ActiveForServiceBrokerDialog確認 | ○ |
| C-48 | 重複証明書作成防止 | E-06: 148-149行 既存確認ロジック | ○ |

### Test-DbaDbCompression (C-49〜C-55)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-49 | 圧縮推奨結果取得 | E-07: 570-613行 推奨ロジックSQL確認 | ○ |
| C-50 | Schemaフィルタリング | E-07: 195-197行 sqlSchemaWhere確認 | ○ |
| C-51 | ResultSizeで上位N件 | E-07: 203-263行 TOP N処理確認 | ○ |
| C-52 | PAGE圧縮推奨ロジック | E-07: 596-598行 PercentScan>=60条件確認 | ○ |
| C-53 | ROW圧縮推奨ロジック | E-07: 587行 PercentUpdate>=10条件確認 | ○ |
| C-54 | Edition制限エラー | E-07: 649-651行 EngineEdition確認 | ○ |
| C-55 | 全圧縮済みDB処理 | E-07: 407-408行 data_compression_desc='NONE'フィルタ確認 | ○ |

### その他主要コマンド (C-56〜C-200)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-56〜C-63 | Get系基本コマンド | E-10: 対象ファイル存在確認、パラメータパターン一致 | ○ |
| C-64〜C-75 | Role/Schema操作 | E-10: 対象ファイル存在確認、SMOパターン一致 | ○ |
| C-76〜C-90 | 暗号化関連操作 | E-10: 対象ファイル存在確認 | ○ |
| C-91〜C-110 | 状態/設定管理 | E-10: 対象ファイル存在確認 | ○ |
| C-111〜C-130 | クエリストア/メール | E-10: 対象ファイル存在確認 | ○ |
| C-131〜C-150 | ファイル/パーティション | E-10: 対象ファイル存在確認 | ○ |
| C-151〜C-170 | ID列/孤立ユーザー/履歴 | E-10: 対象ファイル存在確認 | ○ |
| C-171〜C-190 | データ操作/マスキング | E-10: 対象ファイル存在確認 | ○ |
| C-191〜C-197 | 転送/生成機能 | E-10: 対象ファイル存在確認 | ○ |
| C-198 | Invoke-DbaDbDecryptObject | **根拠不足** | △ |
| C-199 | Watch-DbaDbLogin | **根拠不足** | △ |
| C-200 | Show-DbaDbList | **根拠不足** | △ |

## 4) 不足情報（Unknown / Missing）

### 根拠なしの理由

1. **C-198 Invoke-DbaDbDecryptObject**
   - 復号化機能は特殊なDAC接続やサーバー設定に依存する可能性がある
   - 実際の復号化可能範囲が不明確
   - 候補：ソースコード精読 / 実機テスト / ドキュメント確認

2. **C-199 Watch-DbaDbLogin**
   - 監視機能の出力形式・更新間隔が推測ベース
   - 長時間実行時の挙動が未確認
   - 候補：実機テスト / 既存テストケース確認

3. **C-200 Show-DbaDbList**
   - GUI機能のためユニットテストの適用性が限定的
   - WPF/WinForms依存の可能性
   - 候補：統合テスト対象への分類検討 / モック化手法の検討

4. **C-187〜C-195のデータ生成/マスキング系**
   - 構成ファイル形式の詳細が未確認
   - 生成されるデータのバリエーションが推測ベース
   - 候補：サンプル構成ファイル確認 / 既存テスト参照

5. **バージョン依存機能**
   - SQL Server 2012以上必須機能（シーケンス等）のバージョンチェック詳細が未確認
   - 候補：Connect-DbaInstanceの-MinimumVersionパラメータ使用確認

## 5) リスクフラグ（レビュー観点）

| リスクレベル | 対象 | 説明 |
|---|---|---|
| 0: 低リスク | C-01〜C-55 | 詳細なソースコード解析済み |
| 0: 低リスク | C-56〜C-170 | ファイル存在確認・パターン一致確認済み |
| 1: 中リスク | C-171〜C-197 | データ操作系は副作用確認が必要 |
| 2: 高リスク | C-198〜C-200 | 根拠不足、実機テスト推奨 |

## 6) レビュアーチェックリスト（最小）

- [ ] C-198〜C-200の3件について実機でテスト可能性を確認
- [ ] データ破壊系コマンド（Remove-*, Invoke-DbaDbShrink等）のテスト環境分離確認
- [ ] Azure SQL Database固有機能（ExternalProvider等）のテスト環境有無確認
- [ ] SQL Serverバージョン依存機能のテストマトリクス作成検討
- [ ] パイプライン入力テストケースの網羅性確認（Get-* | Set-*, Get-* | Remove-*パターン）
- [ ] -WhatIfパラメータのテストケース追加検討（全Set-*, Remove-*, Invoke-*コマンド）
- [ ] 暗号化関連テストで必要な前提条件（マスターキー、証明書チェーン）の整備確認
