Does TDD really work for complex projects?
Posted
by
Amir Rezaei
on Programmers
See other posts from Programmers
or by Amir Rezaei
Published on 2011-01-31T11:26:11Z
Indexed on
2011/01/31
15:33 UTC
Read the original article
Hit count: 451
programming
|TDD
I’m asking this question regarding problems I have experienced during TDD projects. I have noticed the following challenges when creating unit tests.
- Generating and maintaining mock data
It’s hard and unrealistic to maintain large mock data. It’s is even harder when database structure undergoes changes.
- Testing GUI
Even with MVVM and ability to test GUI, it takes a lot of code to reproduce the GUI scenario.
- Testing the business
I have experience that TDD works well if you limit it to simple business logic. However complex business logic is hard to test since the number of combinations of tests (test space) is very large.
- Contradiction in requirements
In reality it’s hard to capture all requirements under analysis and design. Many times one note requirements lead to contradiction because the project is complex. The contradiction is found late under implementation phase. TDD requires that requirements are 100% correct. In such cases one could expect that conflicting requirements would be captured during creating of tests. But the problem is that this isn’t the case in complex scenarios.
I have read this question: Why does TDD work?
Does TDD really work for complex enterprise projects, or is it practically limit to project type?
© Programmers or respective owner