Testing Fundamentals, Reframed for Automation · Lesson 5 of 5

Shift-Left, Shift-Right & Your 1-Page Test Strategy

The last piece is about timing: when on the delivery timeline your checks run. Two short phrases capture it, and then you'll pull everything in this module into a single one-page plan.

By Shahriyar · Updated

The idea, in one line

Catch bugs as early as you can, and watch for the ones only real users reveal. Moving checks earlier is shift-left; watching the live app is shift-right.

What lives on each side

They're partners, not rivals: left prevents defects, right observes the ones only reality reveals.

See it work

Here's what shift-left looks like in a real CI config — cheap checks first, run automatically on every pull request.

▸ try it
# .github/workflows/quality.yml -- shift-left checks on every PR
name: quality
on: [pull_request]
jobs:
  checks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: ruff check .          # static analysis (leftmost, cheapest)
      - run: pytest -m "unit"      # fast unit gate
      - run: pytest -m "service"   # narrow integration
      # e2e smoke + monitoring run after deploy, against prod (shift-right):
      #   canary release, synthetic checks, alerting on error rate

Read it top to bottom: the cheapest checks run first and block a bad merge; the live-app checks (in the comment) run later, once the code is out there.

Advanced — pull it all together in one page

Every topic in this module meets in one artifact: a test strategy. For a single feature, it says what you'll automate, at which pyramid layer (lesson 1), guided by risk (lesson 4), and where on the left-right timeline each check runs. Writing it is how you show you can think like an SDET, not just script like one.

Grounded in reputable shift-left / shift-right sources (Dynatrace, BrowserStack)

All lessons in Testing Fundamentals, Reframed for Automation

  1. The Test Pyramid & Quadrants — What to Automate First
  2. Boundary Values & Equivalence Partitioning as Automation Inputs
  3. Decision Tables & State Transitions
  4. Risk-Based Testing — Deciding What NOT to Automate
  5. Shift-Left, Shift-Right & Your 1-Page Test Strategy