The work of the QA team isn’t just participation in all the stages of the development process. It also involves the correct estimation of a product considering time and financial costs. Test estimation is a process to set the time needed to perform assigned tasks. The propriety of testing evaluation helps to manage and control the implementation of approved tasks.
This procedure should consider the estimation of the following points:
- Time to implement tasks at all stages of development by a software testing company
- Technical and human factors to accomplish confirmed tasks
- Level of technical expertise and experience of all team members
- Financial calculation and setting the budget for the product being developed.
Now, let’s focus on the most popular and relevant methods of time estimation for software testing
1. Work Breakdown Structure
This is a basic method that involves the work distribution structure: dividing project tasks into smaller subtasks with a clear time limit; dividing tasks between team members and completing assigned tasks by each team member within an estimated time frame.
2. Three-Point Estimation
This method involves determining the comfortable conditions for the QA team to perform tasks. Also, this approach divides tasks into subtasks. These subtasks should have three possible options for implementation:
- The level of a team is very high and implementation of work tasks is not difficult (100 man-hours (O)).
- Your company has sufficient level to complete tasks, in case of some difficulties, it takes an acceptable amount of time to solve them which doesn’t affect the final result (150 man-hours (N)).
- The level of the team doesn’t allow to fully implement the approved tasks in a short period. It takes a lot of time to complete them. And if there are any difficulties, it’ll be also your task to resolve them (200 man-hours (P)).
Using the following values: O=100, N=150, P=200, calculate the average value of the test score (E):
E = (O+4*R+P)/6 E = (100 + 4 x 150 + 200)/6 = 150 man-hours
Note: Consider the calculation of the standard deviation (SD) – the limits within which E can vary:
SD = (P - O)/6 SD = (200 - 100)/6 = 16.7 man-hours
Result: the QA team will need 150+/- 16.7 man-hours to implement the subtasks.
3. Function Point Analysis
Function Point Analysis is a method of indicator of functional evaluation by scoring: determination of time assessment, considering the labor input of the task, e.g. from 1 to 5 points. After dividing into modules, each one receives a point (FP – functional points) depending on its complexity. Easy tasks should be scored lower, difficult ones – higher.
The calculation is done according to the formula of total effort: total effort = total points x score determined for one point. The score determined for one point is a given value, which is determined by the QA team lead based on his or her experience. It is calculated based on time, cost, or size.
For example, the score for FP is $100. The whole project is divided into three groups of modules:
Complex modules (FP 5) - 2 pcs. Medium modules (FP 3) - 10 pcs. Simple modules (FP 1) - 5 pcs. Total effort = 45 x 100 = $4,500
Note! This method may give the wrong results. Remember it when calculating.
Delphi is a method of time estimation with interaction between managers and leading specialists of software testing lab which includes the following aspects:
- analysis of assigned tasks, as well as individual estimation of their performance in time-space with the argumentation of their thoughts;
- opportunity to get a lot of answers on the preliminary results of discussion;
- communication between the specialists and other members of the team, which contributes to a review of the former positions with the colleagues’ opinion;
- the final stage must be completed after a limited number of rounds, consensus or stability of results.
Kanban is a visualization methodology. Ability to set the load, as well as team members, monitor new functionality, and progress in terms of tasks, as the entire work process is built on a Kanban board.
Scrum is a framework for structuring the process involving:
- splitting the work process into sprints on the part of the developers
- writing of plans
- analysis and evaluation of dimensions
- prioritization management
- predicting releases
- working software is delivered at the end of the sprint.
Keep in mind that testing estimation methods will be selected based on each particular project. Determining the time estimate for testing a software product is a serious process that must be approached responsibly.