Bird
Raised Fist0
Testing Fundamentalstesting~5 mins

Test-driven development (TDD) concept in Testing Fundamentals - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is Test-driven development (TDD)?
TDD is a software development process where you write tests before writing the actual code. You first write a failing test, then write code to pass the test, and finally refactor the code.
Click to reveal answer
beginner
What are the three main steps in the TDD cycle?
The three steps are: 1) Write a failing test (Red), 2) Write code to pass the test (Green), 3) Refactor the code to improve it (Refactor).
Click to reveal answer
beginner
Why do we write tests before code in TDD?
Writing tests first helps clarify what the code should do, ensures the code meets requirements, and prevents writing unnecessary code.
Click to reveal answer
beginner
What does it mean when a test is 'failing' in TDD?
A failing test means the code does not yet do what the test expects. This is the starting point in TDD to guide writing new code.
Click to reveal answer
intermediate
How does TDD help improve software quality?
TDD ensures code is tested continuously, catches bugs early, and encourages simple, clear code design.
Click to reveal answer
What is the first step in Test-driven development?
AWrite a failing test
BWrite the full code
CRefactor the code
DRun the application
What does the 'Green' step in TDD mean?
ADelete old tests
BWrite a failing test
CRefactor the code
DWrite code to pass the test
Why is refactoring important in TDD?
ATo add new features
BTo improve code without changing behavior
CTo remove tests
DTo write documentation
Which of these is NOT a benefit of TDD?
AHelps catch bugs early
BEnsures code meets requirements
CIncreases code complexity
DEncourages simple design
In TDD, what should you do if a test passes without writing new code?
AWrite a new failing test
BRefactor the code
CDelete the test
DIgnore it
Explain the Test-driven development (TDD) cycle and why each step is important.
Think about the Red-Green-Refactor steps.
You got /4 concepts.
    Describe how TDD can improve software quality and developer confidence.
    Consider how testing first affects the whole development process.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main idea behind Test-driven development (TDD)?
      easy
      A. Write tests only for completed features
      B. Write code first, then write tests after
      C. Write tests before writing the actual code
      D. Write tests only for bugs found in production

      Solution

      1. Step 1: Understand TDD process

        TDD means writing tests before the actual code to guide development.
      2. Step 2: Compare options with TDD definition

        Only Write tests before writing the actual code correctly states writing tests before code.
      3. Final Answer:

        Write tests before writing the actual code -> Option C
      4. Quick Check:

        TDD = Write tests first [OK]
      Hint: Remember: Tests come first in TDD [OK]
      Common Mistakes:
      • Thinking code is written before tests
      • Believing tests are optional in TDD
      • Confusing TDD with writing tests after coding
      2. Which of the following is the correct order of steps in the TDD cycle?
      easy
      A. Write test, write code, refactor
      B. Refactor, write test, write code
      C. Write code, write test, refactor
      D. Write code, refactor, write test

      Solution

      1. Step 1: Recall the Red-Green-Refactor cycle

        The TDD cycle is: write a failing test (Red), write code to pass test (Green), then refactor.
      2. Step 2: Match cycle to options

        Write test, write code, refactor matches the correct order: write test, write code, refactor.
      3. Final Answer:

        Write test, write code, refactor -> Option A
      4. Quick Check:

        TDD cycle = Test, Code, Refactor [OK]
      Hint: Think: Red (test), Green (code), Refactor [OK]
      Common Mistakes:
      • Writing code before tests
      • Refactoring before writing code
      • Mixing up the order of steps
      3. Consider this TDD workflow:
      1. Write a test that fails
      2. Write code to pass the test
      3. Refactor the code
      4. Repeat for next feature

      What will happen if you skip step 1 and write code first?
      medium
      A. Tests will automatically pass without issues
      B. The code will be bug-free by default
      C. Refactoring will be unnecessary
      D. You may write code that does not meet requirements

      Solution

      1. Step 1: Understand the role of failing tests in TDD

        Failing tests define what the code should do. Skipping them risks missing requirements.
      2. Step 2: Analyze consequences of skipping step 1

        Without tests first, code may not meet expected behavior, causing bugs or missing features.
      3. Final Answer:

        You may write code that does not meet requirements -> Option D
      4. Quick Check:

        Skip test first = Risk wrong code [OK]
      Hint: Tests guide code; skip tests, code may miss goals [OK]
      Common Mistakes:
      • Assuming code is always correct without tests
      • Thinking refactoring fixes missing tests
      • Believing tests are optional in TDD
      4. You wrote a test first but it never fails when you run it initially. What is the likely problem?
      medium
      A. The test is not testing anything or is incorrect
      B. The code is perfect and needs no changes
      C. Refactoring was done before writing the test
      D. The test runner is broken and skips tests

      Solution

      1. Step 1: Understand expected test behavior in TDD

        Tests should fail first to show missing functionality.
      2. Step 2: Interpret why test never fails initially

        If test never fails, it likely does not check anything meaningful or has errors.
      3. Final Answer:

        The test is not testing anything or is incorrect -> Option A
      4. Quick Check:

        Failing test first means test must fail initially [OK]
      Hint: Failing test first means test must fail initially [OK]
      Common Mistakes:
      • Assuming code is already perfect
      • Ignoring test correctness
      • Blaming test runner without checking test code
      5. You are using TDD to develop a feature that calculates discounts. You write a test for a 10% discount but forget to handle zero or negative prices. What is the best TDD approach to fix this?
      hard
      A. Ignore zero and negative prices as invalid inputs
      B. Write new failing tests for zero and negative prices, then update code
      C. Refactor existing test to include zero and negative prices without new tests
      D. Write code first to handle zero and negative prices, then write tests

      Solution

      1. Step 1: Identify missing test cases in TDD

        TDD requires writing tests for all expected cases, including edge cases like zero and negative prices.
      2. Step 2: Apply TDD cycle to add missing cases

        Write new failing tests for these cases, then write code to pass them, then refactor.
      3. Final Answer:

        Write new failing tests for zero and negative prices, then update code -> Option B
      4. Quick Check:

        Add tests for new cases before coding [OK]
      Hint: Add tests for all cases before coding [OK]
      Common Mistakes:
      • Coding before writing tests for new cases
      • Ignoring edge cases in tests
      • Trying to refactor tests without adding new ones
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard