In this tutorial, we will learn the approach for estimating software testing effort using the Test Case Point Estimation (TCP) technique.
Software Estimation is the process of determining the project cost, time, effort of the software project. A good estimation is important for the software project’s success.
TCP analysis is an approach to perform test estimation of Testing projects. Using this approach we can estimate test execution efforts in Testing projects.
In this approach, we will perform analysis for different testing activities.
- TCP-Generation ( Test Case Generation )
- TCP-A ( Automation)
- TCP-ME ( Manual Execution )
- TCP-AE ( Automation Execution )
The below factors can be considered for Test case generation:
Test case-ID ( A unique identifier to identify the test case in the project)
No. of steps in the Test Case
Interface with other Test Cases
Establishing a baseline Result
Determine the Test Case Complexity based on the following rules:
For Example, the weights can range from 0 to 3.
0 -> for Not Applicable
1 -> for Simple
2 -> for Average
3 -> for Complex
Based on the complexity weight we can assign test case points for the test cases. For example, below is a sample table of points. The weights in the table are only indicative and would be subject to change as per the application under test.
Look up the tables and compute the test case types.
Unadjusted TCP-G can be calculated as follows:
Unadjusted TCP-G = ( 4 * Number of Simple Test Cases ) + (8* Number of Average Test Cases X 8 ) + (12 * Number of Complex Test Cases )
Based on the Adjustment Factor:
Adjusted TCP-G can be calculated as follows:
Adjusted TCP-G = Unadjusted TCP-G * Adjustment Factor
Adjustment factor can be calculated based on several parameters of the application like:
- Domain Complexity
- i18n Support
- Integration with other systems, etc
TCP Analysis Steps
TCP Analysis includes the following steps:
Document Test Cases.
Develop Automation Scripts.
TCP Estimation Template
The purpose of the TCP template testing document is to provide a detailed listing of Test Requirements and define elicited testing requirements feature-wise.