manual-testing について
manual-testing は、最近の変更を検証するテストスキルです。自動チェックを優先し、ツールで確認できない項目だけを手動検証に回し、結果の整理も支援します。
主な機能
- 01変更点と検証対象の特定
- 02自動化できるチェックの分類
- 03自動テストの優先実行
- 04絞り込んだユーザー検証の依頼
- 05結果と問題の要約
活用シーン
- 01実装後のコード変更の検証
- 02ビルド、テスト、API、CLI 出力の確認
- 03ツールで行えない外観チェックの依頼
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ petekp/ agent-skills --skill manual-testingインストール後、Claude Code で/manual-testingを入力して読み込まれたか確認します。
詳細
手動テスト
まず自動テストで現在の作業を検証し、必要な場合にのみユーザーによる検証に切り替えます。
基本原則
可能な限りすべてを自動化します。 Claude がツールを使って検証できないことだけを、ユーザーに手動で確認してもらいます。
ワークフロー
1. 現在のコンテキストを分析する
最近の作業を調べ、テストが必要な項目を特定します。
- 最近のファイル変更と会話履歴を確認します
- 検証する機能、修正、変更を特定します
- テスト可能な動作と期待される結果を判断します
2. 各検証手順を分類する
検証する項目ごとに、Claude が自動的にテストできるかどうかを判断します。
Claude が検証できること(自動的に実行します):
- コードのコンパイル/ビルド:
npm run build、cargo build、go buildなど - テストの合格:
npm test、pytest、cargo testなど - リント/型チェック:
eslint、tsc --noEmit、mypyなど - API レスポンス:
curl、httpie、またはスクリプト化されたリクエスト - ファイルの内容:ファイルを読み込み、期待されるパターンを grep で検索します
- CLI ツールの出力:コマンドを実行して出力を確認します
- サーバーの起動:サーバーを起動し、エラーを確認してエンドポイントの応答を検証します
- データベースの状態:データベースにクエリを実行し、レコードの存在を確認します
- ログ出力:ログを追跡し、期待される/予期しないメッセージを grep で検索します
- プロセスの動作:終了コード、stdout/stderr の内容を確認します
- ファイルの存在/権限:
ls、stat、test -f - JSON/設定の妥当性:構造を解析して検証します
- ポートの使用状況:
lsof、netstat、localhost への curl - Git の状態:差分、コミット、ブランチの状態を確認します
Claude が検証できないこと(ユーザーに確認を依頼します):
- 見た目(色、レイアウト、余白、配置)
- アニメーションやトランジション
- ユーザー体験の感覚(応答性、直感的かどうか)
- クロスブラウザーでの表示
- モバイル端末での動作
- 物理ハードウェアとの連携
- サードパーティサービスの UI(OAuth フロー、支払いフォーム)
- 実際のスクリーンリーダーを使ったアクセシビリティ
- パフォーマンスの体感(速く/遅く感じるか)
3. 自動検証を実行する
自動化可能なチェックをすべて先に実行します。徹底的に確認してください。
# Example: Testing a web feature
npm run build # Compiles?
npm run lint # No lint errors?
npm test # Tests pass?
npm run dev & # Server starts?
sleep 3
curl localhost:3000/api/endpoint # API responds correctly?
進捗に応じて結果を報告します。自動テストに失敗した場合は、ユーザーに検証を依頼する前に中断して対処します。
4. ユーザーによる検証(必要な場合のみ)
Claude が自動化できない手順については、選択可能な結果を提示し、一つずつ順番に確認します。
Step N of M: [Brief description]
**Action:** [Specific instruction - what to do]
**Expected:** [What should happen if working correctly]
次に、予測される結果を添えて AskUserQuestion を使用します。
- 最も可能性の高い結果を 2~4 個、選択肢として提示します
- 最初の選択肢:期待される/成功の結果
- 残りの選択肢:よくある失敗パターン
- 自由記述の「その他」選択肢は自動的に提示されます
例:
{
"questions": [{
"question": "How does the button look?",
"header": "Visual check",
"options": [
{"label": "Looks correct", "description": "Blue button, proper spacing, readable text"},
{"label": "Wrong color/style", "description": "Button exists but styling is off"},
{"label": "Layout broken", "description": "Elements overlapping or misaligned"},
{"label": "Not visible", "description": "Button missing or hidden"}
],
"multiSelect": false
}]
}
5. 結果に対応する
自動テストに失敗した場合: 次に進む前に中断して修正します。
ユーザーから問題の報告があった場合: 内容を記録し、今すぐ調査するか、テストを続けるかを確認します。
6. 要約する
すべての手順が完了したら、次の内容をまとめます。
- 自動的に検証した内容(合格/不合格を含む)
- ユーザーが検証した内容(結果を含む)
- 見つかった問題の概要
- 次のアクションの提案
ガイドライン
- 可能であれば自動チェックを並行して実行します
- 検証方法を工夫してください。多くの項目はプログラムでテストできます
- 自動化できるか判断がつかない場合は、まず試してください
- ユーザーによる検証は最小限にし、見た目や体験に関する確認に絞ります
コメント
Markdown 対応