Software Test Estimation

Estimation is the core activity of any project manager and often gives a headache. Managers have to balance between being aggressive to get the business and also ensure that the project does not go into RED due to a shortage of resources.

Test Estimation assumes a little more complexity, due to the fact that test effort is proportional to the maturity of the development process itself.

Many a time we have struggled to ascertain the types of testing to be done for the product looking at the requirements. For example, a ticket issuing machine has to be robust – In addition to testing the software, we need to test the platform where the machine is likely to be installed-bus, train, platform, etc…

The easiest way to arrive the right Test estimates is to break up the testing into functional and non-functional aspects and create a questionnaire to elaborate them further. For example:

  1. How many configurations is the product expected to be tested-browser, devices, OS, etc?
  2. What type of performance testing needs to be done-Response time, Peak usage load, Stress, Availability, etc..
  3. Type of installations
  4. Usability – Accessibility, self-explanatory, localized, etc
  5. What Functional and Non-Functional testing
  6. Are there tools available and their cost?

After the tasks are identified based on a questionnaire, the effort for individual components needs to be arrived at based on multiple factors like – complexity, re-usability, type of the activity and so on. It is important to have a relevant estimation benchmark which is based the past experience in that company or group or technology.

Most people make the mistake of taking a template from some other company or project, which might have a different composition and hence those benchmark information might result in wrong estimates.

If there is no past experience to bank on, it is important to do a Proof of concept to arrive at a baseline and mature the baseline over a period of time.

Word of Caution-Never plan for unqualified buffers, since they can promote lethargy. Every buffer needs to be attached to an identified risk and used only if the risk materialises.

Test estimation will differ based on the type of projects like data migration projects, development projects, application migration projects and so on.

Keep in mind that the test estimation approach and the template will differ if you are looking at test automation projects, performance testing projects, functional testing projects. We will discuss those in a different blog post.

The most important aspect of estimation is to refine the estimation model as we gain experience by collecting metrics and periodically analysing them at a minute task level.

HAPPY TESTING!!!

– Kumaresan Chidambaram