level 00 / shift-left

Shift Left Testing

Move testing earlier in the SDLC, understand QA vs QE, and learn why automation engineers own quality differently than traditional testers.

What “shift left” means

On a traditional SDLC timeline (requirements → design → development → testing → deployment), testing sat at the right end. Shift left means pulling quality activities earlier — requirements review, design review, unit tests written before or alongside code, test automation in CI before merge.

Traditional:  [ Requirements ][ Design ][ Dev ][ TEST ][ Deploy ]
Shift left:   [ Req+Test ][ Design+Test ][ Dev+Test ][ Test ][ Deploy ]

STLC — Software Test Life Cycle

The test lifecycle mirrors the development lifecycle:

  1. Requirements analysis — identify what to test, clarify ambiguities before code is written
  2. Test planning — scope, schedule, resources, risk assessment
  3. Test design — write test cases, design test data, define acceptance criteria
  4. Test environment setup — databases, browsers, test accounts, CI pipelines
  5. Test execution — run manual and automated tests, log defects
  6. Test closure — metrics, retrospective, lessons learned, archive artefacts

Automation engineers spend most time on steps 1–4. Executing and reporting is automated.

QA vs QE — different jobs, different mindsets

Quality Assurance (QA)Quality Engineering (QE)
FocusProcess and standardsEngineering and automation
OutputTest plans, defect reportsTest code, CI pipelines, frameworks
ApproachValidate after the factPrevent defects through design
ToolsJIRA, Zephyr, TestRailPlaywright, TypeScript, GitHub Actions
Mindset”Does it meet requirements?""How do we build it right the first time?”

Modern automation roles are QE: embedded in engineering teams, writing code alongside developers, owning CI reliability as a first-class concern.

Key insight: The boundary between QA and QE is dissolving in high-performing teams. If your job title says “QA” but you write TypeScript and maintain CI pipelines, you are doing QE work.

Three shift-left practices to adopt immediately

1. Write test IDs into markup from the start

// Developer adds data-testid at design time
<button data-testid="checkout-btn">Checkout</button>

// Automation engineer can write the locator before the feature ships
await page.getByTestId('checkout-btn').click();

2. Define acceptance criteria as test cases

Before a ticket is developed, the automation engineer writes the test cases that define “done”. The developer writes code until those tests pass.

3. Run the full suite in CI before merge

No PR merges with a red suite. This makes the automation engineer a first-class quality gate rather than an afterthought.

Interview questions