38 / 66 · 20 Agile & Scrum · Agile Test Quadrants← prev⊞ allnext →☰ Read as one page
6.3Quadrant 2: Functional and Story Tests (Business-Facing, Supporting the Team)
What It Includes
- Functional tests (verifying acceptance criteria)
- Story tests (automating user stories)
- Prototypes and mockups for verification
- BDD scenarios (Given/When/Then)
Characteristics
- Mostly automated: Automated where possible, with some manual verification
- Run on PRs and merges: Gate code before it reaches main
- QA-driven: Written primarily by QA engineers
- Business language: Tests express business rules, not technical details
QA's Role in Q2
- Write and maintain functional test suites
- Translate acceptance criteria into automated tests
- Verify that features meet business requirements
- Collaborate with PO to define expected behavior
Example
// Functional test (Q2) -- written in business terms
test('user can complete checkout with a valid coupon', async ({ page }) => {
await page.goto('/products');
await page.click('[data-testid="add-to-cart-premium-plan"]');
await page.click('[data-testid="go-to-checkout"]');
await page.fill('[data-testid="coupon-input"]', 'SAVE20');
await page.click('[data-testid="apply-coupon"]');
await expect(page.locator('[data-testid="discount"]')).toHaveText('-$20.00');
await page.click('[data-testid="complete-purchase"]');
await expect(page).toHaveURL('/order-confirmation');
});
# BDD scenario (Q2)
Scenario: Apply valid coupon at checkout
Given I have a product in my cart
When I enter coupon code "SAVE20"
And I click "Apply"
Then I should see a $20 discount
And the total should reflect the discount