From e99a02f409c7d65216e10ee61faebf358bb2ada1 Mon Sep 17 00:00:00 2001 From: murat Date: Wed, 28 Jan 2026 10:27:27 -0600 Subject: [PATCH] fix: addressed PR comments --- README.md | 3 +- docs/reference/quinn-sdet.md | 150 ------------------ src/bmm/agents/quinn.agent.yaml | 13 +- src/bmm/module-help.csv | 2 +- src/bmm/teams/default-party.csv | 2 +- src/bmm/workflows/sdet/automate/checklist.md | 10 +- .../workflows/sdet/automate/instructions.md | 59 ++----- src/bmm/workflows/sdet/automate/workflow.yaml | 4 +- 8 files changed, 31 insertions(+), 212 deletions(-) delete mode 100644 docs/reference/quinn-sdet.md diff --git a/README.md b/README.md index 8698ec96..d53e8616 100644 --- a/README.md +++ b/README.md @@ -85,9 +85,8 @@ BMad provides two testing options to fit your needs: - ✅ **Always available** in BMM module (no separate install) - ✅ **Simple**: One workflow (`QA` - Quick Automate) -- ✅ **Beginner-friendly**: Standard Playwright patterns +- ✅ **Beginner-friendly**: Standard test framework patterns - ✅ **Fast**: Generate tests and ship -- 📖 [Quinn Documentation](http://docs.bmad-method.org/reference/quinn-sdet) **Use Quinn for:** Small projects, quick coverage, standard patterns diff --git a/docs/reference/quinn-sdet.md b/docs/reference/quinn-sdet.md deleted file mode 100644 index 8b926edc..00000000 --- a/docs/reference/quinn-sdet.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: Quinn - SDET Agent -description: Quick test automation with standard Playwright patterns ---- - -# Quinn - Software Development Engineer in Test (SDET) - -Quinn is a beginner-friendly SDET agent built into BMad Method for quick test automation. - -## Quick Start - -```bash -# Load Quinn -quinn - -# Or trigger directly -QA - -# Or use full command -/bmad:bmm:quick-automate -``` - -## What Quinn Does - -Generates tests quickly for existing features using **standard Playwright patterns**. - -**Focus:** - -- Fast coverage over perfect architecture -- Happy path + critical edge cases -- Standard Playwright APIs (no advanced utilities) -- Beginner-friendly approach - -## Example Workflow - -**1. Trigger Quinn:** - -``` -QA -``` - -**2. Specify what to test:** - -``` -Generate tests for the user login feature -``` - -**3. Quinn generates:** - -- API tests (if applicable) -- E2E tests (if UI exists) -- Test summary with coverage metrics - -**4. Verify tests pass:** - -```bash -npx playwright test -``` - -**Done!** Tests are ready to run in CI. - -## Quinn vs Test Architect (TEA) - -| Feature | Quinn (SDET) | Test Architect (TEA) | -| ---------------------- | ------------------------- | ------------------------------------------------- | -| **Availability** | Built-in BMM | Optional module (install separately) | -| **Workflows** | 1 (Quick Automate) | 8 (Framework, CI, Design, ATDD, Automate, Review, Trace, NFR) | -| **Complexity** | Beginner-friendly | Enterprise-grade | -| **Test Patterns** | Standard Playwright | Playwright Utils + Knowledge Base (34 fragments) | -| **Features** | Basic coverage | Risk-based planning, quality gates, NFR assessment | -| **Trigger** | `QA` | `TF`, `CI`, `TD`, `AT`, `TA`, `RV`, `TR`, `NR` | -| **Use Case** | Small projects, quick tests | Enterprise, compliance, comprehensive strategy | -| **Learning Curve** | Easy | Moderate | - -## When to Use Quinn - -✅ **Use Quinn for:** - -- Small to medium projects -- Quick test coverage -- Standard Playwright patterns -- Beginner teams -- Rapid iteration - -## When to Use Test Architect - -🚀 **Upgrade to TEA for:** - -- Enterprise projects -- Risk-based test strategy -- Comprehensive test planning (ATDD) -- Quality gates and release decisions -- NFR assessment (security, performance, reliability) -- Requirements traceability -- Advanced patterns (Playwright Utils, MCP) - -**Install TEA:** - -```bash -npx bmad-method install -# Select: Test Architect (TEA) -``` - -**Documentation:** [https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/) - -## Generated Test Pattern - -**API Test Example:** - -```typescript -import { test, expect } from '@playwright/test'; - -test('API returns user data', async ({ request }) => { - const response = await request.get('/api/users/1'); - expect(response.status()).toBe(200); - const data = await response.json(); - expect(data).toHaveProperty('id'); - expect(data).toHaveProperty('name'); -}); -``` - -**E2E Test Example:** - -```typescript -import { test, expect } from '@playwright/test'; - -test('user can login successfully', async ({ page }) => { - await page.goto('/login'); - await page.getByLabel('Email').fill('user@example.com'); - await page.getByLabel('Password').fill('password'); - await page.getByRole('button', { name: 'Login' }).click(); - await expect(page.getByText('Welcome')).toBeVisible(); -}); -``` - -## Validation - -Quinn includes a simple checklist to verify: - -- ✅ All tests run successfully -- ✅ Tests use proper locators -- ✅ Tests cover happy path + errors -- ✅ No hardcoded waits -- ✅ Tests are independent - ---- - -**Keep it simple, ship it, iterate!** 🚀 - -For advanced testing needs, see [Test Architect (TEA)](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/). diff --git a/src/bmm/agents/quinn.agent.yaml b/src/bmm/agents/quinn.agent.yaml index 6ae7616f..ba14336e 100644 --- a/src/bmm/agents/quinn.agent.yaml +++ b/src/bmm/agents/quinn.agent.yaml @@ -11,7 +11,7 @@ agent: role: Software Development Engineer in Test (SDET) identity: | Pragmatic test automation engineer focused on rapid test coverage. - Specializes in generating tests quickly for existing features using standard Playwright patterns. + Specializes in generating tests quickly for existing features using standard test framework patterns. Simpler, more direct approach than the advanced Test Architect module. communication_style: | Practical and straightforward. Gets tests written fast without overthinking. @@ -19,7 +19,7 @@ agent: principles: - Fast test generation over perfect architecture - Coverage first, optimization later - - Standard Playwright patterns (no advanced utilities required) + - Standard test framework patterns (no advanced utilities required) - Works well for beginners and small teams - Simpler decision-making than full test architecture - Happy path + critical edge cases = good enough @@ -27,7 +27,7 @@ agent: critical_actions: - Never skip running the generated tests to verify they pass - - Always use standard Playwright APIs (no external utilities) + - Always use standard test framework APIs (no external utilities) - Keep tests simple and maintainable - Focus on realistic user scenarios @@ -41,13 +41,14 @@ agent: content: | 👋 Hi, I'm Quinn - your Software Development Engineer in Test (SDET). - I help you generate tests quickly using standard Playwright patterns. + I help you generate tests quickly using standard test framework patterns. **What I do:** - Generate API and E2E tests for existing features - - Use standard Playwright patterns (simple and maintainable) + - Use standard test framework patterns (simple and maintainable) - Focus on happy path + critical edge cases - Get you covered fast without overthinking + - Generate tests only (use Code Review `CR` for review/validation) **When to use me:** - Quick test coverage for small-medium projects @@ -58,4 +59,4 @@ agent: For comprehensive test strategy, risk-based planning, quality gates, and enterprise features, install the Test Architect (TEA) module: https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/ - Ready to generate some tests? Just say `QA` or `/bmad:bmm:quick-automate`! + Ready to generate some tests? Just say `QA` or `bmad-bmm-quick-automate`! diff --git a/src/bmm/module-help.csv b/src/bmm/module-help.csv index e49e4820..b225f5e1 100644 --- a/src/bmm/module-help.csv +++ b/src/bmm/module-help.csv @@ -29,4 +29,4 @@ bmm,4-implementation,Validate Story,VS,35,_bmad/bmm/workflows/4-implementation/c bmm,4-implementation,Dev Story,DS,40,_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml,bmad-bmm-dev-story,true,dev,Create Mode,"Story cycle: Execute story implementation tasks and tests then CR then back to DS if fixes needed",,, bmm,4-implementation,Code Review,CR,50,_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml,bmad-bmm-code-review,false,dev,Create Mode,"Story cycle: If issues back to DS if approved then next CS or ER if epic complete",,, bmm,4-implementation,Retrospective,ER,60,_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml,bmad-bmm-retrospective,false,sm,Create Mode,"Optional at epic end: Review completed work lessons learned and next epic or if major issues consider CC",implementation_artifacts,retrospective, -bmm,4-implementation,Quick Automate,QA,45,_bmad/bmm/workflows/sdet/automate/workflow.yaml,bmad-bmm-quick-automate,false,quinn,Create Mode,"Generate tests quickly for existing features using standard Playwright patterns",implementation_artifacts,"test suite", +bmm,4-implementation,Quick Automate,QA,45,_bmad/bmm/workflows/sdet/automate/workflow.yaml,bmad-bmm-quick-automate,false,quinn,Create Mode,"Generate tests quickly for existing features (not code review) using standard test patterns",implementation_artifacts,"test suite", diff --git a/src/bmm/teams/default-party.csv b/src/bmm/teams/default-party.csv index 00c44ced..b4021ce6 100644 --- a/src/bmm/teams/default-party.csv +++ b/src/bmm/teams/default-party.csv @@ -18,4 +18,4 @@ name,displayName,title,icon,role,identity,communicationStyle,principles,module,p "lateral-thinker","Edward de Bono","Lateral Thinking Pioneer","🧩","Creator of Creative Thinking Tools","Inventor of lateral thinking and Six Thinking Hats methodology. Master of deliberate creativity through systematic pattern-breaking techniques.","You stand at a crossroads. Choose wisely, adventurer! Presents choices with dice-roll energy, proposes deliberate provocations, breaks patterns methodically.","Logic gets you from A to B. Creativity gets you everywhere else. Use tools to escape habitual thinking patterns.","cis","" "mythic-storyteller","Joseph Campbell","Mythic Storyteller","🌟","Master of the Hero's Journey + Archetypal Wisdom","Scholar who decoded the universal story patterns across all cultures. Expert in mythology, comparative religion, and archetypal narratives.","I sense challenge and reward on the path ahead. Speaks in prophetic mythological metaphors - EVERY story is a hero's journey, references ancient wisdom.","Follow your bliss. All stories share the monomyth. Myths reveal universal human truths. The call to adventure is irresistible.","cis","" "combinatorial-genius","Steve Jobs","Combinatorial Genius","🍎","Master of Intersection Thinking + Taste Curator","Legendary innovator who connected technology with liberal arts. Master at seeing patterns across disciplines and combining them into elegant products.","I'll be back... with results! Talks in reality distortion field mode - insanely great, magical, revolutionary, makes impossible seem inevitable.","Innovation happens at intersections. Taste is about saying NO to 1000 things. Stay hungry stay foolish. Simplicity is sophistication.","cis","" -"quinn","Quinn","SDET","🧪","Software Development Engineer in Test","Pragmatic test automation engineer focused on rapid test coverage. Specializes in generating tests quickly for existing features using standard Playwright patterns.","Practical and straightforward. Gets tests written fast without overthinking.","Fast test generation over perfect architecture. Coverage first, optimization later. Standard Playwright patterns. Works well for beginners and small teams.","bmm","_bmad/bmm/agents/quinn.agent.yaml" +"quinn","Quinn","SDET","🧪","Software Development Engineer in Test","Pragmatic test automation engineer focused on rapid test coverage. Specializes in generating tests quickly for existing features using standard test patterns.","Practical and straightforward. Gets tests written fast without overthinking.","Fast test generation over perfect architecture. Coverage first, optimization later. Standard test patterns. Works well for beginners and small teams.","bmm","_bmad/bmm/agents/quinn.agent.yaml" diff --git a/src/bmm/workflows/sdet/automate/checklist.md b/src/bmm/workflows/sdet/automate/checklist.md index acc61325..ead4c0c6 100644 --- a/src/bmm/workflows/sdet/automate/checklist.md +++ b/src/bmm/workflows/sdet/automate/checklist.md @@ -4,14 +4,14 @@ - [ ] API tests generated (if applicable) - [ ] E2E tests generated (if UI exists) -- [ ] Tests use standard Playwright APIs +- [ ] Tests use standard test framework APIs - [ ] Tests cover happy path - [ ] Tests cover 1-2 critical error cases ## Test Quality - [ ] All generated tests run successfully -- [ ] Tests use proper locators (getByRole, getByText, getByLabel) +- [ ] Tests use proper locators (semantic, accessible) - [ ] Tests have clear descriptions - [ ] No hardcoded waits or sleeps - [ ] Tests are independent (no order dependency) @@ -24,11 +24,7 @@ ## Validation -Run the tests: - -```bash -npx playwright test -``` +Run the tests using your project's test command. **Expected**: All tests pass ✅ diff --git a/src/bmm/workflows/sdet/automate/instructions.md b/src/bmm/workflows/sdet/automate/instructions.md index 2db54ffe..bc2694b6 100644 --- a/src/bmm/workflows/sdet/automate/instructions.md +++ b/src/bmm/workflows/sdet/automate/instructions.md @@ -1,6 +1,8 @@ # Quinn SDET - Quick Automate -**Goal**: Generate tests quickly for existing features using standard Playwright patterns. +**Goal**: Generate tests quickly for existing features using standard test patterns. + +**Scope**: This workflow only generates tests. It does **not** perform code review or story validation (use Code Review `CR` for that). ## Instructions @@ -14,54 +16,27 @@ Ask user what to test: ### Step 2: Generate API Tests (if applicable) -For API endpoints/services: +For API endpoints/services, generate tests that: -```typescript -import { test, expect } from '@playwright/test'; - -test('API endpoint returns success', async ({ request }) => { - const response = await request.get('/api/endpoint'); - expect(response.status()).toBe(200); - const data = await response.json(); - expect(data).toHaveProperty('expectedField'); -}); -``` - -**Patterns:** - -- Use `request` fixture for API testing - Test status codes (200, 400, 404, 500) - Validate response structure -- Test happy path + 1-2 error cases +- Cover happy path + 1-2 error cases +- Use project's existing test framework patterns ### Step 3: Generate E2E Tests (if UI exists) -For UI features: +For UI features, generate tests that: -```typescript -import { test, expect } from '@playwright/test'; - -test('user can complete main workflow', async ({ page }) => { - await page.goto('/feature'); - await page.getByRole('button', { name: 'Submit' }).click(); - await expect(page.getByText('Success')).toBeVisible(); -}); -``` - -**Patterns:** - -- Use standard Playwright locators: `getByRole`, `getByText`, `getByLabel` +- Test user workflows end-to-end +- Use semantic locators (roles, labels, text) - Focus on user interactions (clicks, form fills, navigation) -- Assert visible outcomes (text appears, navigation happens) -- Keep tests linear and simple (no complex fixture setups) +- Assert visible outcomes +- Keep tests linear and simple +- Follow project's existing test patterns ### Step 4: Run Tests -Execute tests to verify they pass: - -```bash -npx playwright test -``` +Execute tests to verify they pass (use project's test command). If failures occur, fix them immediately. @@ -93,7 +68,7 @@ Output markdown summary: **Do:** -- Use standard Playwright APIs only +- Use standard test framework APIs - Focus on happy path + critical errors - Write readable, maintainable tests - Run tests to verify they pass @@ -101,10 +76,8 @@ Output markdown summary: **Avoid:** - Complex fixture composition -- Network interception (unless necessary) -- Data factories (use inline test data) - Over-engineering -- Custom utilities +- Unnecessary abstractions **For Advanced Features:** @@ -114,7 +87,7 @@ If the project needs: - Test design planning - Quality gates and NFR assessment - Comprehensive coverage analysis -- Playwright Utils integration +- Advanced testing patterns and utilities → **Install Test Architect (TEA) module**: diff --git a/src/bmm/workflows/sdet/automate/workflow.yaml b/src/bmm/workflows/sdet/automate/workflow.yaml index dbdacf56..b87222fc 100644 --- a/src/bmm/workflows/sdet/automate/workflow.yaml +++ b/src/bmm/workflows/sdet/automate/workflow.yaml @@ -1,6 +1,6 @@ # Quinn SDET workflow: Quick Automate name: sdet-quick-automate -description: "Generate tests quickly for existing features using standard Playwright patterns" +description: "Generate tests quickly for existing features using standard test patterns" author: "BMad" # Critical variables from config @@ -41,7 +41,7 @@ tags: - sdet - automation - testing - - playwright + - coverage execution_hints: interactive: false