exploratory-testing-advanced について
ソフトウェアの挙動や品質リスクを調べるテスター向けの、構造化された探索的テストスキルです。チャーター、ヒューリスティック、テストツアー、リアルタイムの記録を組み合わせ、事前定義された手順の実行ではなく発見を促します。
主な機能
- 01時間制限付きセッションチャーター
- 02SFDIPOT と FEW HICCUPPS のヒューリスティック
- 0312 種類のテストツアー戦略
- 04リアルタイムの記録と証拠
- 05振り返りとエージェント連携
活用シーン
- 01新機能や変更機能の探索
- 02自動テストで見逃す不具合の発見
- 03不慣れなシステムの調査
- 04テスト計画前のリスク発見
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ proffesor-for-testing/ agentic-qe --skill exploratory-testing-advancedインストール後、Claude Code で/exploratory-testing-advancedを入力して読み込まれたか確認します。
同梱ファイルreferences/heuristic-cheatsheet.md
詳細
高度な探索的テスト
<default_to_action> ソフトウェアを探索したり、品質リスクを調査したりする場合:
- ミッション、スコープ、時間枠(45-90 min)を含むチャーターを作成します
- ヒューリスティックを適用します:SFDIPOT(品質基準)、FEW HICCUPPS(一貫性のオラクル)
- テストツアー(ビジネス街、問題の多い地域、履歴)を使って体系的に探索します
- メモ、スクリーンショット、証拠を使い、発見事項をリアルタイムで記録します
- デブリーフィングを行います:何を学びましたか?次は何をしますか?エージェントのメモリを通じて共有します
ヒューリスティックのクイック選択:
- 何をテストするか → SFDIPOT(構造、機能、データ、インターフェース、プラットフォーム、運用、時間)
- 問題を見つける → FEW HICCUPPS(一貫性、説明可能性、現実、履歴、イメージ、比較可能性、主張、ユーザー、製品、目的、基準)
- アプリを操作する → テストツアー(さまざまな探索戦略に対応する12種類)
成功のための重要な要素:
- 探索は熟練した体系的な思考であり、無作為にクリックすることではありません
- 事前に計画したテストケースではなく、発見したことを記録します
- ペアテストでは、1人での探索より多くのことが明らかになります </default_to_action>
クイックリファレンスカード
使用する場面
- 新機能や変更された機能を調査するとき
- 自動テストで見逃されるバグを見つけるとき
- 不慣れなシステムを理解するとき
- テスト計画の前にリスクを発見するとき
セッションの構成(SBTM)
| フェーズ | 時間 | アクティビティ |
|---|---|---|
| チャーター | 5 min | ミッション、スコープ、重点を定義する |
| 探索 | 45-75 min | 体系的に調査する |
| メモ | 継続的 | 発見事項をリアルタイムで記録する |
| デブリーフィング | 10-15 min | 要約し、優先順位を付け、共有する |
SFDIPOTヒューリスティック(何をテストするか)
| 文字 | 焦点 | 質問の例 |
|---|---|---|
| Structure | 適切に構成されていますか? | コード構造、UIレイアウト、データスキーマ |
| Function | 期待どおりに動作しますか? | 主要機能が正しく動作するか |
| Data | データを正しく処理しますか? | CRUD、検証、永続化 |
| Interfaces | 適切に連携しますか? | API、UI、インテグレーション |
| Platform | 環境内で動作しますか? | ブラウザー、OS、デバイス |
| Operations | 使用・管理できますか? | インストール、設定、監視 |
| Time | 時間を適切に処理しますか? | 並行処理、タイムアウト、スケジューリング |
FEW HICCUPPSオラクル(問題を見つける)
| 一貫性の基準 | 確認事項 |
|---|---|
| Familiar problems | 既知のバグパターンのように見えますか? |
| Explainable | 動作を合理的に説明できますか? |
| World | 現実世界の期待に合っていますか? |
| History | 以前のバージョンとの一貫性がありますか? |
| Image | ブランドや製品のイメージに合っていますか? |
| Comparable | 競合製品と似ていますか? |
| Claims | 仕様、ドキュメント、マーケティングの内容と一致していますか? |
| Users | ユーザーの期待を満たしていますか? |
| Purpose | 意図された目的を果たしていますか? |
| Statements | 開発者の説明と一致していますか? |
テストツアー(12種類)
| ツアー | 戦略 |
|---|---|
| ビジネス街 | 重要なビジネスフロー |
| 履歴 | 過去にバグが集中した場所 |
| 問題の多い地域 | 既知の問題箇所 |
| 金銭 | 収益に影響する機能 |
| ランドマーク | 主要な機能を手がかりに操作する |
| 知的 | 複雑で、思考を要する機能 |
| FedEx | システム内でデータを追跡する |
| ガベージコレクター | クリーンアップとエッジケース |
| 博物館 | ヘルプドキュメントと例 |
| 雨天中止 | 問題が発生したときに何が起こるか |
| カウチポテト | 最小限の労力で進める経路 |
| 強迫的 | 操作を繰り返す |
セッションメモのテンプレート
**Charter:** Explore [area] to discover [what] focusing on [heuristic]
**Time-box:** 60 min | **Tester:** [name] | **Date:** [date]
## Session Notes
- [timestamp] Observation/finding
- [timestamp] Bug: [description] - [severity]
- [timestamp] Question: [unclear behavior]
## Findings Summary
- Bugs: X (Critical: Y, Major: Z)
- Questions: X
- Ideas: X
## Coverage
- Areas explored: [list]
- Heuristics used: [SFDIPOT areas]
- % Time on: Bug investigation 30%, Exploration 50%, Setup 20%
## Next Steps
- [ ] Deep dive on [area]
- [ ] Follow up on question about [topic]
エージェント支援型の探索
// Collaborative exploration session
await Task("Exploratory Session", {
charter: 'Explore checkout flow for payment edge cases',
duration: '60min',
heuristics: ['SFDIPOT', 'FEW_HICCUPPS'],
tour: 'money',
collaboration: 'human-navigator-agent-driver'
}, "qe-flaky-test-hunter");
// Agent generates test variations while human observes
await Task("Edge Case Generation", {
area: 'payment-form',
variations: ['boundary-values', 'invalid-inputs', 'concurrent-submits']
}, "qe-test-generator");
// Visual exploration
await Task("Visual Exploration", {
tour: 'landmark',
focus: 'responsive-breakpoints',
compare: 'baseline-screenshots'
}, "qe-visual-tester");
エージェント連携のヒント
メモリの名前空間
aqe/exploratory/
├── sessions/* - Session notes and findings
├── charters/* - Reusable charter templates
├── bug-clusters/* - Historical bug patterns
└── heuristic-results/* - What heuristics revealed
エージェント群の連携
const exploratoryFleet = await FleetManager.coordinate({
strategy: 'exploratory-testing',
agents: [
'qe-flaky-test-hunter', // Pattern recognition
'qe-visual-tester', // Visual anomalies
'qe-quality-analyzer' // Risk assessment
],
topology: 'mesh'
});
ペア作業のパターン
| パターン | 人間の役割 | エージェントの役割 |
|---|---|---|
| ドライバー・ナビゲーター | 操作戦略を立てる | バリエーションを実行する |
| ストロングスタイル | 操作を指示する | 発見事項を記録する |
| ピンポン | 一方の領域を観察する | 別の領域を探索する |
関連スキル
- context-driven-testing — RST の基礎
- risk-based-testing — リスクに基づいて探索に焦点を当てます
- agentic-quality-engineering — エージェントの連携
覚えておくこと
探索的テスト = 学習、テスト設計、テスト実行を同時に行うことです。
無作為にクリックすることではありません。ヒューリスティックとオラクルに導かれた、体系的で熟練した調査です。発見したことはリアルタイムで記録します。ペアテストによって発見が広がります。
エージェントとの連携: エージェントはバリエーションを生成し、パターンを認識して、セッションのメモを維持します。その一方で、人間は判断力と直感を発揮します。エージェントの徹底性と人間の洞察を組み合わせます。
注意点
- エージェントが探索的テストをスクリプト化されたテスト実行として扱う場合は、探索とはリアルタイムで学び、適応することだと伝えます
- エージェントのセッションメモには「なぜこれを試したのか」という推論が欠けていることがあります。判断の根拠を明示的に尋ねます
- 90 分のセッションではコンテキストがあふれるため、45 分以内に区切り、明示的な振り返りを行います
- エージェントはハッピーパスの探索を優先しがちです。ネガティブテストでは「Bad Neighborhood」または「Saboteur」のツアーを明示的に割り当てます
- エージェントがドメインを理解していないと、SFDIPOT ヒューリスティックが誤って適用されます。あらかじめドメインのコンテキストを提供します
コメント
Markdown 対応