Testing

Comparing Level 1 and Level 2

Description

At Level 1, you're beginning to learn that testing is a key part of building reliable software. You may not write tests yet, or you rely heavily on others to tell you what kind of test is needed. Your primary focus is still on getting the feature or fix to work, but you're starting to understand the role of tests in making sure it stays working. This level is about awareness and exposure—seeing how and where testing fits into the workflow.

Description

At Level 2, you write basic tests without being asked. You understand that testing isn't separate from your work—it's part of how your work gets done. You begin to think about what could break and how to prove it won't. You may still need help choosing the right type of test or understanding edge cases, but you now include tests as part of most changes.

Key Behaviors

  • Manually tests code by clicking through the UI or checking console output
  • Runs the test suite but may not understand the failures
  • Relies on teammates to write or suggest tests
  • Starts to understand the difference between types of tests (unit, integration, etc.)
  • May copy existing tests with minor modifications

Key Behaviors

  • Writes unit or integration tests for the features they build
  • Thinks about happy and sad paths when implementing new code
  • Checks coverage reports or test results as part of daily workflow
  • Fixes broken tests they didn't write
  • Reads and reuses existing test patterns in the codebase

Common Struggles

  • Doesn't write tests unless explicitly asked
  • Doesn't know how to start writing a test from scratch
  • Unsure how to validate correctness beyond basic functionality
  • May not run the test suite regularly or interpret results accurately

Common Struggles

  • May write overly complex or brittle tests
  • Might miss key edge cases or failure conditions
  • May be unsure how to test UI interactions, async flows, or side effects
  • Can focus too much on testing implementation details over behavior

Success Indicators

  • Know how to run the tests and check that your code doesn't break them
  • Are aware of the team's expectations around testing
  • Ask for help when you're unsure how to test something
  • Manually validate your own work before pushing changes

Success Indicators

  • Write clear, passing tests for most of your changes
  • Proactively ask what needs to be tested (and what doesn't)
  • Catch regressions early through test failures
  • Fix flaky or failing tests when you encounter them

Mindset Shift

From:

"Testing is extra work."

To:

"Testing is how I make sure my code keeps working."

Mindset Shift

From:

"I write tests for my code."

To:

"I write tests that help the team move faster and safer."

Questions to Ask Yourself

  • What's the most important thing that could break here?
  • Is this tested elsewhere? Do I need to add something?
  • What would give me confidence this is working tomorrow?

Questions to Ask Yourself

  • Does this test actually verify the behavior we care about?
  • Would this test failure help us quickly debug a real issue?
  • Is this test helping reduce risk—or just adding noise?

Build These Habits

  • 1
    Run the test suite before and after changes
  • 2
    Start reading and understanding tests for features you work on
  • 3
    Try modifying existing tests to see how they work
  • 4
    Ask teammates to walk you through a test or test strategy

Build These Habits

  • 1
    Review others' tests to learn patterns and styles
  • 2
    Refactor tests to reduce duplication or improve clarity
  • 3
    Use test names and structure to explain intent
  • 4
    Delete or fix brittle, misleading, or unused tests

Seek Feedback

  • "What kind of test would you write for this?"
  • "Is there a simple way I could validate this with a test?"
  • "How do I know if this change needs a test?"

Seek Feedback

  • "Would this test help you if something broke here?"
  • "Are these tests overcomplicated or under-scoped?"
  • "Am I focusing on behavior over implementation?"

Signals You're Ready to Level Up

  • You run tests regularly and understand the results
  • You begin to write simple tests with guidance
  • You ask about test coverage or test plans

Signals You're Ready to Level Up

  • Your tests catch issues before others do
  • You simplify or stabilize flaky tests on your own
  • Others rely on your tests to understand behavior

Focus Summary

  • Catch your own bugs
  • Ask about coverage
  • Testing is part of how you earn trust

At Level 1, you're building the habits and curiosity that testing requires. You don't have to write tests perfectly yet—just begin seeing where they fit.

Focus Summary

  • Test to move fast
  • Test to stay safe
  • Your code is better because you test it

At Level 2, testing is part of your professional rhythm. You no longer think of it as extra work—it's just how you build resilient, trustworthy software.