User:Ashakawale/Test Estimation Technique sandbox

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 Technique
There are several test estimation techniques as

1. FIA (finger in the air) or best guess

2. Ad-hoc method

3. Experience Based - Analogies and experts

4. WBS

5. Delphi technique

6. Three-point estimation (successive calculation)

7. Function points / Test point Analysis

8. Percentage of development effort method

9. Percentage distribution

10. Use case point estimation method

11. Object Point Estimation Technique

Function Point Estimation

 * used to estimate test effort
 * Each function point can help in developing relevant test cases
 * Function point complexity mapped with test case complexity
 * derive test estimation
 * good starting point
 * Combined with Requirement Specifications, Design and Analysis documents, help in arriving to near to    actual test effort

Steps Involved
Four steps involved in Function Point Estimation Technique.

Object Point Estimation Technique

 * Can be used to estimate test effort
 * Each object point can help in developing relevant set of test cases or test suites
 * Re-usability, modularity can be built as against the FP based approach
 * Object points are most often than not used as indicators of estimation
 * Accuracy on estimation is an iterative process
 * Ideally suited if you have more than one testing project in the same domain

Three Point Estimation Technique
3-Point Software Testing Estimation Technique is based on statistical methods in which each testing task is broken down into sub tasks and then three types on estimation are done on each tasks.

The formula used by this technique is:

Test Estimate = (P + 4*N + E) / 6

Whereas

P = Positive Scenarios

N = Negative Scenarios

E = Exceptional Scenarios

Use Case Point Estimation Method
Use-Case Point Method is based on the use cases where we calculate the unadjusted actor weights and unadjusted use case weights to determine the software testing estimation. This technique is based on statistical methods In this technique, task is broken down into subtasks (similar to WBS) and then three types on estimation are done on each chunk –


 * Optimistic Estimate (Best case scenario in which nothing goes wrong and all conditions are optimal.) = a


 * Most Likely Estimate (most likely duration and there may be some problem but most of the things will go right.) = m


 * Pessimistic Estimate (worst case scenario which everything goes wrong.) = b

Formula to find Value for Estimate (E) = a + (4*m) + b / 6 Standard Deviation (SD) = = (b - a)/6

The formula used for this technique is:
 * Unadjusted actor weights = total no. of actors (positive, negative and exceptional)
 * Unadjusted use case weight = total no. of use cases.
 * Unadjusted use case point = Unadjusted actor weights + Unadjusted use case weight
 * Adjusted use case point = Unadjusted use case point * [0.65+ (0.01 * 50]
 * Total Effort = Adjusted use case point * 2

Delphi technique
In Wideband Delphi Method, work breakdown structure is decomposed for each task and is distributed to a team comprising of 3-7 members for re-estimating the task. The final estimate is the result of the summarized estimates based on the team consensus. This method speaks more on experience rather than any statistical formula. This method was popularized by Barry Boehm to emphasize on the group iteration to reach to a consensus where the team visualized on the different aspects of the problems while estimating the test effort.

For any software testing estimation technique, it is highly recommended that following factors should be taken into account:
 * Domain Knowledge and core requirements
 * Risks and complexity of the application
 * Team Knowledge on the subject/skills
 * Historical data for the previous estimation for improvement and accuracy
 * Estimation should include buffer time
 * Bug cycles for the project
 * Resources availability