Skip to main content
Test Automation

Software Testing Tutorial with Examples.

Software testing tutorial from first principles: the test pyramid, test doubles, coverage that means something, and flake control.

Beginner

Start here — no prior experience needed

1 lesson

Intermediate

For developers with core concepts down

4 lessons

Advanced

Production-grade patterns for experienced engineers

3 lessons

Also part of Software Testing

Taught in other topics. Each link opens the lesson in its home topic.

12 lessons
python intermediate
5 min read

Write and run pytest tests: assertions, exceptions, fixtures, parametrize, mocks, coverage, async tests and unittest, with real pytest output for each.

java intermediate
5 min read

Learn JUnit 5 and Mockito by running real tests: lifecycle, assertions, assertAll, parameterized tests, stubbing, verify and ArgumentCaptor.

javascript intermediate
5 min read

Learn how to write reliable unit tests in JavaScript using Jest and Vitest — from basic assertions to mocking, async tests, and code coverage.

go intermediate
5 min read

Go testing run for real: a failing test, table-driven subtests, t.Error vs t.Fatal, httptest, examples, fuzzing that finds a bug, benchmarks, and coverage.

rust beginner
5 min read

Write unit tests, integration tests, and doc tests in Rust using cargo test.

scala intermediate
5 min read

Run tests with one command, read a failure diff that actually helps, test futures without blocking, and let property-based testing find edge cases.

api-testing advanced
5 min read

Turn an OpenAPI document into the same jsonschema validation from earlier in this track, catch a proposed API change that breaks the contract, and wire the suite into GitHub Actions with a JUnit report.

playwright beginner
5 min read

Install Playwright, write an end-to-end test against a real page, and read the runner's output — including what a failing assertion actually tells you.

selenium intermediate
5 min read

Fix StaleElementReferenceException properly, find the five causes of tests that only fail in CI, and use retries as a signal rather than a cure.

data-engineering intermediate
5 min read

Write tests for a transform function, then let a 'harmless' refactor slip through code review and see the test suite catch it instead of production.

terraform advanced
5 min read

Terraform's test runner checks real plans and applies from .tftest.hcl files. It catches a bug in the test, a deleted validation, and mocks a provider.

typescript intermediate
5 min read

Test TypeScript with Vitest: typed fixtures, vi.mock and vi.mocked, spies, fake timers, expectTypeOf type tests, and Jest with ts-jest — with real runs.