While testing is a subset of a larger project, it is also a project unto itself. The testing effort needs to be far more than an afterthought or side activity! It is a vital effort that requires judicious use of physical, virtual, and human resources. It is well worth the effort to think through just what resources you will need for the testing and place every bit as much emphasis there as you do on any other aspect of the project. This article examines considerations around the environment needed for testing effectively and identifies the key roles and activities of those that make up the test team.
This is the second of a series of four articles on “Writing a Test Plan”, where we explore the challenges and favored approaches for developing and implementing a plan to test an integrated product consisting of hardware and software components. This article, Part 2 in the series, “Plan Test Resources,” looks at the variety of resources required for effective testing and how to plan for them. Part 1, “Product Analysis and Test Objectives”, looks at how to get your head around a concise and useful set of objectives for the test effort. Part 3, “Define Test Criteria,” provides ideas for how to measure the various aspects of testing to determine what passes and what fails. Finally, Part 4, “Test Strategy, Schedule, and Deliverables”, explores the “nitty gritty” project management aspects of the test plan.
Let’s first explore the human resources that you will require to do the testing. Consider the following test team roles, which do not necessarily map one to one to a person:
- Test Manager – Who will manage – coordinate and be accountable – for all testing-related activities?
- Tester – Who will actually perform the testing? Will there be different people responsible for executing different testing tasks?
- Developer in Test – What will each developer be responsible for testing? What can be assumed?
- Test Administrator – Who will administer the test environment? Will it be someone in the test organization, someone outside, or both? This includes administrators of servers, networks, and other physical and virtual resources to be used.
- SQA members – Is there a need – and is there a sub-team – that will be responsible for analyzing the data from the testing? Is there enough data to consider statistical analysis?
- Users – Are users needed to play a role in testing, and if so, who, and when are they needed?
- Customer – Who is the ultimate ‘buyer’ of the product, who needs to sign off on the product testing?
Let’s now explore the physical or virtual resources environment needed to perform the testing:
- Server(s) – What server(s) are required to emulate the production environment?
- Test tool(s) – Are there any special tools to be used for testing? This includes test tools, such as for automated testing, as well as tools for recording and sharing test results.
- Network – What network capabilities will be required? Network capabilities should resemble as close as possible what is available in the production environment. It may include landline, wireless, or ad hoc networks.
- Computer and other HW devices, components – Any components that are planned for the production environment should be included and tested in the test environment.
- Other physical environments – Products may be used in the field, in a factory, as pat of a game, in the air…or in any number of situations imaginable. Where must it be tested?
Have you identified all of the physical, virtual, and human resources required to support effective testing?