Product & Technical
QA & Test Automation
Quality engineering is not clicking through an application looking for bugs. It is designing a strategy that catches the failures that matter, automating the repetitive parts, and giving a team the confidence to release without holding its breath.
Start here
Take any application you use and try to break it deliberately. Write down what you tried and what happened. That instinct is the foundation; the automation comes later.
Testing fundamentals
The thinking comes before the tooling. Automation without strategy produces a slow suite nobody trusts.
RequiredHow to think about testing
Testing everything is impossible. Deciding what to test is the actual skill.
How to think about testing
Testing everything is impossible. Deciding what to test is the actual skill.
What to learn
- Risk-based prioritisation
- Equivalence partitioning and boundary values
- Positive and negative cases
- The testing pyramid and its critics
- Exploratory testing as a discipline, not guesswork
Practice
Next: Writing it down clearly.
RequiredTest cases and bug reports
A bug report a developer cannot reproduce wastes everyone's time and gets closed.
Test cases and bug reports
A bug report a developer cannot reproduce wastes everyone's time and gets closed.
What to learn
- Clear reproduction steps
- Expected versus actual
- Severity versus priority
- Environment details
- Attaching evidence
Practice
Next: Programming, which is now non-negotiable.
Programming for testers
Manual-only QA roles are genuinely disappearing. This stage is what keeps this career viable.
RequiredA programming language
Every automation framework is a library in a language. There is no route around this one.
A programming language
Every automation framework is a library in a language. There is no route around this one.
What to learn
- Variables, control flow and functions
- Data structures
- Working with JSON
- Git
- Reading application code well enough to find the selector you need
Tools
- Python or JavaScript/TypeScript
Next: API testing, which is the highest-value place to start automating.
API testing
Start here rather than with the interface. API tests are faster, more stable and catch more.
RequiredTesting APIs
Most logic lives behind the API. Testing it there is quicker to write and far less brittle than through a browser.
Testing APIs
Most logic lives behind the API. Testing it there is quicker to write and far less brittle than through a browser.
What to learn
- HTTP methods and status codes
- Request and response validation
- Authentication in tests
- Schema validation
- Test data setup and teardown
- Testing error paths
Tools
- Postman or Bruno
- pytest or Jest
- A schema validator
Project
beginnerAn API test suite
An automated suite for a public or your own API, covering happy paths, error cases, authentication and schema validation, running in CI on every push.
- Your language
- A test runner
- GitHub Actions
Every push is checked automatically and you trust the result.
Next: UI automation.
UI automation
Valuable and expensive to maintain. Automate the few journeys that genuinely matter, not everything.
RequiredBrowser automation
Some things can only be verified through the interface a user actually touches.
Browser automation
Some things can only be verified through the interface a user actually touches.
What to learn
- Locator strategies that survive refactors
- Waiting properly instead of sleeping
- Page object patterns
- Test isolation and independent data
- Debugging a failure from CI
Tools
- Playwright
- Cypress
- Selenium where it is already in place
Practice
Next: Fighting flakiness.
RequiredReliability of the suite itself
A suite that fails randomly gets ignored, and an ignored suite is worse than no suite because it costs time and provides nothing.
Reliability of the suite itself
A suite that fails randomly gets ignored, and an ignored suite is worse than no suite because it costs time and provides nothing.
What to learn
- Diagnosing race conditions in tests
- Deterministic test data
- Parallel execution
- Quarantining rather than deleting
- Tracking flake rate as a metric
Project
intermediateAn end-to-end suite for critical journeys
Automate the three journeys that would lose the business money if broken. Run them on every deploy, in parallel, with screenshots on failure. Track the flake rate for a month.
- Playwright
- GitHub Actions
The suite is trusted enough that a red run stops a release.
Next: The specialist testing types.
Beyond functional testing
The kinds of testing that catch what functional tests never will.
RecommendedPerformance testing
Applications rarely fail at one user. They fail at four hundred, on launch day.
Performance testing
Applications rarely fail at one user. They fail at four hundred, on launch day.
What to learn
- Load, stress and soak testing
- Realistic scenarios
- Reading percentiles rather than averages
- Identifying the bottleneck
- Setting a performance budget
Tools
- k6
- JMeter
- Locust
Next: Accessibility.
RecommendedAccessibility testing
Increasingly a legal requirement, and automated tools only catch about a third of real issues.
Accessibility testing
Increasingly a legal requirement, and automated tools only catch about a third of real issues.
What to learn
- Automated accessibility scanning
- Keyboard-only testing
- Screen reader basics
- Contrast checking
- WCAG in outline
Tools
- axe
- Lighthouse
- A screen reader
Next: Strategy and ownership.
AdvancedQuality strategy and shift-left
The senior version of this job is preventing defects, not finding them. That means being in the room earlier.
Quality strategy and shift-left
The senior version of this job is preventing defects, not finding them. That means being in the room earlier.
What to learn
- Test strategy documents
- Reviewing requirements for testability
- Defining release criteria
- Quality metrics that are not test counts
- Coaching developers to test their own work
Project
advancedA quality strategy
Write a testing strategy for a real product: what is tested at which level, what is deliberately not automated and why, the release criteria, and how quality is measured.
- A document
You can justify a testing approach to an engineering manager, including what you chose not to test.
Where this leads
You do not have to pick one now. These are the directions this path opens up once you are working.
Continue your journey
The paths closest to this one. Skills overlap more than the job titles suggest.
Software Engineering
Write code other people can read, run and rely on.
ViewDevOps Engineering
Automate the path from a commit to something running in production.
ViewFrontend Development
Build the part of the product people actually touch.
ViewBackend Development
Build the systems that store, protect and serve everyone's data.
ViewYou do not have to do this alone
Our programs are free, taught live, and built around the same progression. Join one and work through it alongside other people.
