Modern QA2026Quadrant 2: Functional and Story Tests (Business-Facing, Supporting the Team) — tiles
Log inJoin
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