The following are some of the steps to consider:
- Obtain requirements, functional design, and internal design specifications, user stories, and other available/necessary information
- Obtain budget and schedule requirements
- Determine project-related personnel and their responsibilities, reporting requirements, required standards and processes (such as release processes, change processes, etc.)
- Determine project context, relative to the existing quality culture of the product/organization/business, and how it might impact testing scope, aproaches, and methods.
- Identify application's higher-risk and mor important aspects, set priorities, and determine scope and limitations of tests.
- Determine test approaches and methods - unit, integration, functional, system, security, load, usability tests, etc.
- Determine test environment requirements (hardware, software, configuration, versions, communications, etc.)
- Determine testware requirements (automation tools, coverage analyzers, test tracking, problem/bug tracking, etc.)
- Determine test input data requirements
- Identify tasks, those responsible for tasks, and labor requirements
- Set schedule estimates, timelines, milestones
- Determine, where apprapriate, input equivalence classes, boundary value analyses, error classes
- Prepare test plan document(s) and have needed reviews/approvals
- Write test cases
- Have needed reviews/inspections/approvals of test cases
- Prepare test environment and testware, obtain needed user manuals/reference documents/configuration guides/installation guides, set up test tracking processes, set up logging and archiving processes, set up or obtain test input data
- Obtain and install software releases
- Perform tests
- Evaluate and report results
- Track problems/bugs and fixes
- Retest as needed
- Maintain and update test plans, test cases, test environment, and testware through life cycle