The intention is to prevent avoidable testing failures. It's frustrating when code fails testing and just makes more work for myself in the long run.
- Does it do what it's supposed to - basic functionality check against spec.
- Check code against standards.
- Check missing, min and max length values.
- Check for memory and resource leaks.
- Create unit/automated test cases for all scenarios
- Check execution against large and small data volumes
- Check repeated execution in quick succession
- Check for multi instance issues
- Check in multiple target environments (DB, OS, etc.)
- Write test plan
Obviously, some of the above can be performed by tools.
My own personal check-list. subject to change and recorded for reference. Feel free to make additional suggestions.