GitScrum / Docs
All Best Practices

QA Integration Best Practices | Shift-Left Testing Workflow

Integrate QA throughout sprints with shift-left testing, bug tracking workflows, and quality metrics. GitScrum embeds testing in story lifecycle for fewer bugs.

8 min read

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               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Related Solutions