Beginner → Intermediate5 phases · 13 topics · ~12 weeks

Manual → Automation

Five phases from tightening your testing fundamentals to running automated tests in CI. Pick your language at the top — JavaScript/TypeScript, Java, or Python — and the recommended courses adjust automatically. Around 12 weeks at a steady pace.

Language:

Showing JS/TS-focused tools and courses.

Phases
Phase 01

Strengthen your testing foundations

Even strong manual testers find gaps when they slow down to write code that implements a test plan. Tighten the basics first.

Core testing techniques

These are the test-design moves you'll automate. Get them right on paper before you write code.

You'll learn to

  • Apply equivalence partitioning and boundary-value analysis
  • Build a decision table for any business rule
  • Use pairwise testing to cut combinatorial blowup
  • Choose technique by risk, not habit

Defect lifecycle and risk

Bugs are the unit of work for QA. A precise lifecycle and clear triage save hours of meetings.

You'll learn to

  • Trace a bug through new → assigned → fixed → verified → closed
  • Triage by severity × priority
  • Write a bug report a developer can fix from
  • Pick where to test based on risk
Phase 02

Programming foundations

Automation tools generate stack traces, not test reports. You need to read code before you can debug tests.

Language fundamentals

Variables, control flow, functions, and data structures. Read a stack trace and trace it back to source.

You'll learn to

  • Variables, types, conditionals, loops, functions
  • Arrays/lists and objects/dicts
  • Read and parse JSON programmatically
  • Read a stack trace back to the source line

Type safety

Optional

Typed code catches whole categories of bugs at compile time. Critical for test framework code.

You'll learn to

  • Read and write type annotations
  • Interfaces for page objects
  • Generics for reusable utilities
  • Discriminated unions for test states

Version control with Git

Every team ships through Git. You need it to submit test code, review PRs, and unstick a broken pipeline.

You'll learn to

  • Clone, branch, commit, push
  • Open and review a pull request
  • Resolve a merge conflict in a test file
  • Understand `.gitignore` for test artefacts
Phase 03

Web UI automation

This is the deliverable. Everything before is enablement; this is the skill on the CV.

DOM, selectors, and stable locators

Stable locators reduce flakiness so the suite stays trustworthy as the UI changes.

You'll learn to

  • Inspect HTML using browser DevTools
  • Write CSS selectors and XPath expressions
  • Identify stable vs brittle locator strategies
  • Prefer test IDs and ARIA roles

Pick a runner and write your first spec

The fastest way to learn a runner is to write a real spec against a real page, then trace failures.

You'll learn to

  • Set up a project with TypeScript or your chosen language
  • Use auto-waits and web-first assertions
  • Write assertions with expect and matchers
  • Configure fixtures for setup and teardown
  • Debug failures with traces or time-travel

Page Object Model

Page objects centralise locators so a UI change requires fewer test updates.

You'll learn to

  • Separate page locators from test logic
  • Create a page class with action methods
  • Reuse page objects across multiple test files
  • Refactor an existing test to use POM
Phase 04

API testing

Testing at the API layer is faster and less flaky than UI. Most modern teams expect it from day one.

REST fundamentals

Before you automate, you need to send requests by hand and reason about responses.

You'll learn to

  • Send GET, POST, PUT, DELETE requests manually
  • Read and validate HTTP status codes and headers
  • Parse JSON request and response bodies
  • Authenticate with Bearer tokens and API keys

Code-driven API tests

Postman is great to explore; code is what runs in CI on every PR.

You'll learn to

  • Build a Postman collection with chained requests
  • Write Postman test scripts with assertions
  • Move from Postman to a code framework
  • Validate response schemas programmatically
  • Cover error paths and edge cases
Phase 05

CI/CD and reporting

Tests that don't run on every PR don't catch regressions — they catch them late.

Run tests on every change

CI runs your tests on every commit, so regressions get caught before they reach main.

You'll learn to

  • Write a GitHub Actions workflow that runs tests on push and PR
  • Manage secrets and environment variables in CI
  • Configure test jobs to run in parallel
  • Debug a red pipeline from logs

Reporting and flaky-test tracking

Clear dashboards make test results easy to share with engineering leads and stakeholders.

You'll learn to

  • Generate HTML test reports from your framework
  • Set up Allure reporting with historical trends
  • Identify and quarantine flaky tests
  • Track flaky-test rate over time

Containerised test environments

Optional

Docker lets the same image run on a laptop, in CI, and in production-like environments.

You'll learn to

  • Write a Dockerfile for your test container
  • Run tests inside a Docker container
  • Use docker-compose to spin up app + tests together
  • Set up Selenium Grid with Docker containers

What's next