1. A test strategy that tells you what types of testing and the amount of testing you think will work best at finding the defects that are lurking in the software
2. A testing plan of the actual testing tasks you will need to execute to carry out that strategy
3. Test cases that have been prepared in advance in the form of detailed examples you will use to check that the software will actually meet its requirements
4. Test data consisting of both input test data and database test data to use while you are executing your test cases, and
5. A test environment which you will use to carry out your testing.