From magic-powers
Use when designing test cases — applying boundary value analysis, equivalence partitioning, decision tables, pairwise testing, and exploratory testing techniques to maximize defect detection with minimal test cases.
npx claudepluginhub kienbui1995/magic-powers --plugin magic-powersThis skill uses the workspace's default tool permissions.
- Writing test cases for a new feature
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Group inputs into classes where the system behaves the same — test one value per class.
Example: Age field for insurance (must be 18-65)
Valid partitions: [18-65] → test with 35
Invalid partitions: [<18] → test with 10
[>65] → test with 70
[non-numeric] → test with "abc"
[empty] → test with ""
Result: 5 test cases instead of testing every possible age
Test at and around boundaries where defects cluster.
Example: Same age field [18-65]
Boundaries to test:
Lower boundary: 17 (invalid), 18 (valid), 19 (valid)
Upper boundary: 64 (valid), 65 (valid), 66 (invalid)
Zero/null: 0, negative (-1), empty
Result: 8 focused tests covering the most defect-prone values
# BVA test pattern
@pytest.mark.parametrize("age,expected", [
(17, False), # below lower boundary
(18, True), # at lower boundary
(19, True), # above lower boundary
(64, True), # below upper boundary
(65, True), # at upper boundary
(66, False), # above upper boundary
(0, False), # zero
(-1, False), # negative
])
def test_age_validation(age, expected):
assert validate_age(age) == expected
For business logic with multiple conditions and combinations.
Feature: Loan approval
Conditions:
C1: Credit score >= 700?
C2: Income >= $50K?
C3: Debt ratio <= 40%?
Decision table:
C1 | C2 | C3 | Action
Y | Y | Y | APPROVE
Y | Y | N | REVIEW (high debt)
Y | N | Y | REVIEW (low income)
Y | N | N | DENY
N | Y | Y | REVIEW (low credit)
N | Y | N | DENY
N | N | Y | DENY
N | N | N | DENY
Result: 8 test cases covering all condition combinations
When too many combinations exist — test every pair of inputs at least once.
Example: 3 parameters, 3 values each = 27 combinations
Pairwise reduces to ~9 tests while catching most pair-interaction defects
Tools: allpairs (Python), PictMaster, ACTS
from allpairspy import AllPairs
parameters = [
["Windows", "Mac", "Linux"], # OS
["Chrome", "Firefox", "Edge"], # Browser
["English", "French", "Spanish"], # Language
]
for i, pairs in enumerate(AllPairs(parameters)):
print(i, pairs) # 9 pairs instead of 27
Structured unscripted testing to discover unexpected defects.
Session-Based Test Management (SBTM):
Charter: "Explore the checkout flow focusing on payment edge cases"
Time box: 90 minutes
Area: Payment processing
Session notes structure:
- What I tested: [actions taken]
- Issues found: [bugs/observations]
- Questions: [things to investigate further]
- Coverage: [what I covered vs didn't]
Common heuristics (SFDIPOT):
Structure: test the thing itself
Function: what it does
Data: what it processes
Interface: interactions with other components
Platform: environment, browser, OS
Operations: how users actually use it
Time: timing, concurrency, sequences
For workflows and state machines.
Example: Order status workflow
States: Pending → Confirmed → Shipped → Delivered | Cancelled
Test matrix:
From\To | Pending | Confirmed | Shipped | Delivered | Cancelled
Pending | - | ✓ test | ✗ | ✗ | ✓ test
Confirmed | ✗ | - | ✓ test | ✗ | ✓ test
Shipped | ✗ | ✗ | - | ✓ test | ✗
✓ = valid transition to test (happy + unhappy path)
✗ = invalid transition to test (should be rejected)
test-driven-development — TDD drives test design; use these techniques to define the testsqc-automation — automate test cases designed here using the framework patternstest-strategy — these techniques feed into the overall test strategy