---
generated_at: 2026-02-18 15:30:00
metrics:
  claims_total: 131
  claims_with_evidence: 131
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：public-Ag 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：131 / 131、根拠なし：0
- 優先レビュー（高）
  1. 該当なし - すべてのテストケースにソースコード根拠あり

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

- E-01: `public/Add-DbaAgDatabase.ps1` - AGへのデータベース追加機能（656行）
- E-02: `public/Add-DbaAgListener.ps1` - AGリスナー追加機能（231行）
- E-03: `public/Add-DbaAgReplica.ps1` - AGレプリカ追加機能（433行）
- E-04: `public/Compare-DbaAgReplicaAgentJob.ps1` - レプリカ間Agentジョブ比較機能（217行）
- E-05: `public/Compare-DbaAgReplicaCredential.ps1` - レプリカ間資格情報比較機能（175行）
- E-06: `public/Compare-DbaAgReplicaLogin.ps1` - レプリカ間ログイン比較機能（228行）
- E-07: `public/Compare-DbaAgReplicaOperator.ps1` - レプリカ間オペレーター比較機能（173行）
- E-08: `public/Compare-DbaAgReplicaSync.ps1` - レプリカ間サーバーオブジェクト同期比較機能（586行）
- E-09: `public/Disable-DbaAgHadr.ps1` - HADR無効化機能（153行）
- E-10: `public/Enable-DbaAgHadr.ps1` - HADR有効化機能（155行）
- E-11: `public/Get-DbaAgBackupHistory.ps1` - AGバックアップ履歴取得機能（303行）
- E-12: `public/Get-DbaAgDatabase.ps1` - AGデータベース情報取得機能（152行）
- E-13: `public/Get-DbaAgDatabaseReplicaState.ps1` - AGデータベースレプリカ状態取得機能（207行）
- E-14: `public/Get-DbaAgHadr.ps1` - HADRステータス取得機能（73行）
- E-15: `public/Get-DbaAgListener.ps1` - AGリスナー情報取得機能（120行）
- E-16: `public/Get-DbaAgReplica.ps1` - AGレプリカ情報取得機能（136行）
- E-17: `public/Grant-DbaAgPermission.ps1` - AG権限付与機能（217行）
- E-18: `public/Invoke-DbaAgFailover.ps1` - AGフェイルオーバー実行機能（150行）
- E-19: `public/Remove-DbaAgDatabase.ps1` - AGからのデータベース削除機能（135行）
- E-20: `public/Remove-DbaAgListener.ps1` - AGリスナー削除機能（122行）
- E-21: `public/Remove-DbaAgReplica.ps1` - AGレプリカ削除機能（119行）
- E-22: `public/Resume-DbaAgDbDataMovement.ps1` - AGデータベースデータ移動再開機能（132行）
- E-23: `public/Revoke-DbaAgPermission.ps1` - AG権限取り消し機能（221行）
- E-24: `public/Set-DbaAgListener.ps1` - AGリスナー設定変更機能（124行）
- E-25: `public/Set-DbaAgReplica.ps1` - AGレプリカ設定変更機能（307行）
- E-26: `public/Suspend-DbaAgDbDataMovement.ps1` - AGデータベースデータ移動中断機能（129行）
- E-27: `public/Test-DbaAgSpn.ps1` - AG SPN検証機能（229行）

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

### Add-DbaAgDatabase (UT-AAG-001 - UT-AAG-009)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | データベースがAGに正常に追加される | E-01: param(), process{}ブロック | ○ |
| C-02 | 複数データベースが一括でAGに追加される | E-01: foreach ($dbName in $Database) | ○ |
| C-03 | 自動シーディングモードでDBが追加される | E-01: SeedingMode='Automatic'分岐 | ○ |
| C-04 | 手動シーディングモードでバックアップ・リストア実行 | E-01: Backup-DbaDatabase, Restore-DbaDatabase呼び出し | ○ |
| C-05 | UseLastBackupオプションで既存バックアップが使用される | E-01: UseLastBackupパラメータ処理 | ○ |
| C-06 | NoWaitオプションで同期完了を待機しない | E-01: NoWaitパラメータとスキップ処理 | ○ |
| C-07 | 存在しないAGでエラー | E-01: Test-DbaAvailabilityGroup呼び出し | ○ |
| C-08 | 存在しないDBでエラー | E-01: Test-DbaAvailabilityGroup呼び出し | ○ |
| C-09 | SqlInstanceとInputObject両方未指定でエラー | E-01: Test-Bound -Not SqlInstance, InputObject | ○ |

### Add-DbaAgListener (UT-AAG-010 - UT-AAG-015)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-10 | リスナーがAGに正常に追加される | E-02: process{}ブロック、New-Object AvailabilityGroupListener | ○ |
| C-11 | DHCPでリスナーが追加される | E-02: Dhcpパラメータ、$listenerip.IsDHCP = $Dhcp | ○ |
| C-12 | マルチサブネットリスナーが追加される | E-02: 複数IPAddress処理ループ | ○ |
| C-13 | カスタムポートでリスナーが追加される | E-02: Portパラメータ、$aglistener.PortNumber = $Port | ○ |
| C-14 | IPAddressとDhcp両方指定でエラー | E-02: Stop-Function -Message "You cannot specify both" | ○ |
| C-15 | SqlInstanceとInputObject両方未指定でエラー | E-02: Test-Bound -Not SqlInstance, InputObject | ○ |

### Add-DbaAgReplica (UT-AAG-016 - UT-AAG-022)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | レプリカがAGに正常に追加される | E-03: New-Object AvailabilityReplica、Invoke-Create | ○ |
| C-17 | 同期コミットモードでレプリカ追加 | E-03: AvailabilityModeパラメータ設定 | ○ |
| C-18 | 自動フェイルオーバーでレプリカ追加 | E-03: FailoverModeパラメータ設定 | ○ |
| C-19 | 証明書認証でレプリカ追加 | E-03: Certificateパラメータ、Get-DbaDbCertificate | ○ |
| C-20 | カスタムEndpointUrlでレプリカ追加 | E-03: EndpointUrlパラメータ処理 | ○ |
| C-21 | EndpointUrl数の不一致でエラー | E-03: Stop-Function "number of elements in EndpointUrl" | ○ |
| C-22 | EndpointUrl形式不正でエラー | E-03: -notmatch 'TCP://.+:\d+'チェック | ○ |

### Compare-DbaAgReplicaAgentJob (UT-AAG-023 - UT-AAG-027)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-23 | レプリカ間Agentジョブ差分検出 | E-04: process{}ブロック、差分比較ロジック | ○ |
| C-24 | システムジョブ除外 | E-04: ExcludeSystemJobパラメータ、$systemJobs配列 | ○ |
| C-25 | DateLastModified比較 | E-04: IncludeModifiedDateパラメータ | ○ |
| C-26 | HADR無効でエラー | E-04: $server.IsHadrEnabledチェック | ○ |
| C-27 | レプリカ1つのみで比較しない | E-04: $replicas.Count -lt 2チェック | ○ |

### Compare-DbaAgReplicaCredential (UT-AAG-028 - UT-AAG-030)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-28 | レプリカ間資格情報差分検出 | E-05: process{}ブロック、差分比較ロジック | ○ |
| C-29 | Identity差異検出 | E-05: $uniqueIdentities.Count -gt 1チェック | ○ |
| C-30 | HADR無効でエラー | E-05: $server.IsHadrEnabledチェック | ○ |

### Compare-DbaAgReplicaLogin (UT-AAG-031 - UT-AAG-034)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-31 | レプリカ間ログイン差分検出 | E-06: process{}ブロック、差分比較ロジック | ○ |
| C-32 | システムログイン除外 | E-06: ExcludeSystemLoginパラメータ | ○ |
| C-33 | modify_date比較 | E-06: IncludeModifiedDateパラメータ、sys.server_principalsクエリ | ○ |
| C-34 | HADR無効でエラー | E-06: $server.IsHadrEnabledチェック | ○ |

### Compare-DbaAgReplicaOperator (UT-AAG-035 - UT-AAG-037)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | レプリカ間オペレーター差分検出 | E-07: process{}ブロック、差分比較ロジック | ○ |
| C-36 | EmailAddress差異検出 | E-07: $uniqueEmails.Count -gt 1チェック | ○ |
| C-37 | HADR無効でエラー | E-07: $server.IsHadrEnabledチェック | ○ |

### Compare-DbaAgReplicaSync (UT-AAG-038 - UT-AAG-041)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-38 | レプリカ間サーバーオブジェクト差分検出 | E-08: process{}ブロック、複数オブジェクト比較 | ○ |
| C-39 | 特定オブジェクトタイプ除外 | E-08: Excludeパラメータ、-notcontainsチェック | ○ |
| C-40 | ログインプロパティ差異検出 | E-08: PropertyDifferences構築ロジック | ○ |
| C-41 | HADR無効でエラー | E-08: $server.IsHadrEnabledチェック | ○ |

### Disable-DbaAgHadr (UT-AAG-042 - UT-AAG-045)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42 | HADR無効化 | E-09: ChangeHadrServiceSetting(0)呼び出し | ○ |
| C-43 | Forceでサービス再起動 | E-09: Stop-DbaService, Start-DbaService呼び出し | ○ |
| C-44 | Force未指定で警告 | E-09: "You must restart the SQL Server"メッセージ | ○ |
| C-45 | WMI接続エラー | E-09: Stop-Function "Failure to pull current state" | ○ |

### Enable-DbaAgHadr (UT-AAG-046 - UT-AAG-049)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-46 | HADR有効化 | E-10: ChangeHadrServiceSetting(1)呼び出し | ○ |
| C-47 | Forceでサービス再起動 | E-10: Stop-DbaService, Start-DbaService呼び出し | ○ |
| C-48 | Force未指定で警告 | E-10: "You must restart the SQL Server"メッセージ | ○ |
| C-49 | WMI接続エラー | E-10: Stop-Function "Failure to pull current state" | ○ |

### Get-DbaAgBackupHistory (UT-AAG-050 - UT-AAG-055)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-50 | AGバックアップ履歴取得 | E-11: Get-DbaDbBackupHistory呼び出し | ○ |
| C-51 | Last最新バックアップチェーン取得 | E-11: Select-DbaBackupInformation呼び出し | ○ |
| C-52 | LastFull最新完全バックアップ取得 | E-11: LastFull分岐処理 | ○ |
| C-53 | 特定DB フィルタ | E-11: Databaseパラメータ処理 | ○ |
| C-54 | CopyOnlyバックアップ含む | E-11: IncludeCopyOnlyパラメータ | ○ |
| C-55 | AG存在しないでエラー | E-11: Stop-Function "no availability group named" | ○ |

### Get-DbaAgDatabase (UT-AAG-056 - UT-AAG-060)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-56 | AGデータベース情報取得 | E-12: $InputObject.AvailabilityDatabases | ○ |
| C-57 | 特定AGフィルタ | E-12: AvailabilityGroupパラメータ | ○ |
| C-58 | 特定DBフィルタ | E-12: Databaseパラメータ、$db.Name -notin $Database | ○ |
| C-59 | パイプライン入力動作 | E-12: parameter(ValueFromPipeline) | ○ |
| C-60 | SqlInstanceとInputObject両方未指定でエラー | E-12: Test-Bound -Not SqlInstance, InputObject | ○ |

### Get-DbaAgDatabaseReplicaState (UT-AAG-061 - UT-AAG-064)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-61 | DB・レプリカごと状態取得 | E-13: DatabaseReplicaStates処理 | ○ |
| C-62 | 特定AGフィルタ | E-13: AvailabilityGroupパラメータ | ○ |
| C-63 | 特定DBフィルタ | E-13: Databaseパラメータ、$db.Name -notin $Database | ○ |
| C-64 | SqlInstanceとInputObject両方未指定でエラー | E-13: Test-Bound -Not SqlInstance, InputObject | ○ |

### Get-DbaAgHadr (UT-AAG-065 - UT-AAG-068)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-65 | HADRステータス取得 | E-14: IsHadrEnabledプロパティ出力 | ○ |
| C-66 | HADR有効時true | E-14: $server.IsHadrEnabled | ○ |
| C-67 | HADR無効時false | E-14: $server.IsHadrEnabled | ○ |
| C-68 | 接続エラー | E-14: Stop-Function ConnectionError | ○ |

### Get-DbaAgListener (UT-AAG-069 - UT-AAG-072)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-69 | AGリスナー情報取得 | E-15: $InputObject.AvailabilityGroupListeners | ○ |
| C-70 | 特定AGフィルタ | E-15: AvailabilityGroupパラメータ | ○ |
| C-71 | 特定リスナーフィルタ | E-15: Listenerパラメータ、Where-Object | ○ |
| C-72 | SqlInstanceとInputObject両方未指定でエラー | E-15: Test-Bound -Not SqlInstance, InputObject | ○ |

### Get-DbaAgReplica (UT-AAG-073 - UT-AAG-076)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-73 | AGレプリカ情報取得 | E-16: $InputObject.AvailabilityReplicas | ○ |
| C-74 | 特定AGフィルタ | E-16: AvailabilityGroupパラメータ | ○ |
| C-75 | 特定レプリカフィルタ | E-16: Replicaパラメータ、Where-Object | ○ |
| C-76 | SqlInstanceとInputObject両方未指定でエラー | E-16: Test-Bound -Not SqlInstance, InputObject | ○ |

### Grant-DbaAgPermission (UT-AAG-077 - UT-AAG-082)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-77 | CreateAnyDatabase権限付与 | E-17: GrantAvailabilityGroupCreateDatabasePrivilege | ○ |
| C-78 | Connect権限エンドポイント付与 | E-17: $endpoint.Grant処理 | ○ |
| C-79 | 存在しないログイン自動作成 | E-17: New-DbaLogin呼び出し | ○ |
| C-80 | SqlInstanceとInputObject両方未指定でエラー | E-17: Test-Bound -Not SqlInstance, InputObject | ○ |
| C-81 | AGタイプでAG未指定エラー | E-17: Stop-Function "must specify at least one availability group" | ○ |
| C-82 | エンドポイントでCreateAnyDatabaseエラー | E-17: Stop-Function "not supported by endpoints" | ○ |

### Invoke-DbaAgFailover (UT-AAG-083 - UT-AAG-086)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-83 | AG正常フェイルオーバー | E-18: $ag.Failover() | ○ |
| C-84 | Force強制フェイルオーバー | E-18: $ag.FailoverWithPotentialDataLoss() | ○ |
| C-85 | SqlInstanceとInputObject両方未指定でエラー | E-18: Test-Bound -Not SqlInstance, InputObject | ○ |
| C-86 | SqlInstance指定時AG未指定エラー | E-18: Stop-Function "must specify at least one availability group" | ○ |

### Remove-DbaAgDatabase (UT-AAG-087 - UT-AAG-091)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-87 | DBがAGから削除 | E-19: $db.Parent.AvailabilityDatabases[$db.Name].Drop() | ○ |
| C-88 | 複数DB一括削除 | E-19: foreachループ | ○ |
| C-89 | パイプライン入力動作 | E-19: parameter(ValueFromPipeline) | ○ |
| C-90 | SqlInstanceとInputObject両方未指定でエラー | E-19: Test-Bound -Not SqlInstance, InputObject | ○ |
| C-91 | SqlInstance指定時DB未指定エラー | E-19: Stop-Function "must specify one or more databases" | ○ |

### Remove-DbaAgListener (UT-AAG-092 - UT-AAG-095)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-92 | リスナー削除 | E-20: $aglistener.Parent.AvailabilityGroupListeners[$aglistener.Name].Drop() | ○ |
| C-93 | パイプライン入力動作 | E-20: parameter(ValueFromPipeline) | ○ |
| C-94 | SqlInstanceとInputObject両方未指定でエラー | E-20: Test-Bound -Not SqlInstance, InputObject | ○ |
| C-95 | SqlInstance指定時Listener未指定エラー | E-20: Stop-Function "must specify one or more listeners" | ○ |

### Remove-DbaAgReplica (UT-AAG-096 - UT-AAG-099)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-96 | レプリカ削除 | E-21: $agreplica.Drop() | ○ |
| C-97 | パイプライン入力動作 | E-21: parameter(ValueFromPipeline) | ○ |
| C-98 | SqlInstanceとInputObject両方未指定でエラー | E-21: Test-Bound -Not SqlInstance, InputObject | ○ |
| C-99 | SqlInstance指定時Replica未指定エラー | E-21: Stop-Function "must specify a replica" | ○ |

### Resume-DbaAgDbDataMovement (UT-AAG-100 - UT-AAG-103)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-100 | データ移動再開 | E-22: $agdb.ResumeDataMovement() | ○ |
| C-101 | 複数DBデータ移動再開 | E-22: foreachループ | ○ |
| C-102 | SqlInstanceとInputObject両方未指定でエラー | E-22: Test-Bound -Not SqlInstance, InputObject | ○ |
| C-103 | SqlInstance指定時DB・AG未指定エラー | E-22: Stop-Function "must specify one or more databases" | ○ |

### Revoke-DbaAgPermission (UT-AAG-104 - UT-AAG-108)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-104 | 権限取り消し | E-23: $ag.Revoke()処理 | ○ |
| C-105 | Connect権限エンドポイント取り消し | E-23: $endpoint.Revoke()処理 | ○ |
| C-106 | SqlInstanceとInputObject両方未指定でエラー | E-23: Test-Bound -Not SqlInstance, InputObject | ○ |
| C-107 | AGタイプでAG未指定エラー | E-23: Stop-Function "must specify at least one availability group" | ○ |
| C-108 | エンドポイントでCreateAnyDatabaseエラー | E-23: Stop-Function "not supported by endpoints" | ○ |

### Set-DbaAgListener (UT-AAG-109 - UT-AAG-112)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-109 | リスナーポート変更 | E-24: $aglistener.PortNumber = $Port; $aglistener.Alter() | ○ |
| C-110 | パイプライン入力動作 | E-24: parameter(ValueFromPipeline) | ○ |
| C-111 | SqlInstanceとInputObject両方未指定でエラー | E-24: Test-Bound -Not SqlInstance, InputObject | ○ |
| C-112 | SqlInstance指定時AG未指定エラー | E-24: Stop-Function "must specify one or more Availability Groups" | ○ |

### Set-DbaAgReplica (UT-AAG-113 - UT-AAG-121)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-113 | BackupPriority変更 | E-25: $agreplica.BackupPriority = $BackupPriority | ○ |
| C-114 | AvailabilityMode変更 | E-25: $agreplica.AvailabilityMode設定 | ○ |
| C-115 | FailoverMode変更 | E-25: $agreplica.FailoverMode設定 | ○ |
| C-116 | ReadOnlyRoutingList設定 | E-25: SetLoadBalancedReadOnlyRoutingList呼び出し | ○ |
| C-117 | ロードバランスReadOnlyRoutingList設定 | E-25: ネスト配列検出・処理 | ○ |
| C-118 | SessionTimeout変更 | E-25: $agreplica.SessionTimeout = $SessionTimeout | ○ |
| C-119 | SessionTimeout10秒未満警告 | E-25: Write-Message -Level Warning | ○ |
| C-120 | SqlInstanceとInputObject両方未指定でエラー | E-25: Test-Bound -Not SqlInstance, InputObject | ○ |
| C-121 | SqlInstance指定時AG・Replica未指定エラー | E-25: Stop-Function "must specify an AvailabilityGroup and replica" | ○ |

### Suspend-DbaAgDbDataMovement (UT-AAG-122 - UT-AAG-125)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-122 | データ移動中断 | E-26: $agdb.SuspendDataMovement() | ○ |
| C-123 | 複数DBデータ移動中断 | E-26: foreachループ | ○ |
| C-124 | SqlInstanceとInputObject両方未指定でエラー | E-26: Test-Bound -Not SqlInstance, InputObject | ○ |
| C-125 | SqlInstance指定時DB・AG未指定エラー | E-26: Stop-Function "must specify one or more databases" | ○ |

### Test-DbaAgSpn (UT-AAG-126 - UT-AAG-131)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-126 | SPN検証結果取得 | E-27: process{}ブロック、SPN検証ロジック | ○ |
| C-127 | ポート付き・なしSPN両方検証 | E-27: 2種類のSPN生成 | ○ |
| C-128 | 特定リスナーフィルタ | E-27: Listenerパラメータ | ○ |
| C-129 | SPN登録済時IsSet=true | E-27: servicePrincipalName -contains $spn.RequiredSPN | ○ |
| C-130 | SPN未登録時IsSet=false | E-27: $spn.Error = "SPN missing" | ○ |
| C-131 | SqlInstanceとInputObject両方未指定でエラー | E-27: Test-Bound -Not SqlInstance, InputObject | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - すべてのテストケースにソースコード根拠あり

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースがソースコードに基づいている

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースの網羅性：各コマンドの正常系・異常系・境界値がカバーされているか
- [ ] パラメータ検証：必須パラメータのエラーハンドリングがテストされているか
- [ ] パイプライン処理：パイプライン入力が正常に動作するテストがあるか
- [ ] 出力形式：戻り値の型と内容が期待通りかテストされているか
- [ ] 依存関係：HADRやAGの前提条件チェックがテストされているか
