Software Testing - Estimation Techniques



Software testing requires correct estimation and planning for its effective functioning. The test estimation describes the various techniques and procedures to identify and evaluate the effort, time and resources needed for testing the complete software in the software development life cycle (SDLC).

What is Test Estimation?

The test estimation is done for efficient planning, determining the timelines, and allocating resources for the project. It is carried out mainly by the managers. It weighs and estimates the budget, resources, and time needed to finish testing in a particular environment. It gives the forecast of any delays and overshooting the budget.

Why is Test Estimation Done?

The test estimation is done for the reasons listed below −

Planning

If estimations are performed correctly, it reduces possible delays in the project. Achievable deadlines are set and the resources are aligned accordingly. This results in effective collaboration among all the team members.

Resources

If estimations are performed correctly, the resources like the number of people involved in testing, identification of the correct test tools and environments etc are assigned effectively. It avoids the situations in which there is both shortage or excess of testing resources.

Budget

If right estimations are made, it correctly forecasts the overall budget of the project which includes cost of all the infrastructures, tools, resources etc. Based on that, a precise budget is created and unnecessary expenditures are reduced.

Risk

If right estimations are made, all the possible project risks are identified. The potential areas of risks are allocated with more resources to mitigate them.

Expectations

If test estimations are made properly, it gauges the expectations of all the project stakeholders, namely managers, clients etc.

Resource Optimization

The right estimations give the room for efficient planning and optimization of resources in the project. It gives scope of process enhancements, automation and optimizations which make the testing process more effective.

What is Estimated?

There are various parameters that are estimated in the project as listed below −

  • The time and effort required to perform planning, analysis, design, development, testing and project management activities are estimated.
  • The time required to complete the project or a particular activity in a project after considering all the parameters are estimated.
  • The number of resources, their skill sets, tools, and all other configurations required are estimated.
  • All the above listed items also help to estimate the project complexity, and all other risks and issues that might come up in the project. Besides, it forecasts the time and effort required to complete the documentations and testing for the project.

Different Test Estimation Techniques

Techniques Purpose
Work Breakdown Structure It is the procedure of breaking down the big tasks into smaller components.
Three Point Software Estimation

It is the procedure of breaking down the big tasks into smaller components and each of them are estimated depending on three parameters namely Best Case or Optimistic(O), Most Likely(M), and Worst Case or Worst Likely(W) estimates.

Formula −

Test Estimations(E) = (O + (4 * M) + W)/6.

Standard Deviations(SD) = (W - O)/6

Here, O is used for estimating best case scenarios.

M is used for estimating most likely scenarios.

W is used for estimating worst case scenarios.

Let us take an example of a project where the testing team is supposed to perform the web, backend, API, and performance testing.

The team shall need 100 man hours to complete in the Best Case or Optimistic scenario(O) when everything works perfectly fine for the project.

The team shall need 120 man hours to complete in the Most Likely scenario(M) when some issues are expected to arise.

The team shall need 140 man hours to complete in the Worst Case scenario(W) when major issues are expected to come up.

So the average estimation(E)

= (100 + (4*120) + 140)/6

=(100 + 480 + 140)/6 = 120 man hours.

Standard Deviations(SD)

= (140 - 100)/6 = 6.67 man hours.

So the team shall require 120 +/- 6.67 man hours to complete the testing.

WideBand Delphi Method It is the procedure where a group of experienced individuals sit together and agree up on the most probable results.
Function Point Analysis

It is the procedure of breaking down the big tasks into smaller components. Each component is then estimated depending on the size, budget, and timelines.

Let us take an example of a single project which is broken down into 2 easy, 3 medium, and 1 complex components. The Function Point(FP) for easy, medium, and complex components are determined as 2, 4, and 3 respectively.

Total FP for project

=(2 * 2) + (3 * 4) + (1*3)

= 19

Agile Estimation It is the procedure in which the present and past information are used for forecasting. Simultaneously the new data is fed to the project to streamline the estimation process.
Distribution in percentage It is the procedure in which every component is measured in terms of percentage. It gives an idea about the effort required in each phase of the software testing life cycle (STLC).

Best Practices to Create a Test Estimation

The best practices to create a test estimation are listed below −

  • Have a clear understanding of the requirements.
  • Make the test estimation process simpler by breaking down big tasks into smaller components.
  • Utilize the past and historical data to estimate similar projects.
  • Involve experienced individuals who have adequate domain knowledge and have participated in similar estimations in the past.
  • Utilize the correct estimation techniques for the process.
  • Identify all the potential risks and problems that may arise in the project.
  • Incorporate all the resources and infrastructures that will be needed in the project while doing the estimation.
  • Get the estimation reviewed by another experienced person for feedback.
  • As the project progresses and more details become available, update the estimates accordingly by providing reasons for modifications for future references.
  • Once the project completes, compare the time and effort required to complete the actual testing and the estimated value. This may help to do estimations for future projects.

Conclusion

This concludes our comprehensive take on the tutorial on Software Testing Estimation Techniques. We’ve started with describing what is test estimation, why test estimation is done, what is estimated, what are the different test estimation techniques, and what are the best practices to create a test estimation. This equips you with in-depth knowledge of Software Testing Estimation Techniques. It is wise to keep practicing what you’ve learned and exploring others relevant to Software Testing to deepen your understanding and expand your horizons.

Advertisements