Estimation is the process of finding an estimate, or approximation, which is a value that is usable for some purpose even if input data may be incomplete, uncertain, or unstable.
The Estimate is prediction or a rough idea to determine how much effort would take to complete a defined task. Here the effort could be time or cost. An estimate is a forecast or prediction and approximate of what it would Cost. A rough idea how long a task would take to complete. An estimate is especially an approximate computation of the probable cost of a piece of work.
The calculation of test estimation techniques is based on:
- Past Data/Past experience
- Available documents/Knowledge
- Assumptions
- Calculated risks
Before starting one common question arises in the testers mind is that “Why do we estimate?” The answer to this question is pretty simple, it is to avoid the exceeding timescales and overshooting budgets for testing activities we estimate the task.
Few points need to be considered before estimating testing activities:
- Check if all requirements are finalize or not.
- If it not then how frequently they are going to be changed.
- All responsibilities and dependencies are clear.
- Check if required infrastructure is ready for testing or not.
- Check if before estimating task is all assumptions and risks are documented.
Test Estimation
Test Estimation is a management activity which approximates how long a Task would take to complete. Estimating effort for the test is one of the major and important tasks in Test Management.
Estimating of test efforts is one of the important as well as significant tasks in the software development process. If you correctly estimate your project, it will help you to test the software with maximum exposure.
Software Testing Estimation Techniques
There are different Software Testing Estimation Techniques which can be used for estimating a task.
- Delphi Technique
- Work Breakdown Structure (WBS)
- Three Point Estimation
- Functional Point Method
Delphi Technique
In the Delphi Method is based on surveys and basically collects the information from participants who are experts. In this estimation technique each task is assigned to each team member & over multiple rounds surveys are conduct unless & until a final estimation of task is not finalized. In each round the thought about task are gathered & feedback is provided. By using this method, you can get quantitative and qualitative results.
In overall techniques this technique gives good confidence in the estimation. This technique can be used with the combination of the other techniques.
Work Breakdown Structure (WBS)
A big project is made manageable by first breaking it down into individual components in a hierarchical structure, known as the Work breakdown structure, or the WBS.
The WBS helps to project manager and the team to create the task scheduling, detailed cost estimation of the project. By using the WBS motions, the project manager and team will have a pretty good idea whether or not they’ve captured all the necessary tasks, based on the project requirements, which are going to need to happen to get the job done.
In this technique the complex project is divided into smaller pieces. The modules are divided into smaller sub-modules. Each sub-modules are further divided into functionality. And each functionality can be divided into sub-functionalities. After breakdown the work all functionality should review to check whether each & every functionality is covered in the WBS.
Using this you can easily figure out the what all task needs to completed & they are breakdown into details task so estimation to details task would be more easier than estimating overall Complex project at one shot.
Work Breakdown Structure has four key benefits:
- Work Breakdown Structure forces the team to create detailed steps:
- In The WBS all steps required to build or deliver the service are divided into detailed task by Project manager, Team and customer. It helps to raise the critical issues early on, narrow down the scope of the project and create a dialogue which will help make clear bring out assumptions, ambiguities, narrow the scope of the project, and raise critical issues early on.
- Work Breakdown Structure help to improve the schedule and budget.
- WBS enables you to make an effective schedule and good budget plans. As all tasks are already available so it helps in generating a meaningful schedule and makes scheming a reliable budget easier.
- Work Breakdown Structure creates accountability
- The level of details task breakdown helps to assign particular module task to individual, which makes easier to hold person accountable to complete the task. Also the detailed task in WBS, people cannot allow hiding under the “cover of broadness.”
- Work Breakdown Structure creation breeds commitment
- The process of developing and completing a WBS breed excitement and commitment. Although the project manager will often develop the high-level WBS, he will seek the participation of his core team to flesh out the extreme detail of the WBS. This participation will spark involvement in the project.
Three Point Estimation
Three point estimation is the estimation method is based on statistical data. It is very much similar to WBS technique, task are broken down into subtasks & three types of estimation are done on this sub pieces.
Optimistic Estimate (Best case scenario in which nothing goes wrong and all conditions are optimal.) = A
Most Likely Estimate (most likely duration and there may be some problem but most of the things will go right.) = M
Pessimistic Estimate (worst case scenario which everything goes wrong.) = B
Formula to find Value for Estimate (E) = A + (4*M) + B / 6
Standard Deviation (SD) = = (B – A)/6
Now a days, planning poker and Delphi estimates are most popular testing test estimation techniques.
Functional Point Method
Functional Point is measured from a functional, or user, point of view. It is independent of computer language, capability, technology or development methodology of the team. It is based on available documents like SRS, Design etc.
In this FP technique we have to give weightage to each functional point. Prior to start actual estimating tasks functional points are divided into three groups like Complex, Medium & Simple. Based on similar projects & Organization standards we have to define estimate per function points.
Total Effort Estimate = Total Function Points * Estimate defined per Functional Point
For example:
Planning Poker
Another application of the work breakdown structure, and infinitely more fun! We’ve already discussed in a previous post why planning poker works.
To estimate the time required for testing efforts on individual tasks, write down each task on a separate piece of paper, distribute to the team members and allow some time for a discussion to take place.
After the first round of discussion, each deck the numbered card that represents his estimate of how much work is involved in the story under discussion. All estimates are kept private until each participant has chosen a card. At that time, all estimates are revealed and discussion can begin again.
This technique utilises the collective wisdom of the team to reach a fairly accurate estimation. We suggest using this free online tool if holding planning poker sessions in a single physical location is not possible.
Guidelines
- Allow for buffer time: Cut yourself and your team some slack and add some extra time to account for any unforeseen circumstances. But don’t forget Parkinson’s Law: work expands to fill all time available, so make sure to (ab)use of buffer time only if necessary, otherwise stick to the original estimate.
- Take into account the bug cycle: The testing cycle is interlinked with the bug cycle, and any problems in stability of the software you’re working one may require additional time for developers to fix it, consequently extending the testing cycle as well.
- Time is money: Make sure to consider the availability of physical (and human) resources in your test estimation. Time availability alone isn’t enough, as lack of a particular resource can leave you waiting until it is available.
- Comparative testing: If you have worked on previous (or similar) versions of the current task, then you could base your estimates using data from the previous project.
Test Estimation Process
A first approach is a reactive approach whereby we try to find a solution to the problem at hand only after it arrives.
In the second approach which can be called a proactive approach whereby we first prepare ourselves well before the problem arrives with our past experiences and then with our past experience, we try to find a solution to the challenge when it arrives.
Estimation can thus be considered as a technique which is applied when we take a proactive approach to the problem.
Thus Estimation can be used to predict how much effort with respect to time and cost would be required to complete a defined task.
Once the testing team is able to make an estimate of the problem at hand then it is easier for them to come up with a solution that would be optimum to the problem at hand.
The practice of estimation can be defined then more formally as an approximate computation of the probable cost of a piece of work.
Pre-requisites of the test estimation process
- Insights gathered from working with past experience: It is always a good practice to spend some time, recalling about past projects which posed challenges similar to the current endeavor at hand.
- The available documents or artifacts: The test management repository tools come in handy in these types of scenarios as they store the requirement and clarification documents. These documents can be referred by the testing team to clearly define the scope of the project.
- Assumptions about the type of work: Past working experience helps in making assumptions about the project. This is where hiring experienced professionals matters most.
The testing managers can pick up the brains of these people for delivering the desired results.
- Calculation of potential risks and threats: The testing team also needs to visualize the potential risks and threats and pitfalls which lie may lie for the team in future.
- Determining whether the documents have been baselined: The testing team also needs to determine if the requirements have been baselined or not. If the documents are not baselined then it is important to determine the frequency of the changes.
- All responsibilities and dependencies should be clear: The organization should clearly define the roles and responsibilities for all the persons who would be performing the estimation process.
- Documentation and tracking of the estimation records: All the relevant information to the estimation process should be documented.
- Activities which are required to be performed during the test estimation process
- Organize the team that would perform estimations
- Decompose the project into project phases and subsequent constituent activities
- Compute the estimation based upon previous projects and professional experience
- Prioritize the possible threats and come up with the approaches to mitigate those risks
- Review and document the relevant part of the work
- Submit the work to the relevant stakeholders