8 min read • Guide 728 of 877
QA Integration with GitScrum
Quality isn't a phase - it's embedded in every step. GitScrum helps teams integrate QA throughout the development lifecycle with testing workflows, bug tracking, and quality metrics that catch issues early.
QA in Agile
Shift-Left Testing
SHIFT-LEFT TESTING APPROACH:
┌─────────────────────────────────────────────────────────────┐
│ │
│ TRADITIONAL (Right-heavy): │
│ │
│ [Requirements]→[Design]→[Development]→[Testing]→[Release] │
│ ▲ │
│ │ │
│ All testing │
│ happens here │
│ (expensive bugs) │
│ │
│ SHIFT-LEFT (Continuous): │
│ │
│ [Requirements]→[Design]→[Development]→[Testing]→[Release] │
│ ▲ ▲ ▲ ▲ │
│ │ │ │ │ │
│ Review Review Testing Final │
│ & test designs during validation │
│ criteria early dev │
│ │
│ BENEFITS: │
│ • Bugs found earlier = cheaper to fix │
│ • Quality built in, not tested in │
│ • Faster release cycles │
│ • Less rework │
│ │
│ COST OF BUG BY PHASE: │
│ Requirements: $1 │
│ Design: $5 │
│ Development: $10 │
│ Testing: $20 │
│ Production: $100+ │
└─────────────────────────────────────────────────────────────┘
QA Role in Sprint
QA THROUGHOUT THE SPRINT:
┌─────────────────────────────────────────────────────────────┐
│ │
│ SPRINT PLANNING: │
│ • QA reviews upcoming stories │
│ • Clarify acceptance criteria │
│ • Identify testing complexity │
│ • Estimate testing effort │
│ • Flag potential risks │
│ │
│ EARLY SPRINT: │
│ • Write test cases for sprint items │
│ • Review designs for testability │
│ • Set up test data/environments │
│ • Automation planning │
│ │
│ MID SPRINT: │
│ • Test features as they complete │
│ • Report bugs immediately │
│ • Verify bug fixes │
│ • Exploratory testing │
│ • Update test cases as needed │
│ │
│ LATE SPRINT: │
│ • Regression testing │
│ • Integration testing │
│ • Performance spot checks │
│ • Sign-off on completed items │
│ │
│ SPRINT END: │
│ • Release validation │
│ • Demo participation │
│ • Retro input on quality │
│ │
│ KEY: No "testing phase" - testing is continuous │
└─────────────────────────────────────────────────────────────┘
Workflow Integration
Story Lifecycle
QA IN STORY WORKFLOW:
┌─────────────────────────────────────────────────────────────┐
│ │
│ BACKLOG → DEV → CODE REVIEW → QA → DONE │
│ │
│ BACKLOG: │
│ ☐ Acceptance criteria defined │
│ ☐ QA reviewed and agreed │
│ ☐ Test approach identified │
│ │
│ IN DEVELOPMENT: │
│ ☐ Developer runs unit tests │
│ ☐ Basic happy path verified │
│ ☐ PR includes test coverage │
│ │
│ CODE REVIEW: │
│ ☐ Tests reviewed with code │
│ ☐ Coverage requirements met │
│ ☐ All checks passing │
│ │
│ QA TESTING: │
│ ☐ Acceptance criteria verified │
│ ☐ Edge cases tested │
│ ☐ Regression checked │
│ ☐ Cross-browser if applicable │
│ ☐ QA approval given │
│ │
│ DONE: │
│ ☐ All criteria met │
│ ☐ No open bugs │
│ ☐ Documentation updated │
│ ☐ Ready for release │
│ │
│ BLOCKED PATH: │
│ If QA finds issues → Back to Development │
│ Must be fixed before Done │
└─────────────────────────────────────────────────────────────┘
Bug Workflow
BUG TRACKING WORKFLOW:
┌─────────────────────────────────────────────────────────────┐
│ │
│ BUG FOUND → TRIAGE → DEV → VERIFY → CLOSED │
│ │
│ BUG REPORT FORMAT: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ TITLE: [Area] Clear description of issue ││
│ │ ││
│ │ SEVERITY: Critical/High/Medium/Low ││
│ │ ENVIRONMENT: Production/Staging/Dev ││
│ │ BROWSER/DEVICE: Chrome 120, macOS ││
│ │ ││
│ │ STEPS TO REPRODUCE: ││
│ │ 1. Go to checkout page ││
│ │ 2. Add item to cart ││
│ │ 3. Click "Apply coupon" ││
│ │ ││
│ │ EXPECTED: Discount applied to total ││
│ │ ACTUAL: Error message "Invalid coupon" ││
│ │ ││
│ │ SCREENSHOT: [attached] ││
│ │ CONSOLE ERRORS: [attached] ││
│ │ RELATED STORY: #123 ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ SEVERITY DEFINITIONS: │
│ Critical: System down, data loss, security issue │
│ High: Major feature broken, no workaround │
│ Medium: Feature impaired, workaround exists │
│ Low: Minor issue, cosmetic, edge case │
│ │
│ SLA BY SEVERITY: │
│ Critical: Fix immediately, same day │
│ High: Fix within sprint │
│ Medium: Fix within 2 sprints │
│ Low: Backlog, fix when convenient │
└─────────────────────────────────────────────────────────────┘
Testing Practices
Test Types
TEST PYRAMID:
┌─────────────────────────────────────────────────────────────┐
│ │
│ /\ │
│ / \ │
│ / E2E \ Slow, expensive, few │
│ /──────\ │
│ / \ │
│ / Integration\ Medium speed, more │
│ /──────────────\ │
│ / \ │
│ / Unit Tests \ Fast, cheap, many │
│ /────────────────────\ │
│ │
│ UNIT TESTS (70-80%): │
│ • Fast to run │
│ • Test individual components │
│ • Written by developers │
│ • Run on every commit │
│ │
│ INTEGRATION TESTS (15-20%): │
│ • Test component interactions │
│ • API testing │
│ • Database integration │
│ • Run on PR/merge │
│ │
│ E2E TESTS (5-10%): │
│ • Test complete user flows │
│ • Browser/UI testing │
│ • Slow, run less frequently │
│ • Critical paths only │
│ │
│ PLUS: │
│ • Exploratory testing (manual, QA-driven) │
│ • Performance testing (periodic) │
│ • Security testing (periodic) │
└─────────────────────────────────────────────────────────────┘
Acceptance Testing
ACCEPTANCE CRITERIA TESTING:
┌─────────────────────────────────────────────────────────────┐
│ │
│ STORY: User can apply discount coupon │
│ │
│ ACCEPTANCE CRITERIA: │
│ │
│ AC1: Valid coupon reduces total │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ GIVEN I have items in cart totaling $100 ││
│ │ WHEN I enter valid coupon "SAVE20" ││
│ │ THEN total shows $80 ││
│ │ AND "20% discount applied" message displays ││
│ │ ││
│ │ TEST RESULT: ✅ PASS ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ AC2: Invalid coupon shows error │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ GIVEN I am on checkout ││
│ │ WHEN I enter invalid coupon "EXPIRED" ││
│ │ THEN error "Coupon not valid" displays ││
│ │ AND total remains unchanged ││
│ │ ││
│ │ TEST RESULT: ✅ PASS ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ AC3: One coupon per order │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ GIVEN coupon already applied ││
│ │ WHEN I try to add another coupon ││
│ │ THEN "Only one coupon per order" displays ││
│ │ ││
│ │ TEST RESULT: ❌ FAIL ││
│ │ BUG: Second coupon replaces first without message ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ STORY STATUS: Blocked - Bug found in AC3 │
└─────────────────────────────────────────────────────────────┘
Quality Metrics
Tracking Quality
QUALITY METRICS DASHBOARD:
┌─────────────────────────────────────────────────────────────┐
│ Sprint 24 Quality Report │
├─────────────────────────────────────────────────────────────┤
│ │
│ BUG METRICS: │
│ ├── Bugs found in sprint: 12 │
│ ├── Bugs fixed in sprint: 15 │
│ ├── Bug escape rate: 2 (reached production) │
│ └── Critical bugs: 0 ✅ │
│ │
│ BUG TREND: │
│ Bugs│ │
│ 20│ ▄ │
│ 15│ █ ▄ │
│ 10│ █ █ ▄ ▄ │
│ 5│ █ █ █ ▄ █ ▄ │
│ 0└───────────────── │
│ S19 S20 S21 S22 S23 S24 │
│ │
│ TEST COVERAGE: │
│ ├── Unit test coverage: 78% (+3%) │
│ ├── Integration tests: 45 passing │
│ ├── E2E tests: 12 passing, 1 flaky │
│ └── New code coverage: 85% │
│ │
│ CYCLE TIME: │
│ ├── Avg time from Ready to QA: 2.5 days │
│ ├── Avg time in QA: 0.8 days │
│ └── Avg bug fix time: 4 hours │
│ │
│ RECOMMENDATIONS: │
│ • Investigate flaky E2E test │
│ • Unit coverage below 80% target │
│ • Bug escape rate improved from last sprint │
└─────────────────────────────────────────────────────────────┘