Introduction:
Estimating testing is an essential element in test management. Test estimation plays an important role throughout the software testing life cycle. Before starts the testing activity, test estimation is calculated to plan the testing. Test Estimation Techniques are an exercise of evaluating the effort to complete the testing. In test estimation,we come up with the values and calculating the duration that needs to test in matrix base or quantitative base. Test estimation is important to schedule the project and allocate resources.
Factors When Estimating Effort For Testing:
- Complexity of the software to be tested.
- Available software requirements.
- Available requirement related documents and test artifacts for the software.
- Software’s linkage with any external soft wares.
- Skill set of test resources.
- Past experience in the testing.
- Domain or particular software knowledge.
- Performance of the software and test environment.
- Risks in project and software.
- Technology and method used to conduct the testing.
- Technology and method used to develop the software.
- Tools that will be used in the testing.
List Of Test Estimation Techniques:
Work break down structure
First identify all angles of testing work from the beginning to end. Then find out the tasks in each category of software testing throughout the project and break it into small tasks. Break it further if need. The smaller task is easier to estimate. Allocate each tasks among testers and start calculate the estimation to complete each task. To estimate work break down structure, should know testing task in detail. Step by how we are going to do each testing tasks. When we break down in to task and estimate we will not miss any testing and cover fully.Work break down structure is helpful to do the scheduling easily. Can add the task duration and milestone easily. Below are some general sample test task in a software project.
Understanding software requirement: Understanding the software requirement clearly. Identify which needs to be tested.
Plan the test: Do the test plan. Think of each test plan items when estimate. How long it will take to gather and plan the test.
Test environment set up: Time to set up the test environment and each releases.
Test case writing: Writing test case for software which needs to be tested.
Test documentation: Any document that needs to be created for testing.
Automating test: Identify the items needs to be automated. While estimating consider the tool, resource and technique used to automation. Also consider any previous automation suite can be utilized.
Test execution: Executing the test. How much going to be executed and when. Breaks of the executions. Time to different type of testing like smoke testing, functional testing, performance testing etc. Consider the defect recording time as well in this.
Test rounds: How many test rounds are required to test the software?
Test reporting: Time to record data for test report. Time to create test reports.
User Acceptance Test related effort: Time to analyses the user acceptance test feedback. If we are conducting the user acceptance test the time to conduct the user acceptance test.
Test closure activities: Any activities when test is completed. Any special communication or maintenance activities.
Presentation, meeting and training: If there is any time to be estimated for any regular meetings, presentations or training should be considered when estimate.
Function Point Estimation
Identify the functions in the software. Divide software’s function to be tested among the resources available. Calculate how long it needs to test each functions. Steps to test each functions. How many times a function will be tested?
We can assign weightage and calculate the estimation for entire functions. It’s just a way to estimate. We can estimate without the weightage also. Note, there are several ways to assign weightage to each function. I will explain one way here. First identify the smallest functions and consider the weightage for that as one, then assign the weightage for other functions accordingly.Find out the duration to test the function with small weightage. Now we shall calculate the duration for other functions as well by multiplying the duration by weightage. Once all functions are estimated, add them up and calculate the total effort to conduct the testing.
Example:
Below example explain a way to estimate functions but different organizations practice different method to estimate the functions. The calculation method vary project to project as well.
Assume function 1 is the smallest function, hence the weightage for that is ‘1’. Say it will take ‘3’ hours to test the function number 1.
Assigning the weightage to other functions comparing with the smallest function. Say weightage of function 2 is ‘4’ hours. Now it will take ‘12’ (3*4=12 hours) hours to test the function number 2.
Then add each function’s duration and come up with the total duration. Here it’s 15 hours (3+12=15 hours).
Functions | Weightage | Duration (Hours) |
Function 1 (Smallest function) | 1 | 3 |
Function 2 | 4 | 12 |
Total | 15 |
In this method can easily dive the function using the available software requirement. We can bring this functions point technique in to the work break down as well to estimate such element like test execution in work break down structure.
Three Point Estimation:
Three point estimation is another technique to estimate the task.Each task will be break down to minor sub task and estimated. This is estimating the effort in 3 point of you and calculate the final effort. Effort is estimated in three ways. Whoever is estimating should come up with the effort for best case, most likely and worst case.
Best case estimation: Best case scenario is estimating the effort assuming everything is going correctly and nothing goes wrong. Estimating considered all the scenarios goes positive. This also refers as optimistic estimation.
Most likely estimation: Most likely scenario is estimating the effort assuming most of the things are goes good but, maybe there are some problems can be occurred. Estimating considered most of the scenarios goes positive and some scenarios goes negative.
Worst case estimation: Worst case scenario is estimating the effort assuming everything goes wrong. Estimating considered all the scenarios goes negative. This also refers as pessimistic estimation.
By using all three best case, most likely case and worst case, the final effort will be estimated using below formula.
Test estimation = (B+(4*M)+W) / 6 B – Estimation for best case scenarios. M – Estimation for most likely case scenarios. W – Estimation for worst case scenarios. |
Worthy Practices When Estimating:
- Take the requirement as a base to estimate.
- Consider who will be tested the software while estimating.
- Better add reasonable buffer time while estimating.
- Record and maintain the estimations.
- Update the estimations if necessary while project is ongoing. This is only if we can change the project schedule.
- Consider the internal and external risk factors.
- Use tools and do the estimation to calmer the estimating.
- Get a review for the estimation by another person.
- Refer the past estimation and analyze against the actual project run rate.
Conclusion:
Estimating test effort is essential in the project to run the project efficiently and complete on time with client satisfaction. Test estimation techniques are used to estimate the effort is different ways for different project. Organizations practice either above techniques explain in this article or customized estimation techniques or mix of hybrid techniques for test estimation. Before starts the estimation the required inputs for the estimation should be available. Whoever is estimating should make sure the inputs for the estimation is ready and available. Firstly decide which estimation technique and method is going to be used for the project. It is important to calculate the test effort carefully. Record the estimation to refer while project runs and for future reference. While project is running track the project and compare the duration of testing against the estimated test duration. Always analyze the estimation of past project and use the result when estimating the new project.
2 thoughts on “Test Estimation Techniques In Software Engineering”
Nice article.
Nice Article