test-design-reviewer について
テストを実行可能な仕様および安全性の根拠としてレビューするスキルです。証拠に基づく評価、実行可能な指摘、確認できない事項への適切な留保を案内します。
主な機能
- 018つのテスト品質特性を根拠付きで評価
- 02テスト先行の履歴と速度を個別に判定
- 03テスト、境界、リポジトリ方針を確認
- 04重大度順の指摘と最小限の修正案
活用シーン
- 01変更のマージ前にテストスイートをレビュー
- 02テストの信頼性と保守性を評価
- 03テストが観測可能な振る舞いを記録するか確認
- 04テスト先行の経緯を断定せず最終ツリーを評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ citypaul/ .dotfiles --skill test-design-reviewerインストール後、Claude Code で/test-design-reviewerを入力して読み込まれたか確認します。
同梱ファイルreferences/source-notes.md
詳細
テスト設計レビュー担当
テストを、実行可能な仕様であり安全性を示す証拠としてレビューします。まずテストを読み、そのテストだけで公開される振る舞いを理解できるかを確認してから、主張を正確に評価するために必要な本番コードの境界とリポジトリの制約を調べます。
特性
| 特性 | 確認項目 | 強い証拠 |
|---|---|---|
| 理解しやすさ | 名前、準備/実行/検証の流れ、ドメインの語彙 | 内部実装を再構成しなくても、振る舞いと失敗の内容が明確です |
| 保守しやすさ | 結合度、重複、フィクスチャ、公開境界 | 振る舞いを保つリファクタリングで、無関係なテストを書き直す必要がありません |
| 再現性 | 時刻、乱数、並行処理、ネットワーク、共有リソース | 繰り返し実行や並列実行でも、入力とクリーンアップが制御されています |
| 独立性 | 共有状態、順序、クリーンアップ、失敗の分離 | テスト単独で実行でき、失敗から1つの振る舞いを特定できます |
| 必要性 | 個別のリスクまたは保護対象の契約 | そのテストを削除すると、意味のある証拠が失われます |
| 粒度 | 対象とする振る舞いの範囲と診断の質 | アサーションが一貫した1つの結果を記述しています。関連するアサーションは同じテストに含めてもかまいません |
| 速度 | 適切なレイヤーでのフィードバック時間の測定 | 想定するフィードバックループに対して、スイートの実行が十分に速いです |
| 先行性 | テストファースト開発の証拠 | 記録された RED 実行、開発の記録、または履歴によって、本番の振る舞いが変わる前に、想定どおりの理由でテストが失敗したことを確認できます |
評価
各特性を Strong、Mixed、Weak、または Not assessed で評価します。
- 正確なファイル位置と、実際に確認した証拠を示します。
- 総合スコアは算出しません。リスクやリポジトリの状況は一様でないため、重み付けした数値は不当に精密な印象を与えます。
- 最終的なツリーしか確認できない場合、先行性は
Not assessedとします。静的なテストの形状から実施順序は証明できません。 - 実行の証拠または信頼できる時間計測がない限り、速度は
Not assessedとします。 - 観察可能な振る舞いを強化する、最小限の変更を優先します。1テストにつき1つのアサーション、1ファイルにつき1つのテスト、あるいは上位レベルの契約が正直な証拠の境界となる場面でのユニットテストを要求してはいけません。
レビュープロセス
- 主張されている振る舞い、テストレイヤー、リポジトリのポリシー、および関連するリスクを確認します。
- 実装を見ずにテストを読み、失敗した場合に何を意味するかを記録します。
- 本番コードの公開境界、フィクスチャ、および設定済みのランナーを調べます。
- 許可されており有益な場合に限り、対象を絞ったテストや時間計測を実行し、実行した内容を正確に報告します。
- 証拠がない特性には
Not assessedを使い、すべての特性を証拠に基づいて評価します。 - 対応可能な指摘のみを重大度と影響度で順位付けし、実現可能な最小限の修正を示します。
- テストの欠陥、本番設計上の境界、およびローカルなポリシーの好みを区別します。
出力
## Test design review: [scope]
| Property | Rating | Evidence |
|---|---|---|
| Understandable | Strong/Mixed/Weak/Not assessed | [file:line and reason] |
| Maintainable | ... | ... |
| Repeatable | ... | ... |
| Atomic | ... | ... |
| Necessary | ... | ... |
| Granular | ... | ... |
| Fast | ... | ... |
| First | ... | ... |
### Findings
1. **[severity] — [problem]** (`path:line`)
Impact: [observable risk].
Smallest fix: [action].
### Validation gaps
- [Anything not assessed and the evidence needed]
指摘事項がないことも正当な結果です。このセクションを埋めるために、指摘を作り出してはいけません。
出典と帰属
8つの特性は、Dave Farley の
良いテストの特性を参考にしています。
このバージョンは、外部スキルを文章上で改変したものではなく、新たに作成した、証拠に基づく実装です。旧リリースにおける正確な歴史的出典と未解決の許諾問題については、
references/source-notes.mdを参照してください。
コメント
Markdown 対応