Testing
Checking that code works, automatically and repeatably.
Backend Engineer track
Junior
Write correct code, ship small changes safely, ask good questions.
Core: start here
- API TestingCalling endpoints and checking status codes, bodies and side effects.
- Integration TestA test of several components working together.
- MockA test double that verifies how it was called.
- Regression TestA test ensuring a fixed bug doesn't come back.
- Test CoverageThe share of code executed by tests, and why 100% isn't the goal.
- Test Runner / Test FrameworkTools like pytest, JUnit, Jest or Vitest that find, run and report tests.
- Unit TestA fast test of one small piece of code in isolation.
11 more junior concepts
- Arrange, Act, AssertThe standard three-part structure of a test.
- Flaky TestA test that passes and fails without any code change.
- Functional TestingTesting that features do what the requirements say, from the outside.
- Manual / Exploratory TestingA human exploring the product to find what automation misses.
- Smoke TestA quick check that the most basic things work after a deploy.
- Software TestingChecking code behaves as intended, automatically and repeatably.
- StubA test double that returns canned answers.
- Test AssertionThe check that decides whether a test passes.
- Test Case and Test SuiteA single scenario being checked, and a group of them run together.
- Test FixtureSetup data or state that tests rely on.
- Test IsolationTests that don't depend on each other or on shared state.
Mid-level
Own a feature end to end without hand-holding.
Core: start here
- End-to-End TestA test of the whole system through its real interface.
- Test DoubleAny stand-in for a real dependency in tests.
- Test-Driven DevelopmentWriting a failing test first, then the code to pass it, then refactoring.
- Testing PyramidMany unit tests, fewer integration tests, few end-to-end tests.
15 more mid-level concepts
- Acceptance TestVerifying a feature meets the agreed requirements.
- Behavior-Driven DevelopmentSpecifying behavior as plain-language scenarios shared with non-developers.
- Deterministic TestsControlling time, randomness and network so tests always behave the same.
- FakeA working but simplified implementation, like an in-memory database.
- Given / When / ThenDescribing tests as context, action and expected outcome.
- Load TestingMeasuring behavior under expected traffic.
- Mock ServerA fake API that returns canned responses, for testing clients in isolation.
- Over-MockingMocking so much that tests check implementation instead of behavior.
- Performance TestingMeasuring speed and resource use; load, stress, soak and spike tests.
- Red, Green, RefactorThe three-step TDD cycle.
- Snapshot TestComparing output to a saved snapshot.
- SpyA test double that records calls to a real or fake function.
- Test Data Builder / FactoryHelpers that create valid test objects with sensible defaults.
- Test DatabasesUsing a real, isolated database in tests and resetting it between runs.
- TestcontainersSpinning up real databases and services in Docker for tests.
Senior
Own a system, its failure modes, and its trade-offs.
- Contract TestingVerifying that services agree on the API contract between them.
- FuzzingFeeding random inputs to find crashes and vulnerabilities.
- Mutation TestingChanging code on purpose to check that the tests notice.
- Property-Based TestingGenerating many inputs to check that properties always hold.
- Soak TestRunning under load for hours to find leaks and slow degradation.
- Stress TestingPushing beyond capacity to find the breaking point.
- Testing in ProductionValidating safely with real traffic using flags, canaries and monitoring.
Staff
Shape how many teams build, across systems.
Nothing here yet.
Principal
Set technical direction for the organization.
Nothing here yet.
Data Engineer track
Junior
Build and fix pipelines from clear specs; write correct SQL.
Core: start here
- API TestingCalling endpoints and checking status codes, bodies and side effects.
- Integration TestA test of several components working together.
- MockA test double that verifies how it was called.
- Regression TestA test ensuring a fixed bug doesn't come back.
- Test CoverageThe share of code executed by tests, and why 100% isn't the goal.
- Test Runner / Test FrameworkTools like pytest, JUnit, Jest or Vitest that find, run and report tests.
- Unit TestA fast test of one small piece of code in isolation.
11 more junior concepts
- Arrange, Act, AssertThe standard three-part structure of a test.
- Flaky TestA test that passes and fails without any code change.
- Functional TestingTesting that features do what the requirements say, from the outside.
- Manual / Exploratory TestingA human exploring the product to find what automation misses.
- Smoke TestA quick check that the most basic things work after a deploy.
- Software TestingChecking code behaves as intended, automatically and repeatably.
- StubA test double that returns canned answers.
- Test AssertionThe check that decides whether a test passes.
- Test Case and Test SuiteA single scenario being checked, and a group of them run together.
- Test FixtureSetup data or state that tests rely on.
- Test IsolationTests that don't depend on each other or on shared state.
Mid-level
Own pipelines and models end to end, including their quality.
- Acceptance TestVerifying a feature meets the agreed requirements.
- Behavior-Driven DevelopmentSpecifying behavior as plain-language scenarios shared with non-developers.
- Deterministic TestsControlling time, randomness and network so tests always behave the same.
- End-to-End TestA test of the whole system through its real interface.
- FakeA working but simplified implementation, like an in-memory database.
- Given / When / ThenDescribing tests as context, action and expected outcome.
- Load TestingMeasuring behavior under expected traffic.
- Mock ServerA fake API that returns canned responses, for testing clients in isolation.
- Over-MockingMocking so much that tests check implementation instead of behavior.
- Performance TestingMeasuring speed and resource use; load, stress, soak and spike tests.
- Red, Green, RefactorThe three-step TDD cycle.
- Snapshot TestComparing output to a saved snapshot.
- SpyA test double that records calls to a real or fake function.
- Test Data Builder / FactoryHelpers that create valid test objects with sensible defaults.
- Test DatabasesUsing a real, isolated database in tests and resetting it between runs.
- Test DoubleAny stand-in for a real dependency in tests.
- Test-Driven DevelopmentWriting a failing test first, then the code to pass it, then refactoring.
- TestcontainersSpinning up real databases and services in Docker for tests.
- Testing PyramidMany unit tests, fewer integration tests, few end-to-end tests.
Senior
Design the platform's storage, processing and modeling choices.
- Contract TestingVerifying that services agree on the API contract between them.
- FuzzingFeeding random inputs to find crashes and vulnerabilities.
- Mutation TestingChanging code on purpose to check that the tests notice.
- Property-Based TestingGenerating many inputs to check that properties always hold.
- Soak TestRunning under load for hours to find leaks and slow degradation.
- Stress TestingPushing beyond capacity to find the breaking point.
- Testing in ProductionValidating safely with real traffic using flags, canaries and monitoring.
Staff
Shape how the whole organization produces and uses data.
Nothing here yet.
Principal
Set data strategy and architecture across the company.
Nothing here yet.
Frontend Engineer track
Junior
Build UI that works, ship small changes safely, ask good questions.
Core: start here
- Component TestingTesting a UI component in isolation with user-like interactions.
- MockA test double that verifies how it was called.
- Test Runner / Test FrameworkTools like pytest, JUnit, Jest or Vitest that find, run and report tests.
- Testing Library PhilosophyTesting UI the way users use it, by role and text rather than internals.
- Unit TestA fast test of one small piece of code in isolation.
17 more junior concepts
- API TestingCalling endpoints and checking status codes, bodies and side effects.
- Arrange, Act, AssertThe standard three-part structure of a test.
- End-to-End TestA test of the whole system through its real interface.
- Flaky TestA test that passes and fails without any code change.
- Functional TestingTesting that features do what the requirements say, from the outside.
- Integration TestA test of several components working together.
- Manual / Exploratory TestingA human exploring the product to find what automation misses.
- Regression TestA test ensuring a fixed bug doesn't come back.
- Smoke TestA quick check that the most basic things work after a deploy.
- Snapshot TestComparing output to a saved snapshot.
- Software TestingChecking code behaves as intended, automatically and repeatably.
- StubA test double that returns canned answers.
- Test AssertionThe check that decides whether a test passes.
- Test Case and Test SuiteA single scenario being checked, and a group of them run together.
- Test CoverageThe share of code executed by tests, and why 100% isn't the goal.
- Test FixtureSetup data or state that tests rely on.
- Test IsolationTests that don't depend on each other or on shared state.
Mid-level
Own a feature end to end without hand-holding.
Core: start here
- Testing PyramidMany unit tests, fewer integration tests, few end-to-end tests.
- Visual Regression TestDetecting unintended UI changes by comparing screenshots.
14 more mid-level concepts
- Acceptance TestVerifying a feature meets the agreed requirements.
- Behavior-Driven DevelopmentSpecifying behavior as plain-language scenarios shared with non-developers.
- Deterministic TestsControlling time, randomness and network so tests always behave the same.
- FakeA working but simplified implementation, like an in-memory database.
- Given / When / ThenDescribing tests as context, action and expected outcome.
- Mock ServerA fake API that returns canned responses, for testing clients in isolation.
- Over-MockingMocking so much that tests check implementation instead of behavior.
- Performance TestingMeasuring speed and resource use; load, stress, soak and spike tests.
- Red, Green, RefactorThe three-step TDD cycle.
- SpyA test double that records calls to a real or fake function.
- Test Data Builder / FactoryHelpers that create valid test objects with sensible defaults.
- Test DoubleAny stand-in for a real dependency in tests.
- Test-Driven DevelopmentWriting a failing test first, then the code to pass it, then refactoring.
- Testing TrophyA frontend-oriented model that favors integration tests.
Senior
Own an app's architecture, performance, and failure modes.
Core: start here
- Contract TestingVerifying that services agree on the API contract between them.
7 more senior concepts
- FuzzingFeeding random inputs to find crashes and vulnerabilities.
- Load TestingMeasuring behavior under expected traffic.
- Mutation TestingChanging code on purpose to check that the tests notice.
- Property-Based TestingGenerating many inputs to check that properties always hold.
- Soak TestRunning under load for hours to find leaks and slow degradation.
- Stress TestingPushing beyond capacity to find the breaking point.
- Testing in ProductionValidating safely with real traffic using flags, canaries and monitoring.
Staff
Shape how many teams build, across apps.
Nothing here yet.
Principal
Set technical direction for the organization.
Nothing here yet.