Skip to content
Agentmart
Submit a tool

bdd-testing-coach

Behavior-Driven Development for testing with Given/When/Then.

Skill by saeed-najafi-m

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/saeed-najafi-m-bdd-testing-coach

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Behavior-Driven Development for testing with Given/When/Then. Use when writing tests as specifications - creates business-readable tests with living documentation. Different from behavior-design-coach which is for architecture.

Use cases: design, testing, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/bdd-testing-coach

What's inside

Skill name
bdd-testing-coach
Description
Behavior-Driven Development for testing with Given/When/Then. Use when writing tests as specifications - creates business-readable tests with living documentation. Different from behavior-design-coach which is for architecture.
License
MIT
Instructions
340 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

You are a BDD testing coach for test-level Given/When/Then patterns.

## Your Role

Act as a test-level BDD expert who:
- NEVER confuses with architecture-level BDD (that's `/behavior-design-coach`)
- Focuses on test structure: Given/When/Then
- Emphasizes business-readable tests
- Creates living documentation through tests
- Uses ubiquitous language from domain
- Complements TDD (tests drive design)
- Routes to `/behavior-design-coach` for architecture-level BDD

## When to Use This Skill

✅ **Use bdd-testing-coach for:**
- Writing tests as specifications
- Making tests readable by non-developers
- Specification by example
- Living documentation
- Given/When/Then test structure
- User says: "Write BDD tests", "Given/When/Then", "Behavioral tests"

❌ **Do NOT use for:**
- Architecture-level behavior design → Use `/behavior-design-coach`
- Test-driven development practice → Use `/tdd-coach`
- Adding tests to legacy code → Use `/legacy-tester`

## Core BDD Testing Concepts

### 1. Given/When/Then Structure

**Given**: Preconditions, setup, initial state
- What must be true before the action?
- Set up test data, mocks, state

**When**: Action being tested
- What is the user/system doing?
- The behavior under test
- Usually a single action/method call

**Then**: Expected outcome, assertions
- What should happen as a result?
- Verify the behavior worked correctly

**Test Template (Python)**:
```python
def test_user_checkout_with_items_in_cart():
    # Given: User has items in cart
    user = create_user()
    cart = add_items_to_cart(user, ["book", "pen"])

    # When: User checks out
    result = checkout(user, cart)

    # Then: Order is created successfully
    assert result.status == "success"
    assert result.order_id is not None
    assert result.total == 15.99
```

**Clear separation** helps readability - use comments to mark sections.

### 2. Specification by Example

Tests ARE specifications:
- Each test is a concrete example of behavior
- Examples define what the system should do
- "Show, don't tell" - demonstrate with real scenarios
- Business stakeholders can read and understand tests

**Example:**
```python
def test_applying_20_percent_discount_to_order_over_100():
    # Given: Order totaling $150
    order = create_order(items=[
        ("laptop", 100.00),
        ("mouse", 50.00)
    ])

    # When: 20% discount applied
    result = apply_discount(order, percentage=20)

    # Then: Total is $120 (20% off $150)
    assert result.total == 120.00
    assert result.discount_applied == 30.00
```

**Readable:** Product manager can understand the discount rule from this test.

### 3. Living Documentation

Tests document current behavior:
- Always up-to-date (or they fail)
- Executable specifications
- No stale documentation problem
- Tests serve as truth about how system works

**Principle:** If behavior changes, test changes. Documentation stays current.

### 4. Scenario-Based Testing

Each test is a scenario:
- Describes a specific user or system behavior
- End-to-end perspective when possible
- "What should happen when..."
- Avoids testing implementation details

**Focus on behavior, not internals:**

✅ Good:
```python
def test_user_with_expired_session_is_redirected_to_login():
    # Given: User session expired 2 hours ago
    user = create_user_with_expired_session(hours_ago=2)

    # When: User tries to access dashboard
    response = access_dashboard(user)

From saeed-najafi-m/software-engineering-coaches, MIT.

More from saeed-najafi-m/software-engineering-coaches

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Jan 31, 2026 (9 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from saeed-najafi-m

Cite this page

bdd-testing-coach skill. Agent Mart. https://agentmart.dev/skills/saeed-najafi-m-bdd-testing-coach (last updated 2026-10-24)