top of page

Guide to Software Testing Estimation


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.


Software Testing


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


bottom of page