One common question, which always pops up on a testers’ mind is that “Why do I need Test estimation?”. The answer to this question is very simple – to avoid the exceeding timescales and overshooting budgets for testing activities.
Before I proceed further, I would like to throw some light on what is an Estimate and what does Test Estimation indicate?
What is an Estimate?
“An estimate is a forecast or prediction or approximation, which is a value that is usable for some purpose even if input data may be incomplete, uncertain, or unstable.” In other words, an estimate is approximate of what it would cost, a rough idea of how long a task would take to complete or an approximate calculation of Quantity or degree or worth.
What is Testing Estimation:
Test Estimation is the estimation of the testing size, testing effort, testing cost and testing schedule for a specified software testing project in a specified environment using defined methods, tools and techniques.
Test Estimation Factors:
• The size of the System – Depending upon the complexity and size of the system requirements, test estimations need to be prepared. Requirements are categorized into complex, medium and simple or Straight-Forward and estimations are thus prepared.
• Types of Testing Needed—As per the types of testing that needs to be performed, test estimations should be prepared. Different testing types include Functional, non-Functional, Performance and security.
• Scripting or Exploratory Testing- The estimates should include the creation of scripts and exploratory testing should include additional hours as there is no prior knowledge on the domain or application for the tester.
• Supporting Activities –The estimates should also include supporting activities which are- Retesting, Regression testing, meeting, bug reporting and Filling Timesheets etc.
• How many test cycles to be executed—No. of testing cycles required.
Test Estimations Approaches:
• Historical Data of Completed projects— Depending upon the efforts spent on the previous releases or similar projects estimates are provided.
• Organization specified Estimation Approach—An organization has certain calculation depending on the resource experience factor and the estimations are provided using the statistical data that was followed by the organizations.
• Delphi Method—- In this method, the information is gathered from the participants who are experts. In this estimation technique, each task is assigned to each team member & multiple rounds of surveys are conducted unless & until a final estimation of the task is obtained. In each round, the thought about the task is gathered & feedback is provided.
• Expert Judgement—- Depending upon the experts past working experience, the estimations are prepared. This method is more useful when there is a limitation in finding data and gathering requirements.
• Functional Point estimation approach—In this method for any given project functional points are measured. Depending on the complexity of the functional requirements the functional point factor is decided. The Functional requirements are classified into three categories- complex, medium and simple and subsequently, the estimations are calculated.
Example to calculate test estimation based on functional points:
Total Functional Points = 103
Estimation factor for requirement per point = 3.15
Total Estimation hours per resource = 324 hrs
• Work Breakdown Structure— In this method test project is broken down into small modules. The Modules are divided into sub-modules. The Submodules are further divided into functionalities and functionalities are divided into sub-functionalities. The Estimations are calculated based on the individual sub-functionalities and later consolidated to get overall project estimates.
• 3-Point Estimation— This method is based on the statistical methods in which each testing task is broken down into sub-tasks and then three types on estimation are done on each task.
1. Positive Scenarios or Optimistic Estimate (O)
2. Negative Scenarios or Most Likely Estimate (M)
3. Exceptional Scenarios or Pessimistic Estimate (P)
Positive Scenarios estimation (O) = 45 mins
Negative Scenarios Estimation (M) = 30 mins
Exceptional Scenarios Estimation (P) = 50 mins
Simple Average Estimations formula = (O+M+P)/3
Total Effort Estimation per resource = 42 mins
The components that need to be considered while preparing the testing estimates:
• Requirement Analysis
• Review and Approval
• AKD (Application Knowledge Document) updating and Lessons Learnt
• Phases Involved (SIT, UAT)
• Test Plan Efforts
• Test Case Design Efforts
• Smoke Testing Efforts
• Test Case Execution Efforts
• Defects Reporting
• Re-Testing Efforts
• Regression Testing Efforts
• No of Testers Involved
• No of cycles Involved
There is no hard and fast rule for the test estimation for a project. Your experience plays a major role in the test estimation. Working on varied projects helps you to prepare for an accurate test estimation for the testing cycle. Obviously one cannot just blindly put some number of days for any testing task. Test estimation needs to be realistic and accurate. Software Test estimations need to be provided by considering all required factors and using the appropriate estimation approach/ technique. The successful implementation of these processes leads to an overall improvement of the testing process.