Test Driven Development is the process in which test cases are written before the code that validates those cases. It depends on repetition of a very short development cycle. Test driven Development is a technique in which automated Unit test are used to drive the design and free decoupling of dependencies.
The following sequence of steps is generally followed:
- Add a test – Write a test case that describe the function completely. In order to make the test cases the developer must understand the features and requirements using user stories and use cases.
- Run all the test cases and make sure that the new test case fails.
- Write the code that passes the test case
- Run the test cases
- Refactor code – This is done to remove duplication of code.
- Repeat the above mentioned steps again and again
Motto of TDD:
- Red – Create a test case and make it fail
- Green – Make the test case pass by any means.
- Refactor – Change the code to remove duplicate/redundancy.
- Unit test provides constant feedback about the functions.
- Quality of design increases which further helps in proper maintenance.
- Test driven development act as a safety net against the bugs.
- TDD ensures that your application actually meets requirements defined for it.
- TDD have very short development lifecycle.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Domain-Driven Design (DDD)
- Difference between Generic Software Development and Custom Software Development
- Difference between Test Scenario and Test Condition in Software Engineering
- Adaptive Software Development (ASD)
- Scrum (software development)
- Difference between Test Plan and Test Strategy
- Difference between Test Case and Test Script
- Reliability Attributes in Software Development
- Types of Resources Used in Project Development
- Software Development Organizational Structure
- Types of Defects in Software Development
- Modern Principles Of Software Development
- Software Engineering | Agile Development Models
- Software Development Life Cycle (SDLC)
- Difference between Traditional and Agile Software Development
- Software Engineering | Jackson System Development (JSD)
- Factors of Management Dependency in Software Development
- Steps in Rapid Application Development (RAD) model
- Dynamic Systems Development Method (DSDM)
- An Introduction to Software Development Design Principles