---
generated_at: 2026-02-18 21:25:00
metrics:
  claims_total: 30
  claims_with_evidence: 30
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：private-maintenance.csv

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `private/maintenance/PSSession-Cleanup.ps1` - PSSessionクリーンアップスクリプト（14行）
- E-02: `private/maintenance/tempcleanup.ps1` - 一時ファイルクリーンアップスクリプト（7行）
- E-03: `private/maintenance/teppInsertTask.ps1` - TEPPインサートタスクスクリプト（14行）

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

### PSSession-Cleanup.ps1 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-MNT-001) | 期限切れPSSessionのクリーンアップ処理 | E-01 (行2-6: while/PSSessionPurgeExpired/Remove-PSSession) | ○ |
| C-02 (UT-MNT-002) | 期限切れ0件時のループ終了 | E-01 (行2: while条件でPSSessionCountExpired > 0) | ○ |
| C-03 (UT-MNT-003) | null返却時のエラー防止 | E-01 (行5: if ($null -ne $session)による条件分岐) | ○ |
| C-04 (UT-MNT-004) | メンテナンスタスク登録 | E-01 (行8: Register-DbaMaintenanceTask呼び出し) | ○ |
| C-05 (UT-MNT-005) | タイマー初期化 | E-01 (行11: New-Object System.Timers.Timer) | ○ |
| C-06 (UT-MNT-006) | イベント登録 | E-01 (行13: Register-ObjectEvent) | ○ |
| C-07 (UT-MNT-007) | 閉じたセッションの削除 | E-01 (行13: Where-Object State -Like Closed | Remove-PSSession) | ○ |
| C-08 (UT-MNT-008) | 閉じたセッション0件時の処理 | E-01 (行13: パイプライン処理で自動的に空が処理される) | ○ |
| C-24 (UT-MNT-024) | PSSessionCountExpiredのカウント | E-01 (行2: ConnectionHost.PSSessionCountExpired参照) | ○ |
| C-25 (UT-MNT-025) | PSSessionPurgeExpiredの取得 | E-01 (行4: PSSessionPurgeExpired()呼び出し) | ○ |
| C-26 (UT-MNT-026) | タイマー開始 | E-01 (行14: $script:pssession_cleanup_timer.Start()) | ○ |
| C-29 (UT-MNT-029) | 複数セッションの逐次処理 | E-01 (行2-6: whileループによる逐次処理) | ○ |

### tempcleanup.ps1 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-09 (UT-MNT-009) | TEMP環境変数設定済み時の処理 | E-02 (行2: if (-not $Env:TEMP)による条件分岐) | ○ |
| C-10 (UT-MNT-010) | TEMP未設定時のGetTempPath使用 | E-02 (行3: [System.IO.Path]::GetTempPath()) | ○ |
| C-11 (UT-MNT-011) | dbatools*ファイルの削除 | E-02 (行5: Get-ChildItem -Filter dbatools* | Remove-Item) | ○ |
| C-12 (UT-MNT-012) | 一致ファイル0件時の処理 | E-02 (行5: パイプライン処理で自動的に空が処理される) | ○ |
| C-13 (UT-MNT-013) | ロックファイル時のErrorAction Ignore | E-02 (行5: -ErrorAction Ignoreパラメーター) | ○ |
| C-14 (UT-MNT-014) | フォルダの再帰削除 | E-02 (行5: -Recurseパラメーター) | ○ |
| C-15 (UT-MNT-015) | ワンタイムタスク登録 | E-02 (行7: Register-DbaMaintenanceTask -Once) | ○ |
| C-27 (UT-MNT-027) | GetTempPath呼び出し | E-02 (行3: [System.IO.Path]::GetTempPath()) | ○ |
| C-30 (UT-MNT-030) | アクセス権限エラー処理 | E-02 (行5: -ErrorAction Ignoreパラメーター) | ○ |

### teppInsertTask.ps1 関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 (UT-MNT-016) | ModuleBase取得 | E-03 (行2: [Dataplat.Dbatools.dbaSystem.SystemHost]::ModuleBase) | ○ |
| C-17 (UT-MNT-017) | tabcompletion関数インポート | E-03 (行4-6: foreach + Import-Command) | ○ |
| C-18 (UT-MNT-018) | tabcompletionフォルダ空時の処理 | E-03 (行4-6: foreachは空コレクションをスキップ) | ○ |
| C-19 (UT-MNT-019) | dynamicparams定義インポート | E-03 (行8-10: foreach + Import-Command) | ○ |
| C-20 (UT-MNT-020) | dynamicparamsフォルダ空時の処理 | E-03 (行8-10: foreachは空コレクションをスキップ) | ○ |
| C-21 (UT-MNT-021) | CalculateTabExpansion呼び出し | E-03 (行12: TabExpansionHost.CalculateTabExpansion()) | ○ |
| C-22 (UT-MNT-022) | ワンタイムタスク登録 | E-03 (行14: Register-DbaMaintenanceTask -Once) | ○ |
| C-23 (UT-MNT-023) | 存在しないファイルパス処理 | E-03 (行5,9: Import-Commandの呼び出し) | ○ |
| C-28 (UT-MNT-028) | タブ展開計算完了 | E-03 (行12: CalculateTabExpansion()呼び出し) | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし
  - すべてのテストケースは対象ソースコードに明確な根拠があります

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - すべてのテストケースがソースコードの実装に基づいており、根拠が明確です

### 補足事項
- private-maintenanceモジュールは3つのスクリプトファイルのみで構成されており、比較的シンプルな構造です
- 各スクリプトは特定のメンテナンスタスクを定義・登録する役割を持っています
- テストケースはコードの制御フロー（条件分岐、ループ、エラーハンドリング）を網羅しています

## 6) レビュアーチェックリスト（最小）
- [ ] PSSession-Cleanup.ps1のwhileループ条件が正しくテストされているか確認
- [ ] tempcleanup.ps1の-ErrorAction Ignoreが意図通りに機能するか確認
- [ ] teppInsertTask.ps1のImport-Command依存関数の存在を確認
- [ ] Register-DbaMaintenanceTaskの各パラメーター（-Once, -Delay, -Interval）の動作を確認
- [ ] ConnectionHost静的クラスのメソッド（PSSessionCountExpired, PSSessionPurgeExpired）の実装を確認
- [ ] TabExpansionHost静的クラスのCalculateTabExpansion()メソッドの実装を確認

## 7) テストケース分類サマリー

| 対象ファイル | 正常系 | 異常系 | 境界値 | 合計 |
|-------------|--------|--------|--------|------|
| PSSession-Cleanup.ps1 | 10 | 1 | 1 | 12 |
| tempcleanup.ps1 | 6 | 2 | 1 | 9 |
| teppInsertTask.ps1 | 6 | 1 | 2 | 9 |
| **合計** | **22** | **4** | **4** | **30** |

## 8) 優先度分布

| 優先度 | 件数 | 割合 |
|--------|------|------|
| 高 | 12 | 40% |
| 中 | 13 | 43% |
| 低 | 5 | 17% |
| **合計** | **30** | **100%** |
