When working on a large project or a seemingly simple task – I have come to realize it is extremely important to always get a test case (or test cases) directly from the client. As programmers and developers, we often have one idea of how something should work, while our clients have something different either because of business logic or lack of really knowing how to describe what is needed.
By having your clients define the tests – both the developer and client win. The client is forced to describe the actual function in a logical way. The developer can read over the test and fully understand what the outcome needs to be. The client and developer also have a defined result which will be easy to test.
As developers – we all test our work one way or another, but believe me, it is much better if your tests actually matched what the client uses as their tests (which is surprisingly different more than you would expect).Moral of the story – while the user does not need to create some extravagant testing plan – by asking them to define a test case – they are more likely able to better explain what they really need. The developer then is able to do their testing and be confident they know what result is needed and everyone is on the same page.