PyPICT Claude Skill

by omkamal (community) · Claude, Python, pypict

Skill AI Assistants Open Source v1.0.2 · 19.10.2025 активный

Claude skill, генерирующий тест-кейсы методом N-wise через библиотеку pypict.

v1.0.2
19.10.2025 current

Установка
# Способ 1: через магазин плагинов Claude Code
/plugin marketplace add omkamal/pypict-claude-skill
/plugin install pict-test-designer@pypict-claude-skill

# Способ 2: клонирование с GitHub (для всех проектов)
git clone https://github.com/omkamal/pypict-claude-skill.git ~/.claude/skills/pict-test-designer

# Способ 2 (вариант): для конкретного проекта
git clone https://github.com/omkamal/pypict-claude-skill.git .claude/skills/pict-test-designer
echo ".claude/skills/" >> .gitignore
git add .claude/skills/pict-test-designer
git commit -m "Add PICT test designer skill"

# Способ 3: через git submodule (для командной работы)
git submodule add https://github.com/omkamal/pypict-claude-skill.git .claude/skills/pict-test-designer
git commit -m "Add PICT test designer skill as submodule"

# Способ 4: минимальный пакет из релизов
wget https://github.com/omkamal/pypict-claude-skill/releases/latest/download/pict-test-designer-minimal.zip
unzip pict-test-designer-minimal.zip
mv pict-test-designer-minimal ~/.claude/skills/pict-test-designer

# Способ 5: полный репозиторий в ZIP
unzip pypict-claude-skill-main.zip
mv pypict-claude-skill-main ~/.claude/skills/pict-test-designer
показать оригинал переведено ИИ

PICT Test Designer - Навык для Claude

Навык для Claude, предназначенный для проектирования комплексных тестовых случаев с использованием PICT (Pairwise Independent Combinatorial Testing). Этот навык позволяет систематически разрабатывать тестовые случаи с минимальным количеством тестов, сохраняя при этом высокий уровень покрытия благодаря попарному комбинаторному тестированию.

Лицензия: MIT Claude

🎯 Что такое PICT?

PICT (Pairwise Independent Combinatorial Testing) — это инструмент комбинаторного тестирования, разработанный Microsoft. Он генерирует тестовые случаи, которые эффективно покрывают все попарные комбинации параметров, значительно сокращая общее количество тестов по сравнению с исчерпывающим тестированием.

Пример: Тестирование системы с 8 параметрами и 3–5 значениями для каждого: - Исчерпывающее тестирование: 25 920 тестовых случаев - Попарное тестирование с PICT: ~30 тестовых случаев (сокращение на 99,88%!)

🚀 Возможности

  • Автоматическая генерация тестовых случаев: Преобразует требования в структурированные модели PICT
  • Тестирование с учётом ограничений: Применяет бизнес-правила для исключения недопустимых комбинаций
  • Генерация ожидаемых результатов: Автоматически определяет ожидаемые результаты для каждого тестового случая
  • Комплексное покрытие: Гарантирует тестирование всех попарных взаимодействий параметров
  • Поддержка различных областей: Работает для функций ПО, API, веб-форм, конфигураций и многого другого

📋 Содержание

🔧 Установка

Требования

  • Claude Code CLI или Claude Code Desktop
  • (Необязательно) Python 3.7+ с pypict для расширенного использования

Способы установки

Навыки для Claude Code можно установить через магазин плагинов или вручную, разместив их в директории .claude/skills/.

Способ 1: Установка через магазин плагинов Claude Code (проще всего) 🌟

Установите напрямую через систему плагинов Claude Code:

# Add the marketplace
/plugin marketplace add omkamal/pypict-claude-skill

# Install the plugin
/plugin install pict-test-designer@pypict-claude-skill

Это автоматически установит навык и будет поддерживать его в актуальном состоянии. Навык будет доступен во всех ваших проектах.

Способ 2: Установка с GitHub (вручную)

Для личного использования (все проекты):

# Clone the repository to your personal skills directory
git clone https://github.com/omkamal/pypict-claude-skill.git ~/.claude/skills/pict-test-designer

# Restart Claude Code to load the skill
# The skill will now be available in all your projects

Для использования в конкретном проекте:

# From your project directory
git clone https://github.com/omkamal/pypict-claude-skill.git .claude/skills/pict-test-designer

# Add to .gitignore if you don't want to commit it
echo ".claude/skills/" >> .gitignore

# Or commit it to share with your team
git add .claude/skills/pict-test-designer
git commit -m "Add PICT test designer skill"

Способ 3: Установка через Git Submodule (для командной работы)

Если вы хотите поделиться этим навыком с командой через систему контроля версий:

# From your project directory
git submodule add https://github.com/omkamal/pypict-claude-skill.git .claude/skills/pict-test-designer
git commit -m "Add PICT test designer skill as submodule"

# Team members clone with:
git clone --recurse-submodules <your-repo-url>

# Or if already cloned:
git submodule update --init --recursive

Способ 4: Загрузка минимального пакета из релизов

Загрузите предварительно упакованный минимальный пакет установки из релизов GitHub:

# Download the latest minimal package from releases
wget https://github.com/omkamal/pypict-claude-skill/releases/latest/download/pict-test-designer-minimal.zip

# Extract and install for personal use
unzip pict-test-designer-minimal.zip
mv pict-test-designer-minimal ~/.claude/skills/pict-test-designer

# Or for project-specific use
unzip pict-test-designer-minimal.zip
mv pict-test-designer-minimal .claude/skills/pict-test-designer

Что включено: SKILL.md, LICENSE, references/ (синтаксис и примеры) Что исключено: Полные примеры, вспомогательные скрипты, расширенная документация Размер: ~9 КБ | Последняя версия: Смотреть релизы

Способ 5: Загрузка полного репозитория

  1. Загрузите репозиторий в виде ZIP-файла с GitHub
  2. Распакуйте в директорию навыков:
# For personal use (all projects)
unzip pypict-claude-skill-main.zip
mv pypict-claude-skill-main ~/.claude/skills/pict-test-designer

# For project-specific use
unzip pypict-claude-skill-main.zip
mv pypict-claude-skill-main .claude/skills/pict-test-designer

Проверка установки

После установки перезапустите Claude Code. Навык загрузится автоматически при необходимости. Вы можете проверить его, спросив у Claude:

Do you have access to the pict-test-designer skill?

Или просто начните использовать:

Design test cases for a login function with username, password, and remember me checkbox.

🚀 Быстрый старт

После установки вы можете использовать навык в Claude, просто спросив:

Design test cases for a login function with username, password, and remember me checkbox.

Claude выполнит следующие действия: 1. Проанализирует требования 2. Определит параметры и их значения 3. Создаст модель PICT с ограничениями 4. Сформирует тестовые случаи с ожидаемыми результатами 5. Представит результаты в виде форматированной таблицы

📊 Пример: Тестирование банкомата

В этом репозитории содержится полный пример из реальной практики по тестированию банкомата. Загляните в директорию examples, где вы найдёте:

- Спецификация банкомата: Полная спецификация банкомата, включающая 11 разделов, охватывающих аппаратное обеспечение, программное обеспечение, безопасность и функциональные требования

  • План тестирования банкомата: Полный план тестирования, созданный с использованием методологии PICT, включающий 31 тестовый случай (сокращено с 25 920 возможных комбинаций)

Итоги примера с банкоматом

Параметры системы: - Типы транзакций (5): Снятие, Внесение, Запрос баланса, Перевод, Смена PIN-кода - Типы карт (3): EMV-чип, Магнитная полоса, Недействительная - Статус PIN-кода (4): Действительный, Недействительные попытки 1–3 - Типы счетов (3): Текущий, Сберегательный, Оба - Суммы транзакций (4): В пределах лимитов, Максимальная, Превышает лимит транзакции, Превышает дневной лимит - Наличие наличных (3): Достаточно, Недостаточно, Отсутствуют - Статус сети (3): Основная, Резервная, Отключена - Состояние карты (3): Хорошее, Повреждённая, Просроченная

Результаты тестирования: - Всего возможных комбинаций: 25 920 - Сгенерированных тестовых случаев PICT: 31 - Сокращение: 99,88% - Покрытие: Все парные (2-сторонние) взаимодействия - Время выполнения тестов: Сокращено с недель до часов

Запуск примера с банкоматом

# In Claude Code
Ask: "Use the pict-test-designer skill to analyze the ATM specification 
in examples/atm-specification.md and generate test cases"

🔍 Как это работает

1. Анализ требований

Claude анализирует ваши требования для выявления: - Параметров: Входные переменные, опции конфигурации, факторы окружения - Значений: Возможные значения с использованием эквивалентного разбиения - Ограничений: Бизнес-правила и зависимости - Ожидаемых результатов: Что должно происходить для разных комбинаций

2. Генерация модели PICT

Создаётся структурированная модель:

# Parameters
Browser: Chrome, Firefox, Safari
OS: Windows, MacOS, Linux
Memory: 4GB, 8GB, 16GB

# Constraints
IF [OS] = "MacOS" THEN [Browser] <> "IE";
IF [Memory] = "4GB" THEN [OS] <> "MacOS";

3. Генерация тестовых случаев

Генерируются минимальные тестовые случаи, покрывающие все парные комбинации:

№ теста Браузер ОС Память Ожидаемый результат
1 Chrome Windows 4 ГБ Успех
2 Firefox macOS 8 ГБ Успех
3 Safari Linux 16 ГБ Успех
... ... ... ... ...

4. Определение ожидаемого результата

Для каждого тестового случая Claude определяет ожидаемый результат на основе: - Бизнес-требований - Логики кода - Допустимых/недопустимых комбинаций

🎯 Варианты использования

Тестирование ПО

  • Функциональное тестирование с несколькими параметрами
  • Тестирование API-эндпоинтов
  • Тестирование запросов к базе данных
  • Валидация алгоритмов

Тестирование конфигураций

  • Комбинации системных конфигураций
  • Тестирование флагов функций
  • Валидация настроек окружения
  • Тестирование совместимости браузеров

Тестирование веб-приложений

  • Валидация форм
  • Потоки аутентификации пользователей
  • Процессы оформления заказа в интернет-магазинах
  • Функциональность корзины

Тестирование мобильных приложений

  • Комбинации устройств и ОС
  • Размеры экрана и ориентация
  • Условия сети
  • Разрешения приложений

Тестирование оборудования

  • Совместимость устройств
  • Тестирование интерфейсов
  • Валидация протоколов
  • Производительность в разных условиях

📚 Документация

💡 Советы для достижения лучших результатов

Хорошие названия параметров

✅ Используйте описательные имена: AuthMethod, UserRole, PaymentType ✅ Применяйте эквивалентное разбиение: FileSize: Маленький, Средний, Большой ✅ Включайте граничные значения: Age: 0, 17, 18, 65, 66 ✅ Добавляйте отрицательные значения: Amount: ~-1, 0, 100, ~999999

Написание ограничений

✅ Документируйте обоснование: # Safari доступен только на macOS ✅ Начинайте с простого, добавляйте постепенно ✅ Проверяйте, что ограничения работают как ожидается

Ожидаемые результаты

✅ Будьте конкретны: "Вход выполнен успешно, пользователь перенаправлен на панель управления" ❌ Избегайте расплывчатых формулировок: "Работает" или "Успех"

🙏 Благодарности

Этот навык создан на основе отличной работы:

  • Microsoft PICT: Оригинальный инструмент для попарного независимого комбинаторного тестирования, разработанный Microsoft Research
  • pypict: Python-обёртка для PICT от Кеничи Маэхаси
  • Участники сообщества: Все, кто помог улучшить инструменты PICT

О PICT

PICT был разработан Яцеком Червонкой в Microsoft Research. Это мощный инструмент комбинаторного тестирования, который широко использовался в Microsoft для тестирования сложных систем с множеством взаимодействующих параметров.

Ссылки: - PICT: Попарное независимое комбинаторное тестирование - Методология попарного тестирования - Проектирование комбинаторных тестов

🤝 Участие в разработке

Принимаем ваши вклады! Вот как вы можете помочь:

  1. Создайте форк репозитория
  2. Создайте ветку для новой функции: git checkout -b feature/amazing-feature
  3. Внесите изменения
  4. Добавьте примеры или документацию
  5. Закоммитьте изменения: git commit -m 'Добавлена потрясающая функция'
  6. Отправьте изменения в ветку: git push origin feature/amazing-feature
  7. Создайте Pull Request

Направления для вклада

  • Дополнительные примеры из реальной практики
  • Расширенные шаблоны ограничений
  • Поддержка дополнительных областей тестирования
  • Улучшенная документация
  • Исправление ошибок и улучшения

📝 Лицензия

Этот проект распространяется под лицензией MIT — подробности см. в файле LICENSE.

Базовый инструмент PICT от Microsoft также распространяется под лицензией MIT.

🔗 Ссылки

  • Claude AI: https://claude.ai
  • Документация Claude: https://docs.claude.com
  • Microsoft PICT: https://github.com/microsoft/pict
  • pypict: https://github.com/kmaehashi/pypict
  • Онлайн-инструменты PICT:
    • https://pairwise.yuuniworks.com/
    • https://pairwise.teremokgames.com/

📧 Поддержка

Если у вас возникли проблемы или вопросы:

  1. Проверьте каталог examples для справки
  2. Ознакомьтесь с документацией SKILL.md
  3. Создайте issue на GitHub
  4. Присоединяйтесь к обсуждениям в разделе Issues

🌟 Поставьте звезду этому репозиторию

Если этот навык оказался полезным, пожалуйста, поставьте звезду репозиторию, чтобы помочь другим его обнаружить!


Создано с ❤️ для сообщества Claude и тестировщиков

Работает на базе Microsoft PICT и pypict

Войдите, чтобы оставить комментарий