What is a Test Plan?
The Test Plan is derived from the Software/Product Requirements and defines what to test and when. It will specify the team or team member to execute the test. There can be multiple Test Plans in a development life cycle. In a waterfall project, there may be a Test Plan for each type of testing, for example. In an Agile project, there may be a Test Plan for each Sprint, again for example.
What are Test Cases?
Test Cases define the functionality to test and all the variations of events that can occur within the functionality. Test Cases reflect how the product/application is supposed to work (test-to-pass), and how it works with unexpected or invalid events (test-to-fail). In a game, test-to-fail test cases could be the main character attempting to walk through a wall. In a data entry screen, a test-to-fail test case could be an attempt to enter an incorrect postal code or no postal code, for example.
Developing Test Cases requires logical thinking, creativity, and attention to detail. It requires the type of thinking that goes along with “How can I break this application? Mwah-ha-ha” while applying structured, industry-reasoned, and accepted approaches to derive the minimal number of test cases to thoroughly test the software.