In Scrum, in what event test cases are written if TDD is being followed?
The recommended best practice of TDD states that new code should only be written if there a failed test case (a very generic summary). So, assuming QA resource being part of the development team (cross functional), is writing test case captured as one of the Sprint Backlog tasks and performed during the Sprint execution? This would also involve a learning curve with the development team getting versed with the test case creation tool. I would assume effort & estimation would include this effort of test case creation as well (seem like an overheard due to the short iteration cycle).
Thoughts? Any real life experience and feedback using TDD would be appreciated. Do you see more benefits with it and what disadvantages have you experienced using it?
If TDD is the ONLY verification being done, then the only test cases created would be those by the developer who would likely create them in an automation suite of some kind. However, it is quite likely there will be testing outside of just functional/behavioral testing. For example, performance testing might need to be done which might not fall within the scope of TDD.
Kiron
...
1 reply by Mohit Joshi
Aug 25, 2020 10:21 AM
Mohit Joshi
...
Thanks Kiron. I would assume if TDD is adopted, the acceptance criteria is incorporated within the test cases. The test case covers all the conditions. If the test case is passed, it implies the feature is good to be released...isn't it? If not, it seems like an overheard with the learning curve involved (to learn the automation suite)?
if a wrong test script is developed either because of inexperience or because of lack of clarity, the development gets impacted.
TDD needs complete understanding of the user story and acceptance criteria.
...
1 reply by Mohit Joshi
Aug 25, 2020 10:22 AM
Mohit Joshi
...
Thanks Ganesh. Yes, I would assume in most case the perform doing the work might write the test case as well since he/she has a good understanding of the backlog item being worked on.
If TDD is the ONLY verification being done, then the only test cases created would be those by the developer who would likely create them in an automation suite of some kind. However, it is quite likely there will be testing outside of just functional/behavioral testing. For example, performance testing might need to be done which might not fall within the scope of TDD.
Kiron
Thanks Kiron. I would assume if TDD is adopted, the acceptance criteria is incorporated within the test cases. The test case covers all the conditions. If the test case is passed, it implies the feature is good to be released...isn't it? If not, it seems like an overheard with the learning curve involved (to learn the automation suite)?
...
1 reply by Kiron Bondale
Aug 25, 2020 6:54 PM
Kiron Bondale
...
TDD reduces the need for additional testing but rarely eliminates it. Depending on the product/project there could be the need for independent testing, user acceptance testing, performance or security-related testing all of which might require test cases to be created.
if a wrong test script is developed either because of inexperience or because of lack of clarity, the development gets impacted.
TDD needs complete understanding of the user story and acceptance criteria.
Thanks Ganesh. Yes, I would assume in most case the perform doing the work might write the test case as well since he/she has a good understanding of the backlog item being worked on. Saving Changes...
Thanks Kiron. I would assume if TDD is adopted, the acceptance criteria is incorporated within the test cases. The test case covers all the conditions. If the test case is passed, it implies the feature is good to be released...isn't it? If not, it seems like an overheard with the learning curve involved (to learn the automation suite)?
TDD reduces the need for additional testing but rarely eliminates it. Depending on the product/project there could be the need for independent testing, user acceptance testing, performance or security-related testing all of which might require test cases to be created.