Test Driven Development is one of the most effective practices from the agile community of practices, and also one of the least practiced regularly. Test Driven Development (TDD) means capturing the intent of the requirements in the form of a test case before starting to code. Test case could be a manual test case or an automated test script. Test case could be a functional or a user-acceptance or a unit test. TDD is generally a white-box unit-testing mechanism taking small steps prevents bugs and the need for debugging. Virtually every line of code is written in response to some failure. It often is a test failure, but might be a compilation failure, or a web page that does not exist.
Benefits of TDD
Importance of Refactoring in TDD
One important feature of TDD is Refactoring. According to the Refactoring concept, change the internal structure of the code without changing its external behavior. Refactoring is a key element of any agile process including TDD methodology. A trend analysis of the evolution of the design and implementation through successive refactoring iteration may give a hint on the probability to reach a stable architecture or component. It is quite conceivable to add design review of the component design during the development cycle to evaluate the stability of the implementation.
Value and Challenges
Value of TDD – especially in Agile
Challenges – team resistance & reluctance?
Steps in implementing TDD in an Agile Project
Test Driven Development takes time to master. It is conceptually simple, however, practicing test driven development on existing code, not written for tests tends to be very difficult. And for some reason, even though there are some really great, and simple, techniques for working with legacy code, people tend to be unaware or unpractised with the well-known and well-documented techniques.
Thanks to Praveen Kumar for being our guest writer this week.
Book in for a free 10-minute candidate attraction call with us today? Please click here to make an appointment.