Test driven development or test driven design is a programming approach where before the developer writes any code, she first writes an automated test. This test will fail at first because no code exists. Then she write enough code to make the test pass. After that she might want to clean up or refactor her approach, all along ensuring that the test still passes. Then she moves on and writes another test for the next piece of small functionality she wants to add and so on. By doing this, testing no longer becomes an activity that is done at the end and instead because an ongoing activity throughout. In fact, when the developer is done coding she is also done testing. This approach also ensures that complex solutions are broken up into manageable pieces, the code is decoupled, concerns are separated and application is easily testable.
Also check out the entire Agile Testing series:
- 4 Typical Transitions Teams Go Through When They First Start Adopting Scrum
- The Most Common Misunderstanding of Agile Software Development
- What are the Different Types of Tests?
- What is The Agile Testing Quadrant?
- Which Tests Should We Automate?
- How Many Tests Are Enough?
- What is The Testing Pyramid?
- When Do We Start Testing in Scrum?
- Who Is Responsible for Testing in Scrum?
- What is Test Driven Development (TDD)?
- Why You Shouldn’t Do Functional Testing From the UI?
- What are Executable Specifications or Specifications by Example?
- What is Acceptance Test Driven Development (ATTD)?
- Testing Green Field Applications vs. Legacy Applications
- What is Exploratory Testing?
- Top 8 Things to Consider for Your Agile Testing Strategy
- Agile Testing – Testing from Day 1 Presentation