Estimating what testing will involve and what it will cost?

As we know that testing is a process rather than a single activity. Hence, we need to break down a testing project into phases using the fundamental test process identified in the ISTQB Syllabus: planning and control; analysis and design; implementation and execution; evaluating exit criteria and reporting; and test closure.

Within each phase we identify activities and within each activity we identify tasks and perhaps subtasks. To identify the activities and tasks, we work both forward and backward. When we say we work forward, we mean that we start with the planning activities and then move forward in time step by step, asking, ‘Now, what comes next?’

Working backward means that we consider the risks that we identified during risk analysis (which we will discuss in Section 5.5) and depending on the type of risk we decide that ‘What activities and tasks are required in each stage to carry out this testing?’

Let’s look at an example of how you might work backward.

  • Suppose that you have identified performance as a major area of risk for your product. So, performance testing is an activity in the test execution phase. You now estimate the tasks involved with running a performance test, how long those tasks will take and how many times you will need to run the performance tests.
  • Now, those tests need to be developed by someone. So, performance test development entails activities in test analysis, design and implementation. You now estimate the tasks involved in developing a performance test, such as writing test scripts and creating test data. Typically, performance tests need to be run in a special test environment that is designed to look like the production or field environment.
  • You now estimate tasks involved in acquiring and configuring such a test environment, such as getting the right hardware, software and tools and setting up hardware, software and tools.
  • Not everyone knows how to use performance-testing tools or to design performance tests. So, performance-testing training or staffing is an activity in the test planning phase. Depending on the approach you intend to take, you now estimate the time required to identify and hire a performance test professional or to train one or more people in your organization to do the job.
  • Finally, in many cases a detailed test plan is written for performance testing, due to its differences from other test types. So, performance-testing planning is an activity in the test planning phase. You now estimate the time required to draft, review and finalize a performance test plan.

When you are creating your work-breakdown structure, remember that you will want to use it for both estimation (at the beginning) and monitoring and control (as the project continues). To ensure accuracy of the estimate and precise control, make sure that you subdivide the work finely enough. This means that tasks should be short in duration, say one to three days. If they are much longer – say two weeks – then you run the risk that long and complex subtasks are ‘hiding’ within the larger task, only to be discovered later. This can lead to horrible surprises during the project.