everything software testing

All your QA resources
One practical hub.

Tools, roadmaps, cheat sheets, checklists, interview prep, code snippets, utilities, AI workflows and many more, testers reach for every day - curated, searchable and copy-paste ready — organised around the work QA actually do.

>search "flaky test"⌘K

// take a look inside

The whole library, one click away

Tools, ready-to-paste snippets, cheat sheets, and AI guides — flip through what's inside. Click a tab to drive it yourself.

// 200+ tools across 37 categories

🌲
Cypress
Fast, reliable E2E testing.
// e2e · freemium
🎭
Playwright
True cross-browser automation.
// e2e · open-source
🥒
Cucumber
BDD with Gherkin scenarios.
// bdd · open-source
📮
Postman
GUI-first API testing.
// api · freemium
k6
Script-driven load testing.
// perf · freemium
🔍
Selenium
The original WebDriver standard.
// e2e · open-source

// snippets · configs · patterns · templates

Snippet
Custom login command
Session-cached cy.login helper.
// cypress · typescript
Config
playwright.config.ts
Multi-browser starter config.
// playwright · typescript
Template
Bug report
RCA fields, env snapshot.
// reporting · markdown
Pattern
Page Object Model
Typed, chainable POM.
// cypress · page-objects
Snippet
Reuse login state
storageState across test files.
// playwright · typescript
Config
cypress.config.ts
TypeScript starter config.
// cypress · typescript

// cypress & playwright commands

cypress.md
// navigate & interact
cy.visit('/login')
cy.get('[data-cy=email]')
  .type('a@b.com')
cy.contains('Submit')
  .click()
 
// assert
cy.url().should('include', '/dash')
playwright.md
// navigate & fill
await page.goto('/login')
await page.fill('[data-cy=email]',
  'a@b.com')
await page.click('text=Submit')
 
// assert
await expect(page)
  .toHaveURL('/dash')

// ai for test documentation

AI test plans8m
Acceptance criteria → test plan.
// guide · prompt included
Req → test cases9m
User story to cases, no hallucinations.
// guide · template
Traceability8m
Map requirements to coverage.
// guide · prompt included
AI bug reports7m
Broken → reproducible defect report.
// guide · template
Synthetic test data11m
Realistic data without touching PII.
// guide · prompt included
Edge case discovery9m
Boundary values manual design misses.
// guide · prompt included

// by the numbers

200+
Tools
30+
AI guides
90+
Cheat sheets
30+
Courses
7
Roadmaps
900+
Interview Qs
300+
Glossary
60+
Utilities

// how it works

Okay — where do I start?

qa.codes is organised the way testers actually work: search, follow a path, then apply.

01

Search

Find tools, terms, checklists, prompts, utilities and guides from one command-style search.

02

Follow a path

Use roadmaps, courses and practical projects to build skills in the right sequence.

03

Apply at work

Drop templates, checklists, snippets and utilities straight into real QA tasks and releases.

// featured this week

Hand-picked this week

A few things worth your time right now — a course, a fresh post, a tool comparison and a copy-ready template.

Comprehensive course on API testing concepts, independent of any specific tool. Covers REST, GraphQL, authentication, contract testing, performance, and testing strategy. The theory course that underpins all API testing tool courses.

// course

JUnit, TestNG, Pytest, Mocha, Vitest, Jest, NUnit, xUnit.net.

// comparison

Steps to reproduce, expected vs actual behaviour, environment details, and severity. For Jira, Linear, GitHub Issues.

// template · copy

// career roadmaps

Pick a path, not a pile of links

Seven guided routes — each a sequence of phases, topics, and the tools that matter for that role.

Beginner → Intermediate

Manual → Automation

You write test cases by hand today. You want to write test code by next quarter. This is the route.

// 13 topics · ~12 weeks
Intermediate

API testing specialist

Most production bugs ship through APIs. Become the person who catches them before the UI does.

// 10 topics · ~10 weeks
Intermediate → Advanced

Performance testing engineer

Slow is the new broken. Learn to find the bottleneck before users do.

// 10 topics · ~10 weeks
Intermediate

AI-augmented QA engineer

Use AI to ship more tests with less typing. Practical workflows for testing engineers, not buzzwords.

// 11 topics · ~8 weeks
Advanced

SDET / test infrastructure

Stop writing tests. Start building the platform that lets your team write better tests, faster.

// 12 topics · ~10 weeks
Intermediate

Mobile testing

Mobile apps fail differently from web. Different tools, different devices, different bugs. Become the tester who catches mobile-specific issues before users do — across iOS and Android, native and cross-platform.

// 12 topics · ~10 weeks

// ai

AI for testing,
without the hype

Practical workflows for using AI in QA — test generation, synthetic data, traceability — each with honest tradeoffs and a prompt you can copy.

Explore 30+ AI guides →

// learn

Start learning

Structured courses — from your first test case to production-grade automation frameworks.

Intermediate

Cypress with TypeScript

The most comprehensive Cypress course for QA engineers. Start from zero and progress to advanced patterns — custom commands, API mocking, visual testing, CI/CD integration, and building a production-ready test framework. All examples in TypeScript.

// 42 lessons
Intermediate

Playwright with TypeScript

Master Playwright from installation to advanced patterns. Covers multi-browser testing, API testing, visual comparisons, fixtures, parallel execution, and building enterprise-grade test frameworks. The most comprehensive Playwright course for QA engineers. All in TypeScript.

// 42 lessons
Intermediate

API Testing Masterclass

Comprehensive course on API testing concepts, independent of any specific tool. Covers REST, GraphQL, authentication, contract testing, performance, and testing strategy. The theory course that underpins all API testing tool courses.

// 35 lessons
Intermediate

Performance Testing with K6

Master modern performance testing with K6 — the developer-friendly load testing tool. Write tests in JavaScript, integrate with CI/CD, and analyse results in Grafana. Covers load, stress, spike, and soak testing patterns.

// 29 lessons
Intermediate

Claude Code for QA

Use Claude Code as your AI pair-programmer for test automation. Learn to install, configure, and master Claude Code for writing tests, refactoring frameworks, debugging failures, and automating QA workflows from the terminal.

// 21 lessons
Beginner

Python for QA

Learn Python fundamentals through a QA lens. Python is widely used for API testing, scripting, and data processing in testing. This course teaches you the Python you need to write Playwright tests, API automation scripts, and testing utilities.

// 31 lessons
Advanced

Test Automation Frameworks

Learn how to design and build production-grade test automation frameworks. Covers framework architecture, design patterns (POM, Factory, Builder, Singleton), driver management, configuration, reporting, and how to choose between linear, modular, data-driven, keyword-driven, and hybrid frameworks.

// 27 lessons

// interview prep

Walk in ready

Real questions by topic and seniority — each with a short answer, a model answer, and the pitfall to avoid.

Mid-level// cypress

Explain Cypress retry-ability in your own words.

Most Cypress commands and assertions automatically re-run for a few seconds until they pass or time out, so you rarely need explicit waits. Only the last query plus its trailing assertions retry; .then and .click fence it off.

// what interviewers look for

A mental model of the command queue, awareness that only the last query retries, and an explanation for why .then and .click break the retry. Bonus for knowing the default timeout is 4 seconds.

Test design, exploratory testing, bug reporting, test cases, regression strategy.

// 150+ questions

Custom commands, sessions, intercept, retry-ability, component testing.

// 200+ questions

Locators, fixtures, storage state, parallel execution, trace viewer.

// 170+ questions

Postman, REST Assured, schema validation, contract testing, auth.

// 190+ questions
🗄️

SQL

SELECT, JOINs, GROUP BY, subqueries, validating DB state, finding duplicates/orphans.

// 70+ questions

JMeter, k6, load patterns, percentiles, bottleneck diagnosis.

// 120+ questions

How would you test X? Structured approaches to the open-ended design questions interviewers ask.

// 60+ questions

STAR-format examples, conflict, prioritisation, leadership scenarios.

// 120+ questions

// practice

Practice on real QA work

Hands-on apps, project samples and assignments — practise scenarios, hunt seeded bugs and build real automation, not just read about it.

UI end-to-end frameworks — architecture, fixtures, CI/CD and reporting.

// Playwright · Cypress · Selenium

Automated API suites — CRUD, schema, auth and contract-style checks.

// REST Assured · Karate

Test case design, exploratory charters, bug reporting and test plans.

// Test cases · Exploratory · Bug reports

Hands-on API testing with Postman and Bruno — collections, assertions, scripting.

// Postman · Bruno

Load and performance testing — scenarios, thresholds, reports.

// k6 · JMeter

// from the blog

Deep dives, opinions, comparisons & more

// Comparisons

Manual vs automated testing: where the line actually falls

Not rivals fighting over the same budget — different jobs. Automation guards what you already know; manual testing judges what you don't. Draw the line wrong and you get a brittle suite and the important bugs still escaping.

6 min read

// Subscribe

Stay in the loop.

One email when something good ships — new tools, cheat sheets, roadmaps, posts and many more. No spam.

// 200+ tools · 30+ AI guides · 260+ terms · all free

// Support

Keep qa.codes free.

qa.codes is a free, ad-free side project. A small tip helps keep it running and growing.

  • Keeps every tool, sheet & guide free
  • Funds new cheat sheets and roadmaps
  • Sharpens the hands-on practice apps
  • No account, no paywall — ever
  • 100% optional, always appreciated
Buy me a coffee