This question came up during an email thread that I had with some testers. Most of the testers had the view that a defect can be a defect even if it has not been defined in a test script, while I said that this is not true. The conversation went like this:
Tester: We can not put every scenario in a test script
ME: Yes you can
Tester: Can not because we can not think of scenarios while writing test scripts
ME: Then you should. Testers also think when they are testing, so what stops them from thinking when they are creating test scripts
Tester: It is not possible and also it is not feasible
ME: Not possible, I will disagree. Let us focus on the Not Feasible part
Tester: It becomes very difficult to document everything as then the scripts will run into multiple pages and maintaining them would be an overhead
ME That is not reason enough not to capture all that can be in a test script. You have to accept the fact that a test script can be incorrect. For a defect to be a defect, it has to be mapped against a missing requirement that should come from a document that can a client would have provided. If you can not provide a document/reference for the missing functionality, then there is not reason you can call it a defect. It is fine to log it as a TAR and discuss as a change request, but a defect i do not agree to.
Beyond this point, I started finding testers fumbling for words. No one out there could give me a solid answer to convince me. What are your views on the same? I blogged about why do i do unit testing and why do i feel we can cover all the scope in a test script. We developers do that for Unit testing, why can testers not?