Software Test Estimation Techniques (Test Effort Estimation Complete Guide)

By Vijay

By Vijay

I'm Vijay, and I've been working on this blog for the past 20+ years! I’ve been in the IT industry for more than 20 years now. I completed my graduation in B.E. Computer Science from a reputed Pune university and then started my career in…

Learn about our editorial policies.
Updated February 26, 2024

For the success of any project, test estimation and proper execution is equally as important as the development cycle. Sticking to the estimation is very important to build a good reputation with the client.

Experience plays a major role in estimating the “Software Testing Efforts”. Working on varied projects helps us to prepare an accurate estimation of the testing cycle.

Obviously one cannot just blindly put some number of days for any testing task. Test estimation should be realistic and accurate.

This tutorial will include some important pointers that will be very helpful to prepare accurate test estimation in a very simple manner.

Software Test Estimation Techniques

Test Estimation Process

“Estimation is the process of finding an estimate, or approximation, which is a value that is usable for some purpose even if input data may be incomplete, uncertain, or unstable.” [Reference: Wikipedia]

We all come across different tasks, duties and deadlines throughout our lives as professionals, now there are two approaches to find the solution to a problem.

The first approach is a reactive approach whereby we try to find a solution to the problem at hand only after it arrives.

In the second approach which can be called a Proactive Approach, we first prepare ourselves well before the problem arrives with our past experiences and then with our past experience, we try to find a solution to the challenge when it arrives.

Estimation can thus be considered as a technique that is applied when we take a proactive approach to the problem.

Thus Estimation can be used to predict how much effort with respect to time and cost would be required to complete a defined task. Once the testing team is able to make an estimate of the problem at hand, then it is easier for them to come up with a solution that would be optimum to the problem at hand.

The practice of estimation can then be defined more formally as an approximate computation of the probable cost of a piece of work.

Also, read => 7 Factors Affecting Test Estimation of Selenium Automation Project

Basic Pre-requisites

Given below are the Basic Prerequisites for the Test Estimation Process.

#1) Insights gathered from working with past experience: It is always a good practice to spend some time, recalling past projects which posed challenges similar to the current endeavor at hand.

#2) The available documents or artifacts: The test management repository tools come in handy in these types of scenarios as they store the requirements and clarification documents. These documents can be referred by the testing team to clearly define the scope of the project.

#3) Assumptions about the type of work: Past working experience helps in making assumptions about the project. This is where hiring experienced professionals matters most. Testing managers can pick the brains of these people to deliver the desired results.

#4) Calculation of Potential risks and Threats: The testing team also needs to visualize the potential risks and threats and pitfalls which lie may lie for the team in the future.

#5) Determining whether the documents have been baselined: The testing team also needs to determine if the requirements have been baselined or not. If the documents are not baselined then it is important to determine the frequency of the changes.

#6) All responsibilities and dependencies should be clear: The organization should clearly define the roles and responsibilities for all those who would be performing the estimation process.

#7) Documentation and tracking of the estimation records: All the relevant information to the estimation process should be documented.

#8) Activities to be performed during the test estimation process:

  • Organize a team that will perform estimations.
  • Decompose the project into project phases and subsequent constituent activities.
  • Compute the estimation based on previous projects and professional experience.
  • Prioritize possible threats and come up with approaches to mitigate those risks.
  • Review and document the relevant parts of the work.
  • Submit the work to the relevant stakeholders.

Most Prominent Test Estimation Techniques

Some of the most important techniques for test estimation are:

  • Test point estimation
  • Work-phase based estimation
  • Use case point estimation

How and where do we use these techniques:

#1) Test Point estimation is a simple and easily understandable estimation technique that is widely used across the software testing spectrum. Iterative phases and simplicity are the most important features of this particular technique.

#2) Work-phase based estimation is the estimation technique which is used whereby a guess estimate is made on a particular phase (normally the shortest and simplest of the phases) and then the testing team gradually adds on other phases into the initial estimation and finally comes up with an appropriate estimation.

#3) Use-Case Point estimation technique is the estimation on the use cases where the unadjusted actor weights and unadjusted use case weights are used to determine the software testing estimation.

Details of Test Point Estimation Technique

The test point estimation technique is done by following the steps listed below:

test point estimation technique

(The following weights, which may vary from project to project, could be considered under this paradigm – Some of these weights are the weights for the programming language based upon the complexity of the code, application weight based upon the type of application and test weights which are assigned based upon the different phases of software testing.)

Unprocessed Test Points are multiplied by CWF to obtain the testing size in the Test Point’s Size.

Productivity Factor indicates the amount of time for a test engineer to complete the testing of one Test Point.

Testing Effort in Person Hours is computed by multiplying the Test Point size by the Productivity factor.

For the computation of the test point estimation technique, we consider the following variables.

  • Test requirement complexity

Test requirement complexity

  • Interface with other requirements

Interface with other requirements

  • Total number of verification points

Total number of verification points

  • Baseline test data

Baseline test data

We then need to consider weight vectors for each of the data variables and organize them in the following manner.

weight vectors for the data variables

Adjustment factor = Average of (product of complexity weight and factor weight) / 30

Adjustment Test Point for Test case design = Total Test Point X (1 + Adjustment factor for Test Case design)

Adjusted Test Point for Test case execution = Total Test Point X (1 + Adjustment factor for Test Case execution)

Total Test Point (normalized) X (1 + Adjustment factor for Test Case design/execution) = Adjusted Test Point for Test Case design/execution

Total effort in Person Hours (PH) = Number of Normalized Test points / Productivity (in Normalized Test points per Person Hours)

Test Estimation Examples

Let’s try to apply the above formulation to another practical use.

Suppose we end up with a test requirement whereby we have 5 test scenarios to test.

Now let’s say Test scenario 1 has got 5 test expected results, test scenario 2 has 6 test expected results, test scenario 3 only 2 test expected results, test scenario 4 9 test expected results, test scenario 5 also 9 test expected results, respectively.

We classify the test scenarios in three classes i.e., complex, simple and moderate based upon the total number of expected results present in these three classes.

Complex classes will have more than 7 expected results whereas the simple ones will consist of less than 5 expected results and the moderate scenarios would consist of between 4 to 7 expected results.

We thus classify test scenario 1 and test scenario 2 as moderate scenarios, scenario 5 and scenario 6 as complex ones and test scenario 3 as simple.

We will now apply test points to all these scenarios. We applied 5 test points for complex classes, 3 for moderate ones and 2 for the simple scenarios.

We multiply the assumed test points with the total number of expected results in all these test scenarios. So we end up with the following approximations:

Scenario 1: 3 test points * 5 test expected results = Adjusted test points = 25
Scenario 2: 3 test points * 6 test expected results = Adjusted test points = 30
Scenario 3: 2 test points * 2 test expected results = Adjusted test points = 4
Scenario 4: 5 test points * 9 test expected results = Adjusted test points = 45
Scenario 5: 5 test points * 9 test expected results = Adjusted test points = 45

So considering that we need to apply for, say, 5 Person Hours for each adjusted test point we end up getting the following approximate result.

Test Scenario 1: 25 adjusted test points * 5 Person Hours = 125 Person Hours
Test Scenario 2: 30 adjusted test points * 5 Person Hours = 150 Person Hours
Test Scenario 3: 4 adjusted test points * 5 Person Hours= 20 Person Hours
Test Scenario 4: 45 adjusted test points * 5 Person Hours = 225 Person Hours
Test Scenario 5: 45 adjusted test points * 5 Person Hours = 225 Person Hours

So the total approximate person-hours is: 745 Person Hours

Use Case Point Estimation Method

Use-Case Point Method is based on the use cases where we calculate the overall test estimation effort based on the use cases or the requirements.

Given below is a detailed process of the use case point estimation method:

Use case point estimation method

An example of the same is that, in a particular requirement we have 5 use cases, use case 1, use case 2,…, use case 5 respectively. Now let us consider that use case 1 consists of 6 actors, use case 2 consists of 15 actors, use cases 3, 4 and 5, 3, 4 and 5 actors respectively.

We consider any use case which involves the total number of actors as less than 5 as negative, any use case with the total number of actors is equal to or more than 5 and less than or equal to 10 as positive and any use case with more than 10 actors as exceptional.

We decided to assign 2 points for the exceptional use cases, 1 for the positive ones and -1 for the negative ones.

Thus we categorize the use cases 1 and 5 as positive, use case 2 as exceptional and use case 3, 4 as negative respectively based on our above-stated assumptions.

So the Unprocessed actor weights = Use case 1 = (total number of actors) 5 * 1(the assigned point) = 5. Similarly

Use case 2 = 15 * 2 = 30 .

Repeating the process for the rest of the use cases we receive the Unprocessed actor weights = 33

Unprocessed use case weight = total no. of use cases = 5

Unprocessed use case point = Unadjusted actor weights + Unadjusted use case weight = 33 + 5 = 38

Processed use case point = 38 * [0.65+ (0.01 * 50] = 26.7 or 28 Person Hours approximately

Work-Phase Breakdown Technique

The work phase breakdown technique can be described in the following steps.

  • Break down the overall work into phases.
  • Start with the simplest phase and assign an approximate estimation value to it.
  • Then proceed with identifying the next possible phase which can be commenced once this phase is completed.
  • Derive a possible set of approximation values that could be applied to this phase and choose the maximum value amongst all the derived approximation values.
  • Sum up the approximated estimation value by adding the current phase effort estimation value to the already existing value.
  • Continue with steps 3 to 5 until all the phases identified in the first step are exhausted.
  • Accept the final approximate estimate value as the ultimate.

Suppose in a requirement there are 5 required phases. In the initial phase 1, we assume that the total effort needed is 35 person-hours and then we commence the next phase 2 for which we have 4 comparative assumptions of 35, 45, 55 and 65 respectively.

We consider the 65 person-hours which is the maximum value here. In phase 3 , 4 ,5 we come up with estimates (12 , 33, 43 , 54) , (15 , 10 , 7 , 8) and (2 , 16 , 5 , 13) respectively. By applying the said principle we end up with 185 Person Hours respectively.

I am putting information on – How to estimate testing efforts for any testing task, which I learned from my experience.

9 General Tips on How to Estimate Testing Time Accurately

Factors Affecting Software Test Estimation, and General Tips to Estimate Accurately:

#1) Think of Some Buffer Time: The estimation should include some buffer. But do not add a buffer, which is not realistic. Having a buffer in the estimation enables us to cope with any delays that may occur. Having a buffer also helps to ensure maximum test coverage.

#2) Consider the Bug Cycle: The test estimation also includes the bug cycle.  The actual test cycle may take more days than estimated.

To avoid this, we should consider the fact that the test cycle depends on the stability of the build. If the build is not stable, then developers may need more time to fix it and obviously, the testing cycle gets extended automatically.

#3) Availability of All the Resources for Estimated Period: The test estimation should consider all the leaves planned by the team members (typically long leaves) in the next few weeks or next few months. This will ensure that the estimations are realistic.

The estimation should consider some fixed number of resources for a test cycle. If the number of resources reduces then the estimation should be re-visited and updated accordingly.

#4) Can We Do Parallel Testing? Do you have any previous versions of the same product so that you can compare the output? If yes, then this can make your testing task a bit easier. You should think about the estimation based on your product version.

#5) Estimations Can Go Wrong – So re-visit the estimations frequently in initial stages before you commit it: In the early stages, we should frequently re-visit the test estimations and make modifications if needed. We should not extend the estimation once we freeze it unless there are major changes in requirements.

#6) Think of Your Past Experience to Make Judgments! Experiences from past projects play a vital role while preparing time estimates. We can try to avoid all the difficulties or issues that were faced in past projects. We can analyze how the previous estimates were and how much they helped to deliver the product on time.

#7) Consider the Scope of Project: Know what is the end objective of the project and list of all the final deliverables. Factors to be considered for small and large projects differ a lot. Large projects typically include setting up a testbed, generating test data, test scripts, etc.

Hence the estimations should be based on all these factors. Whereas for small projects, typically the test cycle includes test case writing, execution and regression.

#8) Are You Going to Perform Load Testing? If you need to put considerable time into performance testing then estimate accordingly. Estimations for projects that involve load testing should be considered differently.

#9) Do You Know Your Team? If you know the strengths and weaknesses of individuals working in your team then you can estimate testing tasks more precisely. While estimating one should consider the fact that not all resources may yield the same productivity level.

Some people can execute faster when compared to others. Though this is not a major factor, it adds up to the total delay in deliverables.

Conclusion

Software test estimation is a practice that requires the involvement of experienced professionals as well as the introduction of industry-wide best practices like test case point and use case point methods.

It is also important to adopt an open mind for customizing the required processes. The successful implementation of these processes leads to an overall improvement in the testing process.

This is a guest article by Author “N. Sandhya Rani”.

Was this helpful?

Thanks for your feedback!

Recommended Reading

72 thoughts on “Software Test Estimation Techniques (Test Effort Estimation Complete Guide)”

  1. ~ Availability of All the Resources for Estimated Period ~
    How do you think this is the part of effort estimation?
    Well, if you say so – the “general tips” provided by you is for completion of “TEST EXECUTION” in “ESTIMATED” time and not really about Effort Estimation.

    Please clarify if we are taking about test execution or test estimation ?

    Reply
  2. Hi all, I reviewed the complete conversation of this article and feel that the effort estimation is something which depends on the Test policy of the organization too. Agree that all the factors mantioned above are also considered in estimation but the experience is always the key for good estimation.
    Leaving one question here…
    What is the phase when estimation happens in STLC. If you can share how and when happens in ur organization it would be great.

    Reply
  3. Just two cents from my side:
    Disclaimer: I am just mentioning my own experience of evaluating testing efforts for any project. It may not suite someone and may make sense for others. Please ignore, if my post does not help anyone.

    @Pradeep Soundararajan: I really liked your post on your blog site 🙂

    Factors affecting Testing Estimates

    1) What is the total development time for that particular feature. Development time actually guides two things; (A) Complexity of Application / Feature and (B) Development Length of the Application or Feature. We consider approximately 20% as testing time for an application which takes 2 – 3 man months for development.

    2) An application above 3 months of development time shall have 2% added for testing over and above 20%, for every one months of effort being added in development. This is needed to do multiple regressions of the builds.

    3) We spend 3% of testing time in writing test plan and acceptance test cases.

    4) We spend 5% of testing time in writing Bug Reports. Thus leaving 12% of time for actual functional testing for an application of length of 2 – 3 man months.

    5) If Automation is included then writing acceptance test scripts will take additional 5% of time over 20%.

    6) Who is the development team certainly matters for us. If any less experienced developer is scheduled to work on a module, we increase the testing time to certain extent. Estimates for that depends on my past experience with that development team.

    7) Are we using any established CMS for building the website. If yes, then we reduce the testing efforts from 20% to 18% or so, though this decision totally depends on the complexity of the project.

    Reply
  4. Hi Sandya

    Good effort.

    As you said experience play major role in estimation.
    Not agree with article point 1, it will not work. because i don’t think none companies agrees with “buffer time” otherwise you have to be specific.

    While estimating have to cosider capability of team members. Means to do one job one person required one
    man day(i.e.8 hours) whereus other persone required 1.5 manday.

    Reply
  5. my tip no 10
    very simple method tho estimate testing efforts:

    Testing time= developement time/3

    this is the formula we have been forced to use by our management!!!

    Reply
  6. hi
    sandhya
    i am new to software testing plz give your valuable suggitions , when you were new software testing how you improve your software testing skills

    Thanks&Regards
    venkatesh

    Reply
  7. I think test estimation is depends on your past project experiences( means how you can utilize ur previous done project experiences) and availability of resources during testing(which mainly depends on your team members).

    Reply
  8. I think Senior Tester should review the complete product documents to have a look there are how many screen and modules need to test,so that he/she must have a fair idea of estimation.

    Reply
  9. Hi Sandhya,

    Above all thanks a lot for these tips/guardrails for estimating test efforts.

    The following three points which you mentioned in your article are the ones where all estimations went wrong and we need to work overtime, on weekends on holidays to fix it right – to maintain a good business relation with our clients, and relentlessly to say project level escalations if it goes beyond the testing budget in a fix-bid project:

    – Buffer Time
    – Considering the Bug Lifecycle – this includes defects retesting, regression and smoke testing time frames
    – Considering the different forms of testing beforehand as per the client requirements (viz. Performance/Automation/Security/Localization (language based)/Environment Compatibility testings

    Apart from the above mentioned points the taking into consideration the availability of resources (expertise in the testing project technology) is also recommended – say the tool used is PEGA BPM but currently there are only 1 resource expertise in that tool from testing domain but the requirement is for 4, so the rest 3 we need to hire and its a long time process, its good to know beforehand to plan accordingly.

    Moreover, the one you mentioned are not any technique for testing effort estimation rather some best pratices to make it better, to ensure a successful quality delivery of a project and certainly increasing the revenue of the company for that FY by getting more testing projects.

    Regards,
    Debojit Das

    Reply
  10. I agree with Smruti points while estimation. We can consider few more depends on your project
    6. Browser compability
    7. Security testing(basic security detail testing based on SOW)
    8. Flow of the system

    thanks

    Reply
  11. One more menthod of testing estimation is that the tema lead can make the tem to fill a task sheet every week in which they can fill the time spend on various test activities . Based on this sheet the time aestimation can be determined by dividing the total time spend on activities by the whole team by the number of test cases executed.
    For example if total team spend 5 hours for 58 test cases to execute then in one hour the team execute around 10 test cases.Based on this the future testing estimation can be made.

    Reply
  12. Hi every one,
    What are the available estimation techniques available for software testing. Can any body provide materials how to estimate sothat i can use the estimation technique in my testing project.
    Best Regards,
    Minhus

    Reply
  13. Sandya – Your article is simple and practical.

    Estimations should always be given practically. Its not a good practice to rely on theory concepts (formulas). Formula based estimates fails most of the times because those are made with fixed set of rules. Rather we can use these formulas as a base reference to compare with our Customized estimates.

    Clients will always like commitment. They will be happy to see if our actual outcome is quite near to estimated hours.

    @ Mr.Pradeep Soundararajan – It seems you are studying a lot than thinking practical. Please come to practical world man.

    Mahesh
    Google Inc

    Reply
  14. The given artical for the estimation is quite ok but it highlights pre considerations before doing the test or effort estimation. It will be useful if some more details are provided with an example

    Reply
  15. @Suhas

    There are few test estimation techniques like
    • WBS
    • Test Point Analysis
    • Function Point Analysis
    • Use-case analysis

    But will these techniques guarantee you a perfect estimate? It is only the experience on domain and work experience on application will get you a “close to right” estimate.

    I agree with you that points discussed by Sandhya affect during execution but with a broader prospect all the risk have been covered, accordingly time is estimated. Thinking proactively on all the risk areas is not a bad technique.

    If possible you explain one estimation technique which you think will yield the best results.

    Reply
  16. The Points Which have been Mentioned in this Article is the Factors which will influence the estimation but is not the estimation technique.

    Reply
  17. I agree with Wasim’s approach. In addition, QA need anlalyze the time to write test cases based on Business/functional requirement document. The amount of time allows a tester to determine an approximate time for test execution. There are other method involved to create an accurate test estimate. This is just one of the method to create test estimate.

    Hope this helps little bit to some of our readers.

    Reply
  18. @ Suhas
    @ Ambarish Karnik

    I guess you people did not read the following in the actual article:

    In this article I am trying to put some points in a very simple manner, which are “helpful” to prepare good test estimations. I am “not” going to discuss the “standard methods” for test estimations like testing metrics, instead I am putting some tips on – How to estimate testing efforts for any testing task, which I learned from “my experience”.

    The article is about providing some “general tips” while preparing test estimation.

    Reply
  19. Hello,
    Nice article for reference so thank you
    When we were going through the estimations examples we noticed incorrect calculation being applied

    Scenario 1: 3 test points * 5 test expected results = Adjusted test points = 25 (This should be 15)
    Scenario 2: 3 test points * 6 test expected results = Adjusted test points = 30 (This should be 18)

    Is it possible for you to get this rectified

    Reply
  20. In my experience, some time must be allowed for out-of-the-box testing, that is, subjecting the product to random scenarios that are spontaneously thought of by the Test team. This process helps the Test Engineer/Analyst to break free from the mould of the test cases, process etc and authentically attempt to break the product. A previous assignment I had worked on scheduled this random testing procedure by the entire test team. The result was some hidden defects that test cases could not uncover.

    Reply
  21. Hi All,

    The above points mentioned are the points which should be keep in mind before sending effort estimates to the client. Can any body tell the formula how the effort estimates can be given for any scenario.

    Thanks,
    Ravi

    Reply
  22. @All,

    By going through the article, it gives an idea more of pre-requsites before starting an estimation fo the testing effort.
    The article gives provide checklist which needs to be considered while doing estimations.

    I would request Sandhya to come up with more elaborative estimation techiniques that would be helpful for the new joiners who would be insterested in estimations.

    Regarding Comments from ALL: I would appeal to the community to rather provide valueable inputs on the topic as per their experience and help All in this initiative rather finding faults and ego hurtings….

    Reply
  23. If 100 test cases are there.. How do we estimate ?
    Question : – 1. how to we calculate effort estimation for test designing.
    Question : 2- How do we calculate effort estimation for test execution.

    Reply
  24. @ Wasim –

    The point above affect the execution – There is a difference between execution and estimation and am trying to make that a point here.
    I didnt say FPA gives the perfect estimation, I just gave the example of estimation technique.

    Regards, Suhas Majale

    Reply
  25. Hello
    Well written but nothing towards estimation. I am sorry to say but in testing everything should be measurable. And for that we must talk in terms of quantity, time, No. etc. I cannot measure the estimation effort from the above article.
    Its well written !! No doubt but did not solve the purpose.

    Regards

    Reply
  26. Hi Sandhya,

    You have written a simple article which is very practical and gives light to points which have to consider while preparing a test estimation. I totally agree with you on points 2,6 and 9. Keep writing…..

    Reply
  27. Think of Some Buffer Time – Do we need to think of the buffer time even before we have the estimation?
    Consider the Bug Cycle – This would be considered in the regression testing effort
    Availability of All the Resources for Estimated Period – We are doing the effort estimation here, if we check teh availability of the resources and then estimating – are we doing it right??
    Can We Do Parallel Testing – If we do not have the older version of the application wont be we having the expected results for each of the test case?
    Consider the Scope of Project – Based on this only you might have come up with the test plan.

    Are we not discussing any formal ways of test effort estimation – like function point analysis, Estimation using Usecases, Data points etc ???

    Reply
  28. @Suhas

    Lets take an example, the initial estimations were prepared using 3 resources (who will be executing the tasks) for 2 months . Now one of these resources is not available after 1 month and we have proceed only with 2 resources. So in the rest 1 month only 2 resources have to complete the task. This will ultimately extend the no. of days to finish the task. Test estimations are obviously used for test execution. (one is supposed to execute task within the estimated time)

    Reply
  29. I have heard that in general we can take 40% of the development effort as the baselined effort for estimation of the testing time. But in current day scenario, wherein developers have various codes at stake of their googling, can we really benefit from that approach. However even some arguments have come in this regard, klike we have test cases for sign in features also avaialble with us, so it is indeed very tough on this count.

    Reply
  30. Agree with @Pradeep Soundararajan –

    I am not totally agree with point “Sticking to the estimation is very important to build good reputation with the client.”

    Before writing the article please make sure that you are not spreading the wrong information.

    I am not asking you to stop writing but keep in mind that spreading correct message to the world.

    – Iyer Swami

    Reply
  31. @Amit
    Thanks for your comment. before puting my thought I needed to go through all the comment twice to analyse the mentality of those guys-
    @ Pradeep Soudararajan and @ Ambarish Karnik.
    I have played different role in different time. Estimation at the end depends on the people who executes.
    @Ambarish: lets say you are the best person in the world in estimation and you are not wel known with your team or might you have been approached by one client to do the estimation. You have done it. How much assurity you give that it is going to as per your estimation? It really depends on the team co-ordination and the level of skill.

    Reply
  32. Hi,

    Informative article. There is a lot of practicality in tips given.
    My viewpoint given below hopefully adds value….
    Add buffer time:- I believe, this is required to absorb the foreseen and unforeseen risks during planning and execution of test efforts. Previous experience with the older version of the product helps here. Buffer time can be added to estimates, as risk management effort in consent with client. We need to convince client about the risks foreseen based on the previous project experience. Client might say yes if the buffer time added is realistic. For e.g. if offshore team is working on a project, then remote connectivity might slow down the pace of execution or cause downtime if getting disrupted. The previous experience may count here and can be added as buffer time for an activity.E.g. test case execution time increased by some factor if done offshore.
    Talking to team who has worked upon the previous project version adds value by coming up with foreseen risks.
    To stick to estimated and agreed timelines, I believe, it requires:-
    1) Team co-ordination with dedication
    2)Continuous monitoring of progress on project activities
    3)Client support for achieving the goal of the project
    4)Sustained motivation of team members
    5)Monitoring of risks encountered and corrective actions
    And the list goes on…..:)

    Reply
  33. Hi,

    The article is even not elementary level. At least there should be some level for articles to be published here. Do not unnecessarily waste everybody’s time by publishing such low level articles.

    Regards/Simply Tester

    Reply
  34. Hello Sandhya,

    I am really sorry to say that, this article is definitely not about ‘How to estimate software testing effort’ but about ‘How to avoid slipping software test efforts’.

    I say this because…
    1) There is not even a single estimation technique you talked about
    2) The article starts with a point ‘Think of Some Buffer Time’ ahhh pleaseee!! To add buffer to your estimates, you need to have the estimates in the first place!
    3) Leave plans of Team members?? You should consider this, once you have the estimation in first place!
    And so many more points, I can write…

    Hi Vijay (Owner of the site),

    I really didn’t expect an article of this “quality” from Software Testing Help!

    -Ambarish Karnik

    Reply
  35. I wanted to bring to your attention that in agile methodology, the estimation technique could be your past experience because once the sprint plan is published than those resources will be engaged till the release of the project so there capacity of 160 hrs (4 weeks) by default is charged till project ends. So number of resources can be considered based on estimation and then there loading will be default 160 hrs till project ends.

    Reply
  36. Great Sandhya,

    You have something in you that’s the reason your article is been published. Keep writing you will do good.

    All the very Best!

    Cheers
    Tanzypash

    Reply
  37. Adding to the above discussion – Time for Compatibility should be calculated, whether it is OS or Browser compatibility

    Reply
  38. The 10th point can be
    Considering different functional and non functional testing activities
    for example:
    1. GUI testing
    2. Validation
    3. DB verifications
    4. Regx
    5. Boundary Values etc

    This is one of the way i generally follow in my recent job.

    Thanks,

    Reply
  39. @Sandhya
    Its a Nice article the only thing which i found in this article is the description is too generic can you please include some specific estimation technique like some measurement metrix or estimation of criticality or complexity of application.

    Reply
  40. Thanks Sandhya,
    Really Nice article..
    By which we can consider the points while preparing the estimate.
    And agree to Amit too…It took long time to read all the comments than the actual topic. 🙂

    Reply
  41. Points given by “N. Sandhya Rani” is really owesome,
    one point that I think is most important is to check
    “Is the build Stable or not”?
    With this answer we will decide 90% of our estimation time.

    Reply
  42. Thanks for the ‘general’ tips. Made a good read. I would appreciate if you can follow this post with an post detailing standard estimation techniques.

    Look forward to your post.

    Cheers

    Reply
  43. Hi,
    Very good article!
    For the people who actually provide estimates on recurrent bases your article makes sense.

    For the once that didn’t read the ISTQB Foundation syllabus it might be a bit difficult to comprehend that estimating your own work is something that is based solely by work experience. If you work and you are keeping an eye on metrics you will know how long it will take you to test a certain item.
    In order to make it simple i use to brake the system in a list of testing targets/areas [at high level at first] then i re-view the list with the production team/testing stakeholders, then i take each item and think to a use case which will exercise that item, and then i think how long it will take me to execute that use case, add 20% buffer, and multiply with the number of test session i think i will need to perform on each environment = High Level Estimates.
    When the project development progresses and more information is available, i make a risk analysis on each item and i develop more use cases for the high risk areas. Based on that i update the High Level Estimates and communicate to the PM. If the estimated time exceeds the project plan, then i do an assessment with the PM and the Dev Lead to optimize the tests [bsed on risk priority or other conventions].

    Hope it helps!

    Regards,

    Reply
  44. The points covered as part of this article directly or indirectly effect the test estimates. This is a nice article. I don’t agree with suhas on Function Point Analysis (FPA) will give right estimates. It strongly don’t believe in FPA.

    Reply
  45. hi
    Sandhya

    very good article
    I agree with you , but only if we have experiance then only we estimate time apporximatly ,but most of the time we can’t estimate accuratly.
    thank you
    venkatesh

    Reply
  46. @Pradeep Soundararajan – you Sir need to learn how to provide feedback. Bullying someone with good intentions is not doing you any good.

    You can be as good as it gets on your domain (which i doubt it since professionals never brag about themselves) but without knowing how to communicate your ideas in a diplomatic and proactive manner it makes you worthless within your organization.

    In this case, i would prefer to have in my team a junior with good intentions than an expert with a bad attitude.

    Reply
  47. Good Article!
    I would add a line item called “Humanize” to the textbook effort estimation methods and bring all these points under that line item. It is because of certain people like that I observed in the comments here who blindly followed the text book methods and abused the writer, engineers working at the task level spend sleepless nights and their weekends working at office.

    Reply
  48. Hello Sandhya,
    you are right you should know your team.
    If your team understand requirement very well and team will start discussion on requirement then you get idea where we are and you can estimate easly with buffer time.
    Parallel testing is fully depends upon which model we are using. For parallel testing I think its fully different kind of estimation need.

    Reply
  49. One important thing to share here – whenever your estimation is done – its done in number of hours. For the given work you estimate the number of hours that is required. Most of the time calculated in man hours. The unit would be FTE hrs (1 FTE – Full Time Employee hours would be 160 hrs). Once you do the estimation then the work is allocated for the execution. So you may have 10 testers to execute it or 1 tester to execute it – that all comes under execution.

    Reply
  50. We are looking for fresh engineering graduates with the following eligibility to work out of our Bangalore facility:

    Ø Engineers – B.E/B.Tech with 70% and above

    Ø Graduation year of pass out – 2009

    Ø XII Std – 75%

    Ø X Std – 75%

    If you have any of your acquaintances who satisfy the above criteria, you may please ask them to apply through the following link:
    GO TO CALSOFTGROUP.C O M
    GO TO CAREERS
    GO TO APPLY FRESHERS
    JUST APPLY

    Shortlisted candidates will be called for a technical written test to be held in Bangalore, shortly.

    Please note that:

    Ø candidates not meeting any one of the above criteria will not be considered

    Ø applications directly sent to the recruitment / HR team at Bangalore / Chennai will not be considered

    Ø applications registered thro’ the above link will only be considered

    Ø the above link will be open only till EOD of 15 Dec 09 and applications received beyond 15 Dec 09 will not be considered.

    Reply
  51. In one of the interview, panelist asked me a question. how do we estimates when the requirement itself is not clear /not given. Thanks in advance.

    Reply
  52. @Amit I agree with your comments, this article is simple and conveys the idea.
    @Amit good comment on Pradeep Soundarajan’s comment.

    @ Pradeep Soudararajan

    In our own words “Please be more valuable to the community of software testers.” It applies to you too. Why do you keep bringing cricket example in testing? Testing is not a game Sir, so stop quoting examples from cricket….

    For your other comment

    “at least discuss it with people like me who would test your ideas up front before you consider writing more.”

    You lack communication skill, that is all I can say…

    Reply
  53. In order to gain knowledge on the estimation process, I think we need to revisit once the project is complete to compare the estimated value Vs Actual value. This would give us the confirmation whether we are on the right track or should we work on the estimation to include or exclude certain factors.

    Reply
  54. Hi All,

    After going through all the comments related to this post, i want to express few of my views here:
    Provide the details which you know regarding the software test estimation, effort estimation etc
    Please do not express your view as this article is at elementary level, this is very basic level, there are no metrics mentioned etc. I feel this post outlines the experience of the author related to the topic. It will be better if every one include their experiences about the topic discussed rather than giving vague statements.

    Reply
  55. Hi Sandhya,

    Why do you need to consider the Availability of All the Resources for Estimated Period and Know Your Team as the Factors for estimating. I think this is required for scheduling (Correct me if I am wrong). We just need to think how much time I will take to do my testing including defect retest and signoff’s.

    Regards,
    Prashanth

    Reply
  56. @ Sandhya,

    Your post is great. I am an SDE at Microsoft, and with all my experience over the years… I can say that you nailed it right…

    @ Suhas
    @ Ambarish Karnik

    The Function point analysis and other methods are quantitative and theoretical. What Sandhya has mentioned is purely qualitative and practical. These are tips, I am assuming you know the difference btween a tip and a theory…
    For example, you can be an expert in the estimation process… but if you dont know your team “well”.. some assumptions will go upside down… and they won’t be able to deliver as fast as you’d like to believe. In the end you’ll screw up big time. Your Use case analysis or whatever was spot on, but your team dynamics failed.

    Appreciate the work Sandhya has done, and complete it with the quantitaive stuff… that will make this a still better post…

    @ Pradeep Soudararajan

    “at least discuss it with people like me who would test your ideas up front before you consider writing more.”

    And you thought discussing something with you will make the artifact absolutely flawless… Grow up man… what do you bring to the table in this thread… except for a made up story involving your cricket star… Stop ranting and get a life!

    Reply
  57. I am writing this comment to help you. How you take it is left to you.

    I stopped reading your article after I discovered this line “Sticking to the estimation is very important to build good reputation with the client. “

    I bet you are wrong for many reasons. You don’t realize that estimation is a kind of prediction and all ideas that you might have mentioned are heuristics that are likely to get you close but you never know how close. You could get close by 100 m but still be far away by a 1000 m.

    A client will be happy to see you make changes to your work and time duration to achieve the goal the client has set when you discover that your predictions went wrong. The reason they ask for estimates is not to make you stick to the time frame but to budget funds based on the estimate. Every minute we stay in an organization is a cost to it. We use light, fan, AC – do we pay for it?

    If the estimate is an year and it exceeds by a month for the sake of helping the quality improve or make a significant feature addition to increase the competitive advantage.

    I think you should do lots of study about the topics you write or at least discuss it with people like me who would test your ideas up front before you consider writing more.

    I am not discouraging you to write but I suggest that you would gain better credibility and recognition by writing something worth for the community.

    I once went to Sachin (^really) when he was practicing for next day’s match in Bangalore Chinnaswamy stadium and asked him how many runs does he plan to hit in next day match?

    He asked me one question: Do you really follow cricket?

    If he had said “100” he wouldn’t have been Sachin Tendulkar that you all know today. He understands that it depends on if India is playing first or second. If India needs to chase a big total or a small one. If the wickets on other side is falling fast or standing.

    NOTE: ALL THIS YOU WILL ONLY COME TO KNOW WHEN YOU ARE PLAYING THE MATCH. ONLY MATCH FIXED MATCHES CAN BE PREDICTED!

    Please be more valuable to the community of software testers.

    Reply
  58. Hi Sandhya,

    your point, ‘Parallel Testing’ is not clear to me. You said, if we have previous version of a product so we can compare the output. Don’t you think Comparing with previous version of product will be repeated task? Parallel Testing, if it starts parallely with development then it will save our time.

    Please elaborate it so that i can understand what exactly what this point says.

    Reply
  59. @ Sandhya
    Your points are very practical. The standard effort estimations always impacted by the aforesaid points, which we tend to ignore during effort cal. We foresaw implicit probable which might impact the standard effort estimation. If an experience team member leaves the project or an organization in the mid of test execution, effort estimation goes off track and your point “9) Do You Know Your Team?” was just foresaw. The standard estimation + considering your point will definitely make a healthy estimation 🙂

    Reply
  60. test estimation should include the time required for understanding requirements, preparing test plan, test case preparation, deployment, actual testing done, documentation of test artifacts, bug posting, issue resolution meeting etc and some buffer period for unexpected or accidental changes in the test plan or lack of any resources.

    Reply

Leave a Comment