I copied that definition from wikipedia. I am following TDD for the project that am working now. Not fully following, using for the core functionality. This is very new to me and I am feeling great to work on TDD. In the beginning I really struggled to write test cases. In fact my TL removed some test cases that I wrote in the beginning because they are not useful:( .
Am still in the learning stage only. Now I am writing test cases which are useful(I think :) ).
These are the steps that I understand while doing TDD.
- Write test cases which fail. (because you didn't write the functionality the test cases should fail.)
- Make the test cases to pass. (now write the functionality and make the test to pass.)
- Then do the re factoring on the function.
- Make the tests to pass.
Before following TDD these are the problems I faced.
1. I am not sure about my code that it will work on all cases.
2. When I fix one bug , I am not sure that that bug fix will not cause failure to working functionality.
3. I don't have confidence that this functionality works fine and it is not having bugs
4. I am unable to say any functionality is working fine.(I don't have any functionality which is bug free). I don't have any proof to say.
5. When am testing my application there is no proof that I tested every functionality, I used to forget testing many functionality.
After following TDD I am able to solve all the above problems. And am getting much satisfaction about my code because what ever small functionality I write I have confidence that it will work fine and it won't break other functionality.
Some people may think that this method is very slow. It take time in the beginning to get into TDD but when you are trying to add more and more functionality it will be very easy to test and you can save the time of testing.
1 comment:
Good notes. Looking forward for more learnings and interesting points from you.
Post a Comment