Understanding the Codebase and Product

4 min read

The fastest way to feel useful at a new QA job is to understand the product and the codebase well enough to ask good questions and find good bugs. There is no shortcut — but there is a sensible order to learn things in, and most new hires take a less efficient path simply because nobody told them which route to take first.

A learning path that works

A high-leverage onboarding sequence:

1. The product as a customer. Before reading any code or test case, use the product like a real user. Sign up, complete the onboarding flow, click everything, fill out every form, configure every setting. Take notes on:

  • Things that confused you.
  • Things that surprised you (good or bad).
  • Workflows you'd guess customers complete daily.
  • Workflows that felt unfinished.

Your "fresh user" perspective is gold. Capture it before it fades.

2. The product documentation. Help articles, FAQs, customer-facing docs. These tell you what the product promises — which is your benchmark for what should work.

3. The architecture overview. Most teams have a one-pager or diagram of the major services and how they connect. If they don't, ask. Knowing that "billing talks to the payment provider, which talks to Stripe" makes future bug investigation hugely easier.

4. The release notes. Read the last 6 months. You'll absorb the team's vocabulary, the major recent features, and the kinds of bugs that have been shipping. Patterns emerge fast.

5. The bug tracker. Browse 3 months of closed bugs. Look for repeat offenders — features that keep breaking, areas that produce the most reports, kinds of bugs that show up over and over. These tell you where to focus your testing.

6. The test suite. Read the existing automated tests. They're the executable spec of "what we said works." Areas with thin coverage are where you'll add value first.

7. The codebase structure. You don't need to read every file — just understand the layout. Where does the frontend live? The API? The database migrations? The CI configuration? The shape of the repo tells you how the team thinks.

8. The CI pipeline. Trace what runs on every PR. What linters? What unit tests? What integration tests? Where does it deploy? This is the spine of how changes flow into production.

Key flows are the unit of understanding

Learning a product feature-by-feature is slow. Learning it flow-by-flow is fast. A "flow" is a complete user journey from start to finish: sign-up, checkout, password reset, onboarding, billing upgrade. Each flow:

  • Touches multiple features.
  • Involves multiple services.
  • Has its own happy path, error cases, and edge cases.
  • Has business value attached to it.

Pick the three or four most important flows on your team's product. Memorise them. Be able to walk through each one in your head, end-to-end, including what happens at each step on the backend. This skill makes you instantly useful in every triage meeting and every test plan review.

What to ignore (for now)

In your first month, you can safely ignore:

  • The full database schema (learn the few tables you'll actually touch).
  • Internal admin tools you'll rarely use.
  • Legacy features marked for deprecation.
  • The build system (unless you're an SDET).
  • Microservice X if it has nothing to do with the area you're testing.

A common new-hire failure mode is trying to understand everything at once. The codebase is usually too big for that. Be deliberate about scope.

Reading code as a tester

You don't need to write code to test effectively, but reading code helps a lot. Three habits worth developing:

  • Read tests before reading implementation. Tests describe what the code is supposed to do. They're often clearer than the code itself.
  • Read API contracts before reading endpoints. OpenAPI, GraphQL schema, protobuf definitions — these tell you the shape of the world without you having to dig through controllers.
  • Read commit messages, not just code. A commit message often explains why a change was made. The code only shows what changed.

Even basic code-reading skills will multiply your effectiveness as a tester.

Building your mental map

A useful exercise after a couple of weeks: try to draw the system from memory. Major services, key flows, data stores, third-party integrations. Compare your sketch to whatever official diagram exists (or doesn't). The gaps are your learning agenda.

You'll be surprised how quickly the map fills in. Within a month, most new QA engineers can describe their team's system at a level that matches a senior engineer's grasp of the product surface — because QA touches more of the surface than anyone else on the team.

What you should walk away with

Learn the product before the code; learn flows before features; learn the bug tracker before the codebase. Be ruthlessly selective about what you ignore. The next lesson covers the relationship that makes all of this work: how you actually collaborate with developers.

// tip to track lessons you complete and pick up where you left off across devices.