/ ディレクトリ / プレイグラウンド / pypict Test Case Generator
● コミュニティ omkamal ⚡ 即起動

pypict Test Case Generator

作者 omkamal · omkamal/pypict-claude-skill

N-wise (pairwise) test case generation with the pypict library.

Combinatorial testing is one of the highest-ROI test techniques you're not using. This skill teaches Claude to model your inputs as parameter sets and generate pairwise (or N-wise) test cases via pypict — getting strong coverage with minimal cases.

なぜ使うのか

主な機能

ライブデモ

実際の動作

pypict-claude-skill.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "pypict-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/omkamal/pypict-claude-skill",
        "~/.claude/skills/pypict-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "pypict-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/omkamal/pypict-claude-skill",
        "~/.claude/skills/pypict-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "pypict-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/omkamal/pypict-claude-skill",
        "~/.claude/skills/pypict-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "pypict-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/omkamal/pypict-claude-skill",
        "~/.claude/skills/pypict-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "pypict-claude-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/omkamal/pypict-claude-skill",
        "~/.claude/skills/pypict-claude-skill"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "pypict-claude-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/omkamal/pypict-claude-skill",
          "~/.claude/skills/pypict-claude-skill"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add pypict-claude-skill -- git clone https://github.com/omkamal/pypict-claude-skill ~/.claude/skills/pypict-claude-skill

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: pypict Test Case Generator

Cover a feature with combinatorial inputs without writing 64 tests

👤 QA + devs writing integration tests ⏱ ~15 min intermediate

使うタイミング: Feature has 4+ enum-ish parameters and exhaustive testing would explode.

前提条件
  • Server/skill installed and authenticated — See repo README
フロー
  1. Model
    Use pypict skill: model checkout with payment_method=[card, paypal, applepay], shipping=[standard, express, intl], discount=[none, code, member], currency=[USD, EUR].✓ コピーしました
    → Pict model + ~12 pairwise cases
  2. Generate tests
    Emit pytest tests from those cases against checkout().✓ コピーしました
    → pytest file with parametrize

結果: Real combinatorial coverage with ~12 cases instead of 81.

注意点
  • Pairwise misses higher-order bugs (3-way interactions). For safety-critical paths, use 3-wise. — Pairwise misses higher-order bugs (3-way interactions). For safety-critical paths, use 3-wise.

コストと制限

運用コスト

APIクォータ
See provider docs for rate limits
呼び出しあたりのトークン
Varies by tool
金額
See repo README for pricing details
ヒント
Cache tool results and avoid repeated identical calls.

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: Use environment variables; never commit secrets
データ送信先: Tool calls go to the provider's API as documented

トラブルシューティング

よくあるエラーと対処法

pict binary not found

Install Microsoft's pict tool (or pypict bundles it). See pypict README.

確認: pypict.exec_pict('test')
constraints rejected

pict constraint syntax is strict: IF [A] = "x" THEN [B] <> "y";. Use the skill's validator.

確認: Run validator first

代替案

pypict Test Case Generator 他との比較

代替案代わりに使う場面トレードオフ
Plain parametrizeFew parametersNo combinatorial benefit

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る