Estimating what testing will involve and what it will cost

Starting at the highest level, we can break down a testing project into phases using the fundamental test process:

  • planning and control 
  • analysis and design 
  • implementation and execution
  • evaluating exit criteria and reporting
  • 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 working forward, start with the planning activities and then move forward in time step by step, asking, 'Now, what comes next?'

Working backward means consider the risks that were identified during risk analysis. For those risks which were intended to address through testing, ask yourself, 'So, what activities and tasks are required in each stage to carry out this testing?'

This can be further explained considering performance testing as an example.

Conducting 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 
  • how many times you'll need to run the performance tests


Now, those tests didn't just appear out of thin air: someone had to develop them. Therefore, 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 
  • 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, at least in those ways which would affect response time and resource utilization and performance tests need special tools to generate load and check response.

So, performance test environment acquisition and configuration is an activity in the test implementation phase. You now estimate tasks involved in acquiring and configuring such a test environment, such as:

  • simulating performance based on the production environment design to look for potential bottlenecks
  • getting the right hardware, software and tools
  • 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 sub-tasks are 'hiding' within the larger task, only to be discovered later.

This can lead to nasty surprises during the project.

Comments

Popular posts from this blog

Types of Review

Roles and Resposibilities for a Formal Review

Phases of Formal Review