Guide to Software Testing Estimation
- Hoang Duong
- May 28, 2024
- 3 min read
Software Testing Estimation: A Crucial Management Activity
Software Testing Estimation is an essential management activity that approximates the time needed to complete a task. Estimating the effort required for testing activities is critical and vital for effective test management. Accurate estimations in software testing ensure maximum coverage.

1. What to Estimate?
Resources: The resources required to perform any task in projects. These can include people, equipment, facilities, or any defined resources necessary for completing a project activity.
Time: Time is the most valuable resource in a project. Every project has a delivery deadline.
Human Skill: Human skill refers to the knowledge and experience of team members. These factors impact your estimation. For instance, a team with weaker testing skills will take longer to complete a project compared to a team with better testing skills.
Cost: This refers to the project budget. It means how much money is needed to complete the project.
2. How to Estimate?
List of Estimation Techniques in Software Testing:
Work Breakdown Structure (WBS)
3-Point Software Testing Estimation Technique
Wideband Delphi Technique
Function Point/Testing Point Analysis
Use-Case Point Method
Percentage Distribution
Ad-hoc Method
Below are the four steps for estimation. We will explore the steps to estimate based on the following content:
Step 1: Break Down the Entire Project into Smaller Tasks
A task is a piece of work assigned to someone. To perform this, you can use the Work Breakdown Structure (WBS) technique. This technique divides complex projects into modules, which are further divided into smaller modules and functions. This means the technique breaks down project tasks into the smallest possible tasks.
Example of Breaking Down Tasks for a Software Testing Project:
Main Task | Sub-Tasks |
Analyze Software Requirements Specification | - Analyze software requirements - Discuss with the dev team, BA, and other stakeholders to understand the software better |
Create Test Specifications | - Create test scenarios - Create test cases - Review and update the test case suite |
Execute Tests | - Create test data - Set up the test environment - Execute tests - Retest results |
Report | - Create bug reports - Daily status reporting |
Step 2: Assign Tasks to Project Team Members
In this step, tasks will be allocated to appropriate team members.
Task | Assignee |
Analyze Software Requirements Specification | All members |
Create Test Cases | Senior tester and junior tester |
Set Up Test Environment | Junior tester |
Review Test Cases | Test lead and senior tester |
Execute Tests | Senior tester and junior tester |
Log Bugs | Senior tester and junior tester |
Daily Reporting | Test lead |
Step 3: Estimate Effort for Tasks
We will use the Functional Point Method to estimate Size, Duration, and Cost for the tasks.
Step A: Estimate Task Size
In step 1, you broke down the project tasks into smaller tasks. Now, estimate the size for these tasks. Let's practice with a specific task: "Create Test Specifications". The size of the task depends on the size of the system functions to be tested. The function size reflects the number of user-related functions. The more functions, the more complex the system. Before estimating, you need to classify the functions into three groups: complex, medium, simple.
Based on the complexity, managers can assign weightage to each function group.
Group | Weight |
Complex | 5 |
Medium | 3 |
Simple | 1 |
Example for Clarification:
No | Module | Description | Weight |
1 | Login | Used to log into the system. Additionally, designed to block account after multiple failed login attempts. | 1 |
2 | Forgot Password | Used to retrieve a new password. | 1 |
3 | Create/Edit Admin | Add new account, edit related information such as name, email, phone, etc. | 3 |
4 | Create/Edit Corporation | Add new Corporation, edit related information such as address, date, prefecture, etc. | 3 |
5 | Create/Edit Location | Add new Corporation, edit related information such as address, date, phone, email, etc. | 3 |
6 | Create/Edit Order | Add new order, edit related information such as time, quantity, etc. | 5 |
Step B: Estimate Time for Tasks
After classifying the function complexity, estimate the duration to test them.
Total Effort: Effort to complete testing all system functions. Total Function Points: Total number of system modules. Estimate Defined per Function Points: Average effort to complete one function point. This value depends on the productivity of the member responsible for the task.
Suppose your project estimates one function point equals 4 hours. Then the total estimated effort to test all functions in Step A is:
Weightage | # of Function Points | Total |
Complex | 5 | 1 |
Medium | 3 | 3 |
Simple | 1 | 2 |
Function Total Points | 16 | |
Estimate Defined per Point | 4 | |
Total Estimated Effort (Person Hours) | 64 |
The total effort to complete the tasks above is 64 man-hours. By understanding the necessary effort, you can determine the task completion time and estimate labor costs.
Step C: Estimate Cost for Tasks
This step helps you answer the final question from the customer: "How much does it cost?" Suppose your team's average hourly wage is $5. The time needed to complete the task above is 64 hours. Therefore, the cost for this task is 64 X $5 = $320. As a project manager, you must decide how to get the highest return on investment for your company. The more accurate your project cost estimate, the better you can manage your project budget.
Step 4: Validate the Estimate
When you create a comprehensive estimate for all tasks in the project, you need to submit it to management for approval. Management will review and discuss the estimate plan with you. You can explain your estimate logically to get your estimation plan approved.
Comments