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
✗ Incorrect
In TDD, you always start by writing a test that fails because the code does not exist yet.
What does the 'Green' step in TDD mean?
ADelete old tests
BWrite a failing test
CRefactor the code
DWrite code to pass the test
✗ Incorrect
The 'Green' step means writing just enough code to make the failing test pass.
Why is refactoring important in TDD?
ATo add new features
BTo improve code without changing behavior
CTo remove tests
DTo write documentation
✗ Incorrect
Refactoring cleans and improves code structure while keeping the tests passing.
Which of these is NOT a benefit of TDD?
AHelps catch bugs early
BEnsures code meets requirements
CIncreases code complexity
DEncourages simple design
✗ Incorrect
TDD encourages simple design, not increased complexity.
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
✗ Incorrect
If a test passes without new code, write a new failing test to continue the cycle.
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
Step 1: Understand TDD process
TDD means writing tests before the actual code to guide development.
Step 2: Compare options with TDD definition
Only Write tests before writing the actual code correctly states writing tests before code.
Final Answer:
Write tests before writing the actual code -> Option C
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
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.
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
Step 1: Understand the role of failing tests in TDD
Failing tests define what the code should do. Skipping them risks missing requirements.
Step 2: Analyze consequences of skipping step 1
Without tests first, code may not meet expected behavior, causing bugs or missing features.
Final Answer:
You may write code that does not meet requirements -> Option D
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
Step 1: Understand expected test behavior in TDD
Tests should fail first to show missing functionality.
Step 2: Interpret why test never fails initially
If test never fails, it likely does not check anything meaningful or has errors.
Final Answer:
The test is not testing anything or is incorrect -> Option A
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
Step 1: Identify missing test cases in TDD
TDD requires writing tests for all expected cases, including edge cases like zero and negative prices.
Step 2: Apply TDD cycle to add missing cases
Write new failing tests for these cases, then write code to pass them, then refactor.
Final Answer:
Write new failing tests for zero and negative prices, then update code -> Option B
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 unknownstrongwhile earning +1 Grip toward your certificate.