Help us improve
Share bugs, ideas, or general feedback.
Тест-дизайн — ловушки применения. Активируется при equivalence partitioning, boundary values, decision table, state transition, pairwise, BVA, EP, negative testing, error guessing, test case
How this skill is triggered — by the user, by Claude, or both
Slash command
/dex-skill-test-design:test-designThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Плохо: поле quantity (1-100) — тестируют `quantity=5` и `quantity=50`
Share bugs, ideas, or general feedback.
Плохо: поле quantity (1-100) — тестируют quantity=5 и quantity=50
Правильно: BVA: 0 (min-1, error), 1 (min, OK), 100 (max, OK), 101 (max+1, error)
Почему: большинство багов на границах диапазона. Тест "середины" не находит off-by-one ошибки
Плохо: BVA покрыт, но не проверены null, -1, 2147483648 (int overflow), пустая строка
Правильно: дополняй BVA error guessing: null, отрицательные, overflow, спецсимволы
Почему: BVA ловит граничные баги, но не ловит type confusion и edge cases вне диапазона
Плохо: возраст 18-120 — тестируют только age=25 (valid класс)
Правильно: все invalid классы: <0, 0-17, 18-120 (valid), >120, не-число ("abc"), null
Почему: один тест на valid класс недостаточен. Баги чаще в обработке невалидных данных, а не валидных
Плохо: один invalid класс "неправильный возраст" с тестом age=-5
Правильно: отдельные классы: отрицательные, ноль, ниже минимума, выше максимума, нечисловые, null
Почему: каждый invalid класс может обрабатываться разным кодом. Один тест не покрывает все ветки обработки ошибок
Плохо: тестируют Draft->Pending->Processing->Shipped->Delivered — только happy path
Правильно: добавь невалидные: Draft->Shipped (error), Cancelled->Processing (error), Delivered->Pending (error)
Почему: баг часто в том, что запрещённый переход РАБОТАЕТ. Без теста на невалидный переход — дефект не найден
Плохо: проверяют только что статус изменился, не проверяют side effects
Правильно: при Pending->Cancelled проверь: статус, возврат средств, уведомление, восстановление stock
Почему: переход состояния часто триггерит бизнес-логику. Статус изменился, а деньги не вернулись = критический баг
Плохо: 3 условия (Premium + Сумма>=5000 + Промокод), тестируют 2 из 8 комбинаций Правильно: полная таблица 2^N = 8 комбинаций, каждая = тест-кейс Почему: баг прячется в непроверенной комбинации. Premium + малая сумма + промокод = скидка отрицательная?
Плохо: пропускают комбинацию Regular + малая сумма + нет промокода ("и так понятно что 0%")
Правильно: тестируй ВСЕ комбинации — "очевидный" результат может быть неочевиден в коде
Почему: разработчик мог забыть default case, и вместо 0% вернётся null или ошибка
Плохо: оплата (тип карты x валюта x 3D-Secure x recurring) — pairwise сокращает 54 до 12 Правильно: полный перебор для финансов и безопасности, pairwise только для UI/конфигурации Почему: пропущенная комбинация в платежах = реальные деньги потеряны. Риск не оправдан экономией времени
Плохо: 80% тестов — happy path, 20% — negative Правильно: минимум 50% negative сценариев (error handling, invalid input, edge cases) Почему: пользователи вводят неожиданные данные. Система должна корректно отклонять, а не падать
Плохо: используют только BVA для всего — и для полей, и для бизнес-правил, и для состояний Правильно: комбинируй: BVA+EP для полей, Decision Table для правил, State Transition для lifecycle Почему: каждая техника ловит свой класс дефектов. Одна техника = слепые зоны
| Ситуация | Техника | НЕ используй |
|---|---|---|
| Поле с диапазоном | BVA + EP | Только random values |
| Бизнес-правила с условиями | Decision Table | Только happy path |
| Объект с жизненным циклом | State Transition | Только валидные переходы |
| Много параметров конфигурации | Pairwise | Полный перебор (взрыв) |
| Финансы, безопасность | Полный перебор | Pairwise (риск пропуска) |
npx claudepluginhub dex-it/claude-code-marketplace --plugin dex-skill-test-designProvides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.