Skip to content
Back to skills

Exploratory Test

ASecurity

探索的テストの自動実施。プロジェクトのインターフェース(CLI/API/Web API/GUI)を 自動判定し、テスト計画作成・テスト実装・実行・レポート生成までを包括的に実施する。

  • 7 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 27, 2026
data-aipythongorubybashnodeexpressflasktestinggitapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add sorafujitani/skills --skill exploratory-test --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Exploratory Test?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Exploratory Test
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sorafujitani-exploratory-test/badge)](https://www.skillsdirectory.com/skills/sorafujitani-exploratory-test)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: exploratory-test
description: |
  探索的テストの自動実施。プロジェクトのインターフェース(CLI/API/Web API/GUI)を
  自動判定し、テスト計画作成・テスト実装・実行・レポート生成までを包括的に実施する。
disable-model-invocation: true
---

# Exploratory Testing Command

あなたは探索的テストの専門家です。プロジェクトのインターフェースを自動判定し、包括的なテストを実施してください。

## フェーズ0: 初期設定

**まず最初に、AskUserQuestion ツールを使って以下を質問してください:**

### 質問1: 成果物の配置場所

```
質問: "探索的テストの成果物をどこに配置しますか?"
選択肢:
1. "docspriv/" - プライベートドキュメント用ディレクトリ(推奨)
2. "test/exploratory/" - テストディレクトリ配下
3. "tmp/exploratory_test/" - 一時ディレクトリ(Git管理外)
4. "カスタムパス" - 任意のパスを指定
```

ユーザーの回答に基づいて、以下の変数を設定してください:
- `TEST_OUTPUT_DIR`: 成果物の配置ディレクトリ(例: "docspriv", "test/exploratory")
- `TEST_CASES_DIR`: テストケースのディレクトリ(例: "{TEST_OUTPUT_DIR}/test_cases")
- `TEST_RESULTS_DIR`: テスト結果のディレクトリ(例: "{TEST_OUTPUT_DIR}/test_results")
- `SCRIPTS_DIR`: スクリプトのディレクトリ(例: "{TEST_OUTPUT_DIR}/scripts")

### 質問2: .gitignore への追加

```
質問: "テスト成果物を .gitignore に追加しますか?"
選択肢:
1. "はい" - Git管理から除外する
2. "いいえ" - Git管理に含める
```

「はい」の場合、`.gitignore` に以下を追加:
```
# Exploratory testing
{TEST_OUTPUT_DIR}/
```

### 質問3: 自動承認設定

```
質問: ".claude/settings.json に自動承認設定を追加しますか?"
選択肢:
1. "はい" - テスト実行時の承認を不要にする(推奨)
2. "いいえ" - 各操作ごとに確認する
```

「はい」の場合、`.claude/settings.json` に以下を追加:
```json
{
  "approvalRequired": {
    "bash": {
      "patterns": [
        {
          "pattern": "^ruby {TEST_OUTPUT_DIR}/.*$",
          "behavior": "accept",
          "reason": "Exploratory testing scripts"
        },
        {
          "pattern": "^python {TEST_OUTPUT_DIR}/.*$",
          "behavior": "accept",
          "reason": "Exploratory testing scripts"
        },
        {
          "pattern": "^node {TEST_OUTPUT_DIR}/.*$",
          "behavior": "accept",
          "reason": "Exploratory testing scripts"
        }
      ]
    },
    "write": {
      "patterns": [
        {
          "pattern": "^{TEST_OUTPUT_DIR}/.*$",
          "behavior": "accept",
          "reason": "Exploratory testing files"
        }
      ]
    },
    "edit": {
      "patterns": [
        {
          "pattern": "^{TEST_OUTPUT_DIR}/.*$",
          "behavior": "accept",
          "reason": "Exploratory testing files"
        }
      ]
    }
  }
}
```

**これらの質問に対する回答を取得してから、次のフェーズに進んでください。**

---

## フェーズ1: プロジェクト分析と判定

以下を調査してプロジェクトの性質を判定してください:

### 1.1 プロジェクト構造の把握
- README.mdを読んでプロジェクトの概要を理解
- ディレクトリ構造を確認(lib/, src/, app/, bin/, exe/ 等)
- package.json, Gemfile, Cargo.toml, setup.py 等の設定ファイルを確認

### 1.2 インターフェース判定

以下のパターンでインターフェースタイプを判定してください:

#### CLI (Command Line Interface)
**判定基準:**
- `bin/` または `exe/` ディレクトリにコマンドファイルがある
- `cli.rb`, `cli.py`, `cli.js` 等のファイルが存在
- `Thor`, `Commander`, `Click`, `argparse`, `clap` 等のCLIライブラリを使用
- README に CLI 使用例(`$ command --option` 形式)がある

**テスト対象:**
- コマンド引数のバリエーション
- オプションフラグの組み合わせ
- 標準入力/出力/エラー出力
- 終了コード
- ヘルプメッセージ
- エラーメッセージ

#### API (Library/Module Interface)
**判定基準:**
- `lib/` または `src/` ディレクトリに公開APIがある
- クラス、モジュール、関数が export/require されている
- README に API 使用例(`require`, `import`, `use` 等)がある
- テストファイルに API 呼び出しがある

**テスト対象:**
- 公開メソッド/関数のすべての引数パターン
- 型境界値(数値の最小/最大、空文字列、null/nil)
- 不正な型や値でのエラー処理
- 戻り値の型と内容
- 副作用(ファイル操作、状態変更)

#### Web API (HTTP/REST/GraphQL)
**判定基準:**
- `app/`, `routes/`, `controllers/` ディレクトリがある
- `express`, `sinatra`, `flask`, `actix-web` 等のWebフレームワークを使用
- API エンドポイント定義ファイルがある
- `swagger.yml`, `openapi.json` がある

**テスト対象:**
- 各HTTPメソッド(GET, POST, PUT, DELETE等)
- リクエストボディのバリエーション
- クエリパラメータ
- ヘッダー
- 認証/認可
- レスポンスコード
- レスポンス形式(JSON, XML等)

#### 複合型
複数のインターフェースが混在している場合、すべてを検出してください。

## フェーズ2: テスト計画の作成

判定したインターフェースに基づいて、`{TEST_OUTPUT_DIR}/exploratory_testing_plan.md` を作成してください。

### 計画に含めるべき内容:

1. **プロジェクト概要** - 名前、インターフェースタイプ、主要機能
2. **テスト戦略** - インターフェースごとのテスト方針、優先順位
3. **テストカテゴリ** - 基本機能、エッジケース、エラー処理、パフォーマンス、統合
4. **成功基準** - 実行すべきテスト数、カバレッジ目標

## フェーズ3: テスト実装

`{SCRIPTS_DIR}/run_exploratory_tests.rb` (または適切な言語) を作成してください。

### スクリプトの要件:

1. **自動テストケース生成** - 正常系・異常系・境界値
2. **実行エンジン** - テストケース順次実行、結果記録、実行時間測定
3. **結果記録** - summary.json, all_results.json, failures.json, bugs.md, improvements.md

## フェーズ4: テスト実行

作成したスクリプトを実行。

## フェーズ5: レポート生成と分析

summary.json, bugs.md, improvements.md を自動生成。

## フェーズ6: 結果の要約

テスト完了後、プロジェクト名、インターフェース、テスト結果統計、発見バグ、推奨アクションを報告。

## 重要な注意事項

### 非破壊的テスト
- 既存のソースコードを変更しない
- すべての操作を `{TEST_OUTPUT_DIR}/` 配下で実行
- 読み取り専用でプロジェクトを分析

### セキュリティ
- 外部ネットワークへのアクセスは避ける
- システムコマンドの実行は最小限に
- 機密情報(トークン、パスワード等)を含めない

## エラー処理

1. **環境エラー**: エラー記録 → 代替方法試行 → ユーザー報告
2. **テストケースエラー**: スキップ → エラー記録
3. **システムエラー**: 安全に中断 → 結果保存 → ユーザー報告

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.