📚 Improve Production QA documentation strategy
✨ Documentation Strategy: - Keep BMAD core documentation unchanged (easier upstream sync) - Add Production QA as enhancement, not replacement - Create comprehensive Production QA Guide in docs/ - Simplify main README with clear choice between approaches 📖 New Documentation: - docs/production-qa-guide.md - Complete guide with 11 sections - Covers agents, workflows, tools, quality gates, CI/CD - Migration guide from traditional to Production QA - Troubleshooting and best practices 🎯 Key Improvements: - Position as 'enhancement' not 'replacement' - Clear comparison table (Traditional vs Production) - Tool-agnostic approach emphasized - Parallel workflow benefits highlighted This approach preserves BMAD integrity while showcasing Production QA value 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
af9dd06f16
commit
861e959d56
34
README.md
34
README.md
|
|
@ -4,9 +4,12 @@
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](https://nodejs.org)
|
[](https://nodejs.org)
|
||||||
[](https://discord.gg/gk8jAdXWmj)
|
[](https://discord.gg/gk8jAdXWmj)
|
||||||
|
[](expansion-packs/bmad-production-qa/README.md)
|
||||||
|
|
||||||
Foundations in Agentic Agile Driven Development, known as the Breakthrough Method of Agile AI-Driven Development, yet so much more. Transform any domain with specialized AI expertise: software development, entertainment, creative writing, business strategy to personal wellness just to name a few.
|
Foundations in Agentic Agile Driven Development, known as the Breakthrough Method of Agile AI-Driven Development, yet so much more. Transform any domain with specialized AI expertise: software development, entertainment, creative writing, business strategy to personal wellness just to name a few.
|
||||||
|
|
||||||
|
> 🧪 **This fork includes the Production QA Expansion Pack** - Enterprise-grade testing automation with specialized QA agents, automated quality gates, and comprehensive test coverage. Works alongside traditional BMAD workflow. [Learn more →](#-production-qa--testing-enhancement)
|
||||||
|
|
||||||
**[Subscribe to BMadCode on YouTube](https://www.youtube.com/@BMadCode?sub_confirmation=1)**
|
**[Subscribe to BMadCode on YouTube](https://www.youtube.com/@BMadCode?sub_confirmation=1)**
|
||||||
|
|
||||||
**[Join our Discord Community](https://discord.gg/gk8jAdXWmj)** - A growing community for AI enthusiasts! Get help, share ideas, explore AI agents & frameworks, collaborate on tech projects, enjoy hobbies, and help each other succeed. Whether you're stuck on BMad, building your own agents, or just want to chat about the latest in AI - we're here for you! **Some mobile and VPN may have issue joining the discord, this is a discord issue - if the invite does not work, try from your own internet or another network, or non-VPN.**
|
**[Join our Discord Community](https://discord.gg/gk8jAdXWmj)** - A growing community for AI enthusiasts! Get help, share ideas, explore AI agents & frameworks, collaborate on tech projects, enjoy hobbies, and help each other succeed. Whether you're stuck on BMad, building your own agents, or just want to chat about the latest in AI - we're here for you! **Some mobile and VPN may have issue joining the discord, this is a discord issue - if the invite does not work, try from your own internet or another network, or non-VPN.**
|
||||||
|
|
@ -38,9 +41,14 @@ This three-phase approach eliminates **planning inconsistency**, **context loss*
|
||||||
|
|
||||||
> ⚠️ **These diagrams explain 90% of BMad Method Agentic Agile flow confusion** - Understanding the PRD+Architecture creation and the SM/Dev/QA workflow and how agents pass notes through story files is essential - and also explains why this is NOT taskmaster or just a simple task runner!
|
> ⚠️ **These diagrams explain 90% of BMad Method Agentic Agile flow confusion** - Understanding the PRD+Architecture creation and the SM/Dev/QA workflow and how agents pass notes through story files is essential - and also explains why this is NOT taskmaster or just a simple task runner!
|
||||||
|
|
||||||
|
#### 🆕 Choose Your Development Approach:
|
||||||
|
- **Traditional BMAD** - Rapid prototyping with advisory QA (original workflow)
|
||||||
|
- **Production QA Enhanced** - Enterprise-grade with automated testing ([see enhanced workflow](docs/user-guide.md#enhanced-production-qa-development-cycle-bmad-production-qa))
|
||||||
|
|
||||||
### What would you like to do?
|
### What would you like to do?
|
||||||
|
|
||||||
- **[Install and Build software with Full Stack Agile AI Team](#quick-start)** → Quick Start Instruction
|
- **[Install and Build software with Full Stack Agile AI Team](#quick-start)** → Quick Start Instruction
|
||||||
|
- 🧪 **[Use Production QA Testing](docs/production-qa-guide.md)** → Enterprise-grade testing automation
|
||||||
- **[Learn how to use BMad](docs/user-guide.md)** → Complete user guide and walkthrough
|
- **[Learn how to use BMad](docs/user-guide.md)** → Complete user guide and walkthrough
|
||||||
- **[See available AI agents](/bmad-core/agents)** → Specialized roles for your team
|
- **[See available AI agents](/bmad-core/agents)** → Specialized roles for your team
|
||||||
- **[Explore non-technical uses](#-beyond-software-development---expansion-packs)** → Creative writing, business, wellness, education
|
- **[Explore non-technical uses](#-beyond-software-development---expansion-packs)** → Creative writing, business, wellness, education
|
||||||
|
|
@ -108,24 +116,22 @@ git clone https://github.com/bmadcode/bmad-method.git
|
||||||
npm run install:bmad # build and install all to a destination folder
|
npm run install:bmad # build and install all to a destination folder
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🧪 Production QA & Testing (NEW!)
|
## 🧪 Production QA Enhancement
|
||||||
|
|
||||||
**Enterprise-grade QA integration with comprehensive testing automation:**
|
This fork includes **Production QA** - enterprise-grade testing automation that works alongside traditional BMAD.
|
||||||
|
|
||||||
### Specialized QA Agents
|
### Quick Overview
|
||||||
- **QA Test Engineer** - E2E, API, integration testing specialist
|
- ✅ **4 Specialized QA Agents** - Test Engineer, Performance, Security, Test Lead
|
||||||
- **Performance Engineer** - Load, stress, capacity testing expert
|
- ✅ **Automated Testing** - E2E, API, Performance, Security tests
|
||||||
- **Security Engineer** - Vulnerability scanning, OWASP compliance
|
- ✅ **Quality Gates** - Automated pass/fail criteria
|
||||||
- **QA Test Lead** - Strategic coordination and quality oversight
|
- ✅ **Tool Agnostic** - Works with any testing framework
|
||||||
|
- ✅ **Parallel Workflow** - QA creates tests while Dev implements
|
||||||
|
|
||||||
### Quality Features
|
### Choose Your Approach
|
||||||
- ✅ **Automated Quality Gates** - 80%+ coverage, security clean, performance validated
|
- **Traditional BMAD** - Rapid prototyping with advisory QA
|
||||||
- ✅ **Tool-Agnostic Testing** - Supports Playwright, Cypress, k6, OWASP ZAP, and more
|
- **Production QA** - Enterprise applications with automated testing
|
||||||
- ✅ **Parallel Development** - QA creates tests while Dev implements features
|
|
||||||
- ✅ **CI/CD Integration** - Automated testing pipelines with GitHub Actions
|
|
||||||
- ✅ **Comprehensive Coverage** - E2E, API, Performance, Security, Visual, Accessibility
|
|
||||||
|
|
||||||
**[📖 See Production QA Guide](expansion-packs/bmad-production-qa/README.md)**
|
**[📖 Complete Production QA Guide](docs/production-qa-guide.md)** - Everything you need to know about Production QA
|
||||||
|
|
||||||
## 🌟 Beyond Software Development - Expansion Packs
|
## 🌟 Beyond Software Development - Expansion Packs
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,572 @@
|
||||||
|
# Production QA Enhancement Guide
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The Production QA Enhancement transforms BMAD from a development framework into a complete enterprise software delivery platform with comprehensive testing automation. This guide explains everything you need to know about using Production QA alongside traditional BMAD.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
1. [Quick Start](#quick-start)
|
||||||
|
2. [Architecture Overview](#architecture-overview)
|
||||||
|
3. [Production QA Agents](#production-qa-agents)
|
||||||
|
4. [Traditional vs Production QA](#traditional-vs-production-qa)
|
||||||
|
5. [Workflow Comparison](#workflow-comparison)
|
||||||
|
6. [Implementation Guide](#implementation-guide)
|
||||||
|
7. [Testing Framework Support](#testing-framework-support)
|
||||||
|
8. [Quality Gates](#quality-gates)
|
||||||
|
9. [CI/CD Integration](#cicd-integration)
|
||||||
|
10. [Best Practices](#best-practices)
|
||||||
|
11. [Troubleshooting](#troubleshooting)
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
Production QA is already integrated into this fork. No additional installation needed!
|
||||||
|
|
||||||
|
### Basic Usage
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Initialize testing infrastructure (one-time setup)
|
||||||
|
@qa-test-engineer
|
||||||
|
*setup-testing-framework
|
||||||
|
|
||||||
|
# 2. Create stories with integrated QA
|
||||||
|
@sm *draft # Stories now include test requirements automatically
|
||||||
|
|
||||||
|
# 3. Parallel development and testing
|
||||||
|
# Terminal 1:
|
||||||
|
@dev *implement docs/stories/1.1.story.md
|
||||||
|
|
||||||
|
# Terminal 2:
|
||||||
|
@qa-test-engineer *create-e2e-tests docs/stories/1.1.story.md
|
||||||
|
@qa-test-engineer *create-api-tests docs/stories/1.1.story.md
|
||||||
|
|
||||||
|
# 4. Execute tests and quality gates
|
||||||
|
@qa-test-engineer *execute-tests
|
||||||
|
@qa-test-lead *evaluate-quality-gates
|
||||||
|
```
|
||||||
|
|
||||||
|
## Architecture Overview
|
||||||
|
|
||||||
|
### How Production QA Integrates with BMAD
|
||||||
|
|
||||||
|
```
|
||||||
|
Traditional BMAD Core (Preserved)
|
||||||
|
├── Original Agents (SM, Dev, QA/Quinn, etc.)
|
||||||
|
├── Original Workflows
|
||||||
|
└── Original Tasks
|
||||||
|
|
||||||
|
Production QA Expansion Pack (Added)
|
||||||
|
├── Specialized QA Agents (4 new agents)
|
||||||
|
├── Enhanced Tasks (create-next-story-with-qa)
|
||||||
|
├── Test Automation Workflows
|
||||||
|
└── Quality Gate System
|
||||||
|
```
|
||||||
|
|
||||||
|
### Key Integration Points
|
||||||
|
|
||||||
|
1. **Story Creation Enhanced** - SM agent now uses `create-next-story-with-qa` task
|
||||||
|
2. **Parallel Workflows** - Dev and QA work simultaneously
|
||||||
|
3. **Quality Gates** - Automated pass/fail before production
|
||||||
|
4. **Tool Agnostic** - Works with any testing framework
|
||||||
|
|
||||||
|
## Production QA Agents
|
||||||
|
|
||||||
|
### 🧪 QA Test Engineer (Alex)
|
||||||
|
**Role**: Hands-on test automation specialist
|
||||||
|
|
||||||
|
**Capabilities**:
|
||||||
|
- Creates E2E test suites (Playwright, Cypress, Selenium)
|
||||||
|
- Develops API test collections (Bruno, Postman, REST Client)
|
||||||
|
- Implements integration tests
|
||||||
|
- Sets up testing frameworks
|
||||||
|
- Generates test data and fixtures
|
||||||
|
|
||||||
|
**Key Commands**:
|
||||||
|
```bash
|
||||||
|
*create-e2e-tests {story} # Generate E2E test suite
|
||||||
|
*create-api-tests {story} # Generate API test collection
|
||||||
|
*setup-testing-framework # Initialize testing infrastructure
|
||||||
|
*analyze-test-coverage # Review coverage metrics
|
||||||
|
```
|
||||||
|
|
||||||
|
### ⚡ Performance Engineer (Morgan)
|
||||||
|
**Role**: Performance and scalability testing expert
|
||||||
|
|
||||||
|
**Capabilities**:
|
||||||
|
- Creates load testing scenarios (k6, Artillery, JMeter)
|
||||||
|
- Implements stress and spike tests
|
||||||
|
- Establishes performance baselines
|
||||||
|
- Capacity planning and analysis
|
||||||
|
|
||||||
|
**Key Commands**:
|
||||||
|
```bash
|
||||||
|
*create-load-test {story} # Generate load test scenarios
|
||||||
|
*create-stress-test {story} # Create stress test scenarios
|
||||||
|
*analyze-performance-baseline # Establish performance baseline
|
||||||
|
*create-capacity-plan # Generate capacity analysis
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🔒 Security Engineer (Riley)
|
||||||
|
**Role**: Security testing and vulnerability assessment specialist
|
||||||
|
|
||||||
|
**Capabilities**:
|
||||||
|
- Comprehensive security scanning (OWASP ZAP)
|
||||||
|
- Vulnerability assessments
|
||||||
|
- OWASP Top 10 compliance validation
|
||||||
|
- Dependency security scanning (Snyk)
|
||||||
|
- Penetration testing scenarios
|
||||||
|
|
||||||
|
**Key Commands**:
|
||||||
|
```bash
|
||||||
|
*security-scan {story} # Perform security scan
|
||||||
|
*vulnerability-assessment # Conduct vulnerability assessment
|
||||||
|
*owasp-compliance-check # Validate OWASP compliance
|
||||||
|
*dependency-security-scan # Scan dependencies
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🎯 QA Test Lead (Jordan)
|
||||||
|
**Role**: Strategic QA coordination and oversight
|
||||||
|
|
||||||
|
**Capabilities**:
|
||||||
|
- Creates comprehensive test strategies
|
||||||
|
- Manages quality gates and criteria
|
||||||
|
- Coordinates all testing activities
|
||||||
|
- Generates quality reports and metrics
|
||||||
|
|
||||||
|
**Key Commands**:
|
||||||
|
```bash
|
||||||
|
*create-test-strategy # Generate test strategy
|
||||||
|
*create-quality-gates # Define quality gates
|
||||||
|
*coordinate-testing # Manage testing activities
|
||||||
|
*create-test-reports # Generate quality reports
|
||||||
|
```
|
||||||
|
|
||||||
|
## Traditional vs Production QA
|
||||||
|
|
||||||
|
### Comparison Table
|
||||||
|
|
||||||
|
| Aspect | Traditional BMAD (Quinn) | Production QA Enhancement |
|
||||||
|
|--------|-------------------------|--------------------------|
|
||||||
|
| **Purpose** | Advisory & Guidance | Implementation & Automation |
|
||||||
|
| **Test Creation** | Recommends what to test | Creates actual test code |
|
||||||
|
| **Quality Gates** | Advisory gates | Automated pass/fail gates |
|
||||||
|
| **Workflow** | Sequential (Dev → QA) | Parallel (Dev + QA) |
|
||||||
|
| **Tools** | Tool recommendations | Tool implementation |
|
||||||
|
| **Coverage** | Strategic coverage advice | Measurable coverage metrics |
|
||||||
|
| **Best For** | MVPs, Prototypes | Production, Enterprise |
|
||||||
|
|
||||||
|
### When to Use Each
|
||||||
|
|
||||||
|
**Use Traditional BMAD When**:
|
||||||
|
- Rapid prototyping
|
||||||
|
- MVP development
|
||||||
|
- Small teams
|
||||||
|
- Learning projects
|
||||||
|
- Advisory guidance sufficient
|
||||||
|
|
||||||
|
**Use Production QA When**:
|
||||||
|
- Enterprise applications
|
||||||
|
- Regulated industries
|
||||||
|
- High quality requirements
|
||||||
|
- Team has dedicated QA
|
||||||
|
- Automated testing needed
|
||||||
|
|
||||||
|
## Workflow Comparison
|
||||||
|
|
||||||
|
### Traditional BMAD Workflow
|
||||||
|
```mermaid
|
||||||
|
graph LR
|
||||||
|
A[SM: Create Story] --> B[Dev: Implement]
|
||||||
|
B --> C[QA: Review & Advise]
|
||||||
|
C --> D[Dev: Address Feedback]
|
||||||
|
D --> E[Done]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Production QA Enhanced Workflow
|
||||||
|
```mermaid
|
||||||
|
graph TD
|
||||||
|
A[SM: Create Story with Test Requirements] --> B{Parallel Execution}
|
||||||
|
B --> C[Dev: Implement Feature]
|
||||||
|
B --> D[QA: Create Test Suites]
|
||||||
|
C --> E[Merge Point]
|
||||||
|
D --> E
|
||||||
|
E --> F[Execute All Tests]
|
||||||
|
F --> G{Quality Gates}
|
||||||
|
G -->|Pass| H[Production Ready]
|
||||||
|
G -->|Fail| I[Fix Issues]
|
||||||
|
I --> F
|
||||||
|
```
|
||||||
|
|
||||||
|
## Implementation Guide
|
||||||
|
|
||||||
|
### Step 1: Project Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Install BMAD with Production QA (already done in this fork)
|
||||||
|
git clone https://github.com/papuman/BMAD-METHOD.git
|
||||||
|
|
||||||
|
# 2. Initialize your project
|
||||||
|
cd your-project
|
||||||
|
npx bmad-method install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Configure Testing Strategy
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Activate QA Test Lead
|
||||||
|
@qa-test-lead
|
||||||
|
|
||||||
|
# Create comprehensive test strategy
|
||||||
|
*create-test-strategy
|
||||||
|
|
||||||
|
# This generates:
|
||||||
|
# - docs/test-strategy.md
|
||||||
|
# - Quality gate definitions
|
||||||
|
# - Testing approach per epic
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 3: Setup Testing Infrastructure
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Activate QA Test Engineer
|
||||||
|
@qa-test-engineer
|
||||||
|
|
||||||
|
# Initialize testing framework
|
||||||
|
*setup-testing-framework
|
||||||
|
|
||||||
|
# You'll be asked to choose:
|
||||||
|
# - E2E Framework (Playwright, Cypress, etc.)
|
||||||
|
# - API Testing Tool (Bruno, Postman, etc.)
|
||||||
|
# - Performance Tool (k6, Artillery, etc.)
|
||||||
|
# - Security Scanner (OWASP ZAP, Snyk, etc.)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 4: Enhanced Story Creation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Stories now include test requirements automatically
|
||||||
|
@sm *draft
|
||||||
|
|
||||||
|
# Generated story includes:
|
||||||
|
# - Standard story elements
|
||||||
|
# - E2E test scenarios
|
||||||
|
# - API test requirements
|
||||||
|
# - Performance criteria
|
||||||
|
# - Security considerations
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5: Parallel Development
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Development track
|
||||||
|
@dev *implement docs/stories/1.1.story.md
|
||||||
|
|
||||||
|
# Testing track (simultaneously)
|
||||||
|
@qa-test-engineer *create-e2e-tests docs/stories/1.1.story.md
|
||||||
|
@qa-performance-engineer *create-load-test docs/stories/1.1.story.md
|
||||||
|
@qa-security-engineer *security-scan docs/stories/1.1.story.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing Framework Support
|
||||||
|
|
||||||
|
### E2E Testing Frameworks
|
||||||
|
|
||||||
|
**Playwright** (Recommended)
|
||||||
|
```javascript
|
||||||
|
// Generated test example
|
||||||
|
test('User Login Flow', async ({ page }) => {
|
||||||
|
await page.goto('/login');
|
||||||
|
await page.fill('[data-testid="email"]', 'user@example.com');
|
||||||
|
await page.fill('[data-testid="password"]', 'password');
|
||||||
|
await page.click('[data-testid="submit"]');
|
||||||
|
await expect(page).toHaveURL('/dashboard');
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
**Cypress**
|
||||||
|
```javascript
|
||||||
|
// Generated test example
|
||||||
|
describe('User Login Flow', () => {
|
||||||
|
it('should login successfully', () => {
|
||||||
|
cy.visit('/login');
|
||||||
|
cy.get('[data-testid="email"]').type('user@example.com');
|
||||||
|
cy.get('[data-testid="password"]').type('password');
|
||||||
|
cy.get('[data-testid="submit"]').click();
|
||||||
|
cy.url().should('include', '/dashboard');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
### API Testing Tools
|
||||||
|
|
||||||
|
**Bruno** (Git-friendly)
|
||||||
|
```yaml
|
||||||
|
# Generated collection
|
||||||
|
name: User API Tests
|
||||||
|
requests:
|
||||||
|
- name: Login
|
||||||
|
method: POST
|
||||||
|
url: {{baseUrl}}/api/auth/login
|
||||||
|
body:
|
||||||
|
email: user@example.com
|
||||||
|
password: password
|
||||||
|
tests:
|
||||||
|
- status: 200
|
||||||
|
- body.token: exists
|
||||||
|
```
|
||||||
|
|
||||||
|
### Performance Testing
|
||||||
|
|
||||||
|
**k6** (JavaScript-based)
|
||||||
|
```javascript
|
||||||
|
// Generated load test
|
||||||
|
import http from 'k6/http';
|
||||||
|
import { check } from 'k6';
|
||||||
|
|
||||||
|
export const options = {
|
||||||
|
stages: [
|
||||||
|
{ duration: '2m', target: 100 },
|
||||||
|
{ duration: '5m', target: 100 },
|
||||||
|
{ duration: '2m', target: 0 },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function() {
|
||||||
|
const res = http.get('https://api.example.com/');
|
||||||
|
check(res, { 'status is 200': (r) => r.status === 200 });
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Quality Gates
|
||||||
|
|
||||||
|
### Automated Quality Gate Criteria
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
quality_gates:
|
||||||
|
unit_tests:
|
||||||
|
coverage: ">= 80%"
|
||||||
|
passing: "100%"
|
||||||
|
|
||||||
|
e2e_tests:
|
||||||
|
passing: "100%"
|
||||||
|
critical_paths: "100% coverage"
|
||||||
|
|
||||||
|
api_tests:
|
||||||
|
passing: "100%"
|
||||||
|
response_time: "< 2s"
|
||||||
|
|
||||||
|
performance:
|
||||||
|
response_time_p95: "< 3s"
|
||||||
|
error_rate: "< 1%"
|
||||||
|
concurrent_users: ">= 100"
|
||||||
|
|
||||||
|
security:
|
||||||
|
critical_vulnerabilities: 0
|
||||||
|
high_vulnerabilities: "< 3"
|
||||||
|
owasp_compliance: "pass"
|
||||||
|
|
||||||
|
accessibility:
|
||||||
|
wcag_level: "AA"
|
||||||
|
lighthouse_score: ">= 90"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Quality Gate Workflow
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph TD
|
||||||
|
A[Tests Execute] --> B{Unit Tests}
|
||||||
|
B -->|Pass| C{E2E Tests}
|
||||||
|
B -->|Fail| X[Gate Failed]
|
||||||
|
C -->|Pass| D{API Tests}
|
||||||
|
C -->|Fail| X
|
||||||
|
D -->|Pass| E{Performance}
|
||||||
|
D -->|Fail| X
|
||||||
|
E -->|Pass| F{Security}
|
||||||
|
E -->|Fail| X
|
||||||
|
F -->|Pass| G[All Gates Passed]
|
||||||
|
F -->|Fail| X
|
||||||
|
G --> H[Deploy to Production]
|
||||||
|
X --> I[Fix Issues]
|
||||||
|
I --> A
|
||||||
|
```
|
||||||
|
|
||||||
|
## CI/CD Integration
|
||||||
|
|
||||||
|
### GitHub Actions Workflow
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# .github/workflows/production-qa.yml
|
||||||
|
name: Production QA Pipeline
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '20'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Run unit tests
|
||||||
|
run: npm run test:unit
|
||||||
|
|
||||||
|
- name: Run E2E tests
|
||||||
|
run: npm run test:e2e
|
||||||
|
|
||||||
|
- name: Run API tests
|
||||||
|
run: npm run test:api
|
||||||
|
|
||||||
|
- name: Run security scan
|
||||||
|
run: npm run test:security
|
||||||
|
|
||||||
|
- name: Evaluate quality gates
|
||||||
|
run: npm run quality-gates
|
||||||
|
|
||||||
|
- name: Upload test reports
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: test-reports
|
||||||
|
path: test-reports/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### 1. Story Creation
|
||||||
|
- Always use `@sm *draft` for QA-integrated stories
|
||||||
|
- Review test requirements before development starts
|
||||||
|
- Ensure acceptance criteria are testable
|
||||||
|
|
||||||
|
### 2. Test Development
|
||||||
|
- Create tests in parallel with feature development
|
||||||
|
- Start with happy path scenarios
|
||||||
|
- Add edge cases and error handling
|
||||||
|
- Keep test data separate from test logic
|
||||||
|
|
||||||
|
### 3. Quality Management
|
||||||
|
- Run tests locally before committing
|
||||||
|
- Fix failing tests immediately
|
||||||
|
- Maintain coverage above thresholds
|
||||||
|
- Review performance impacts regularly
|
||||||
|
|
||||||
|
### 4. Tool Selection
|
||||||
|
- Choose tools your team knows
|
||||||
|
- Prioritize maintainability over features
|
||||||
|
- Use consistent patterns across test types
|
||||||
|
- Document tool decisions
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Common Issues and Solutions
|
||||||
|
|
||||||
|
**Issue: Tests not generating**
|
||||||
|
```bash
|
||||||
|
# Solution 1: Ensure story file exists
|
||||||
|
ls docs/stories/
|
||||||
|
|
||||||
|
# Solution 2: Check expansion pack is loaded
|
||||||
|
ls expansion-packs/bmad-production-qa/
|
||||||
|
|
||||||
|
# Solution 3: Verify agent can access story
|
||||||
|
@qa-test-engineer
|
||||||
|
*create-e2e-tests docs/stories/1.1.story.md
|
||||||
|
```
|
||||||
|
|
||||||
|
**Issue: Quality gates failing**
|
||||||
|
```bash
|
||||||
|
# Check test results
|
||||||
|
cat test-reports/quality-gate-report.md
|
||||||
|
|
||||||
|
# Review specific failures
|
||||||
|
npm run test:e2e -- --verbose
|
||||||
|
|
||||||
|
# Check coverage
|
||||||
|
npm run test:coverage
|
||||||
|
```
|
||||||
|
|
||||||
|
**Issue: Framework not recognized**
|
||||||
|
```bash
|
||||||
|
# Reinitialize framework
|
||||||
|
@qa-test-engineer
|
||||||
|
*setup-testing-framework
|
||||||
|
|
||||||
|
# Manually install if needed
|
||||||
|
npm install --save-dev playwright
|
||||||
|
```
|
||||||
|
|
||||||
|
## Advanced Topics
|
||||||
|
|
||||||
|
### Custom Quality Gates
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// custom-gates.js
|
||||||
|
module.exports = {
|
||||||
|
customGates: {
|
||||||
|
performance: {
|
||||||
|
ttfb: '<500ms',
|
||||||
|
fcp: '<1s',
|
||||||
|
lcp: '<2.5s'
|
||||||
|
},
|
||||||
|
bundle: {
|
||||||
|
size: '<500kb',
|
||||||
|
gzip: '<150kb'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### Test Data Management
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// test-data/users.js
|
||||||
|
export const testUsers = {
|
||||||
|
admin: {
|
||||||
|
email: 'admin@test.com',
|
||||||
|
password: process.env.TEST_ADMIN_PASSWORD
|
||||||
|
},
|
||||||
|
user: {
|
||||||
|
email: 'user@test.com',
|
||||||
|
password: process.env.TEST_USER_PASSWORD
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parallel Test Execution
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Run tests in parallel
|
||||||
|
npm run test:e2e -- --workers=4
|
||||||
|
|
||||||
|
# Run specific test suites in parallel
|
||||||
|
npm run test:e2e:auth &
|
||||||
|
npm run test:e2e:dashboard &
|
||||||
|
npm run test:e2e:api &
|
||||||
|
wait
|
||||||
|
```
|
||||||
|
|
||||||
|
## Migration Guide
|
||||||
|
|
||||||
|
### From Traditional BMAD to Production QA
|
||||||
|
|
||||||
|
1. **Keep existing workflow** - Traditional BMAD still works
|
||||||
|
2. **Add testing gradually** - Start with one story
|
||||||
|
3. **Choose tools wisely** - Pick what team knows
|
||||||
|
4. **Train team** - Share this guide
|
||||||
|
5. **Monitor metrics** - Track quality improvements
|
||||||
|
|
||||||
|
## Support and Resources
|
||||||
|
|
||||||
|
- **Expansion Pack Documentation**: [README](../expansion-packs/bmad-production-qa/README.md)
|
||||||
|
- **BMAD Core Documentation**: [User Guide](user-guide.md)
|
||||||
|
- **GitHub Issues**: Report bugs or request features
|
||||||
|
- **Community Discord**: Get help from other users
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Production QA Enhancement - Enterprise-grade testing for BMAD Method*
|
||||||
Loading…
Reference in New Issue