I think it really depends on the type of project and what kind of decisions you must made. I.e., what is the purpose of test plan for you.
Here I will share some experience regarding our project.
In our project and team testing means:
- preparing test environments, required for system tests
- preparing test data: getting real data from production or simulating
- automating tests at unit, integration, system, system integration level.
- writing mocks, test drivers, data simulators, test frameworks
- demonstrating development output
So planning tests is about making high-level decisions to clarify above. For instance, we decide whether QA needs to end-to-end test a given story, or it is better if she increases test coverage at unit level, extending this way tests written by developers. Getting test data often means getting in contact with customers, business analytics and other stakeholders to get access to them. End-to-end tests often require know-how of more experiences testers, business analytics and delivery guys, so we must plan ahead training. Testers often present what the team achieved, so we sometimes plan what tests to prepare for the demo.
Automation is a separate story. We have established methodology and frameworks for testing, so testing means implementing and executing test cases. On other side, we are developing a new test framework, that is a separate development project going in parallel to the main one. This must be planned as well, cannot be done ad hoc, but we still learn from other teams how do plan this effectively.
We usually know what we will be doing in the current or coming release, so planning tests is done ahead for several iterations.
We usually do some test planning with the rest of the team, when iteration starts. We do not always write down all decisions about testing, but we still plan testing process.
We, as testers, sometimes need to support both current iteration and regression tests. So we need to plan how much our capacity can be devoted to current iteration and whether developers can cover our testing tests, if we are too busy with other responsibilities. This is agile, so developers can do some testing, but we still need to plan this to some degree.