This website uses cookies to better the user experience of its visitors. Where applicable, this website uses a cookie control system, allowing users to allow or disallow the use of cookies on their computer/device on their first visit to the website. This complies with recent legislative requirements for websites to obtain explicit consent from users before leaving behind or reading files such as cookies on a user’s computer/device. To learn more click Cookie Policy.

Privacy preference center

Cookies are small files saved to a user’s computer/device hard drive that track, save, and store information about the user’s interactions and website use. They allow a website, through its server, to provide users with a tailored experience within the site. Users are advised to take necessary steps within their web browser security settings to block all cookies from this website and its external serving vendors if they wish to deny the use and saving of cookies from this website to their computer’s/device’s hard drive. To learn more click Cookie Policy.

Manage consent preferences

These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
Cookies list
Name _rg_session
Provider rubygarage.org
Retention period 2 days
Type First party
Category Necessary
Description The website session cookie is set by the server to maintain the user's session state across different pages of the website. This cookie is essential for functionalities such as login persistence, ensuring a seamless and consistent user experience. The session cookie does not store personal data and is typically deleted when the browser is closed, enhancing privacy and security.
Name m
Provider m.stripe.com
Retention period 1 year 1 month
Type Third party
Category Necessary
Description The m cookie is set by Stripe and is used to help assess the risk associated with attempted transactions on the website. This cookie plays a critical role in fraud detection by identifying and analyzing patterns of behavior to distinguish between legitimate users and potentially fraudulent activity. It enhances the security of online transactions, ensuring that only authorized payments are processed while minimizing the risk of fraud.
Name __cf_bm
Provider .pipedrive.com
Retention period 1 hour
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to support Cloudflare Bot Management. This cookie helps to identify and filter requests from bots, enhancing the security and performance of the website. By distinguishing between legitimate users and automated traffic, it ensures that the site remains protected from malicious bots and potential attacks. This functionality is crucial for maintaining the integrity and reliability of the site's operations.
Name _GRECAPTCHA
Provider .recaptcha.net
Retention period 6 months
Type Third party
Category Necessary
Description The _GRECAPTCHA cookie is set by Google reCAPTCHA to ensure that interactions with the website are from legitimate human users and not automated bots. This cookie helps protect forms, login pages, and other interactive elements from spam and abuse by analyzing user behavior. It is essential for the proper functioning of reCAPTCHA, providing a critical layer of security to maintain the integrity and reliability of the site's interactive features.
Name __cf_bm
Provider .calendly.com
Retention period 30 minutes
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to distinguish between humans and bots. This cookie is beneficial for the website as it helps in making valid reports on the use of the website. By identifying and managing automated traffic, it ensures that analytics and performance metrics accurately reflect human user interactions, thereby enhancing site security and performance.
Name __cfruid
Provider .calendly.com
Retention period During session
Type Third party
Category Necessary
Description The __cfruid cookie is associated with websites using Cloudflare services. This cookie is used to identify trusted web traffic and enhance security. It helps Cloudflare manage and filter legitimate traffic from potentially harmful requests, thereby protecting the website from malicious activities such as DDoS attacks and ensuring reliable performance for genuine users.
Name OptanonConsent
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonConsent cookie determines whether the visitor has accepted the cookie consent box, ensuring that the consent box will not be presented again upon re-entry to the site. This cookie helps maintain the user's consent preferences and compliance with privacy regulations by storing information about the categories of cookies the user has consented to and preventing unnecessary repetition of consent requests.
Name OptanonAlertBoxClosed
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonAlertBoxClosed cookie is set after visitors have seen a cookie information notice and, in some cases, only when they actively close the notice. It ensures that the cookie consent message is not shown again to the user, enhancing the user experience by preventing repetitive notifications. This cookie helps manage user preferences and ensures compliance with privacy regulations by recording when the notice has been acknowledged.
Name referrer_user_id
Provider .calendly.com
Retention period 14 days
Type Third party
Category Necessary
Description The referrer_user_id cookie is set by Calendly to support the booking functionality on the website. This cookie helps track the source of referrals to the booking page, enabling Calendly to attribute bookings accurately and enhance the user experience by streamlining the scheduling process. It assists in managing user sessions and preferences during the booking workflow, ensuring efficient and reliable operation.
Name _calendly_session
Provider .calendly.com
Retention period 21 days
Type Third party
Category Necessary
Description The _calendly_session cookie is set by Calendly, a meeting scheduling tool, to enable the meeting scheduler to function within the website. This cookie facilitates the scheduling process by maintaining session information, allowing visitors to book meetings and add events to their calendars seamlessly. It ensures that the scheduling workflow operates smoothly, providing a consistent and reliable user experience.
Name _gat_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _gat_UA-* cookie is a pattern type cookie set by Google Analytics, where the pattern element in the name contains the unique identity number of the Google Analytics account or website it relates to. This cookie is a variation of the _gat cookie and is used to throttle the request rate, limiting the amount of data collected by Google Analytics on high traffic websites. It helps manage the volume of data recorded, ensuring efficient performance and accurate analytics reporting.
Name _ga
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga cookie is set by Google Analytics to calculate visitor, session, and campaign data for the site's analytics reports. It helps track how users interact with the website, providing insights into site usage and performance.
Name _ga_*
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga_* cookie is set by Google Analytics to store and count page views on the website. This cookie helps track the number of visits and interactions with the website, providing valuable data for performance and user behavior analysis. It belongs to the analytics category and plays a crucial role in generating detailed usage reports for site optimization.
Name _gid
Provider rubygarage.org
Retention period 1 day
Type First party
Category Analytics
Description The _gid cookie is set by Google Analytics to store information about how visitors use a website and to create an analytics report on the website's performance. This cookie collects data on visitor behavior, including pages visited, duration of the visit, and interactions with the website, helping site owners understand and improve user experience. It is part of the analytics category and typically expires after 24 hours.
Name _dc_gtm_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _dc_gtm_UA-* cookie is set by Google Analytics to help load the Google Analytics script tag via Google Tag Manager. This cookie facilitates the efficient loading of analytics tools, ensuring that data on user behavior and website performance is accurately collected and reported. It is categorized under analytics and assists in the seamless integration and functioning of Google Analytics on the website.

Estimation Techniques for Software Testing: Which to Choose for Your Project

  • 32472 views
  • 10 min
  • Jun 23, 2020
Anastasiia S.

Anastasiia S.

Copywriter

Elena K.

Elena K.

Head of Quality Assurance office

Share

Time is money, and finding out how long it will take to test your product and how much it will cost is one of the first steps in your cooperation with a QA team. Nowadays, there are dozens of methods for estimating projects. In our article, we describe the most common estimation techniques along with their advantages and limitations. We also reveal techniques preferred by the RubyGarage QA team when assessing new projects. 

#1 PERT

The program evaluation and review technique (PERT) relies on three variables to predict project duration: the most optimistic, most pessimistic, and most likely cases.

The most optimistic case (O) is an assumption as to the length and cost of the project under the best conditions possible. Such conditions imply that all team members perform their duties on time and without schedule slips, force majeure circumstances, or a need for rework.

The most likely case (M) represents an estimate considering the team’s usual workflow, schedule slips, and rework.

The most pessimistic case (P) is the worst scenario possible. To calculate P, estimators suppose how much time it will take and how much it will cost to test a product if everything goes wrong at every stage of testing.

Once all three variables are defined, the estimate (E) is calculated in the following way:

estimation techniques in software testing

Benefits

The PERT model works according to a what-if technique that allows for estimating possible risks. Thanks to this technique, an assessment team can provide a realistic estimate.

Another benefit of this model is that it gives a clear understanding of various scenarios that may take place during product testing. Thus, a QA team can be ready to meet possible obstacles and mitigate them in time.

Limitations

This technique isn’t suitable for large projects with a lot of variables. It may take quite a lot of time to estimate such projects, and there’s a higher possibility of inaccuracies.

Additionally, the variables used for PERT estimation are subjective, so there’s still a chance of an error.

#2 UCP

The use case points (UCP) method is based on a project’s use cases. 

UCP estimation is the calculation of different variables that influence project development and complexity. These variables are actors, adjusted and unadjusted use case weights and points, technical complexity factors, and environmental factors.

Actors are users or programs that interact with tested software. Unadjusted use case weights are things that influence a project’s size. Technical complexity and environmental factors influence the project at the technical and environmental levels. According to Gustav Karner, there are more than 10 factors that determine the technical complexity of a project and eight that influence its environmental complexity.

Estimation starts with each variable being assessed in accordance with its complexity and influence on a project. Then these variables are calculated with the help of special formulas. The overall size of a project is determined according to the following formula:

software test estimation

Once a QA team knows the size of a project, it’s time to find out the duration of testing. There are two ways of calculating how long it will take. It’s possible to use Karner’s approach and regard each use case as 20 person-hours. Another way is to rely on your company’s experience and estimate project length based on the time use cases usually take in your company.

Benefits

UCP estimation can be performed at the early stages of a project. It helps you plan testing activities and approve your budget in advance.

Moreover, it’s possible to automate estimation with the help of use case management tools so an assessment team spends less time estimating.

Limitations

The UCP method can be applied only to projects where specifications are expressed in use case points. Otherwise, the assessment team needs to opt for another technique. 

Further, quality results from the UCP method depend on clear use cases. If use cases are poorly written, the resulting estimate is likely to be inaccurate. 

#3 WBS 

The work breakdown structure (WBS) method relies on splitting the whole scope of work into smaller tasks. Then, QA team members assess how much time it will take to accomplish each task. After each task is estimated, the time is added up to understand the duration of the project.

In the image below, you can see an example WBS estimation carried out by the RubyGarage team for a whole project, including QA activities.

how to estimate software testing
An example of WBS estimation

Benefits

The WBS technique ensures a detailed estimate. By dividing a large task into smaller ones, there’s a lower chance of missing things, and the assessment team will each task that influences project completion. 

Clarity is another advantage of this technique. WBS results are represented in a table to ensure transparency and make it easy to track progress.

Limitations

Being resource-intensive, the WBS technique takes a lot of knowledge, usually from different areas. Thus, a WBS assessment involves all stakeholders.

Also, WBS estimates might become outdated over time since project requirements can change at different stages. If a client decides to change some functionality, an assessment team will have to re-estimate parts of the project.

#4 Wideband Delphi

The idea of the Wideband Delphi technique is to gather an expert team that usually consists of three to seven people: a moderator, a project manager, and other team members who can contribute to project evaluation. Here is how it usually goes:

  1. An expert team meets for the first kickoff meeting to learn the main information about the project ‒ its goals, requirements, the client’s preferences, etc. During this meeting, each team member provides an estimate of the time needed to complete the project.
  2. During the second meeting, a moderator presents the results of the fist estimate anonymously so team members don’t know whose ideas are represented. The team members then analyze the results, taking into account the ideas of other participants. Thus, they have a look at the project from different points of view. Then they re-estimate the project.
  3. In the third meeting, new estimates are presented and team members try to reach an agreement once more. Now the estimation timeline is reduced, since team members share similar ideas.
  4. Meetings continue until all team members agree on a single estimate.

This is the traditional way of performing Wideband Delphi estimation. However, companies can alter the procedure. For example, it’s possible to carry out all estimation rounds during one meeting or hold an open discussion instead of presenting estimates anonymously. 

Benefits

Wideband Delphi estimation is easy to carry out. It’s possible to start assessing the project once a QA team gets requirements from the customer. Moreover, such estimation doesn’t require any special preparation or tools.

Expert participation increases the chances of a precise estimate since the project is looked at from different perspectives. 

Limitations

Applying this technique is time-consuming. It can be difficult to come up with a single estimate during the first round. That’s why such an assessment requires two, three, or sometimes more rounds. 

Additionally, the results of such an estimate are impossible to reuse. This estimation technique can’t be applied to other (even similar) projects since it’s hard to document the assessment process and use it as a basis for future estimates. Every time it should be applied, it must be carried out from scratch.

#5 Function points

Function points (FP) are the units used to measure project size that consequently influences its duration. Finding out the size of a project is possible on condition that a QA team knows the following variables: unadjusted function point, total degree influence, and value adjustment factor. Once all the variables are calculated, a team identifies adjusted functional point that equals the project size using the following formula:

software testing estimation technique

To carry out an accurate evaluation, it’s important that a QA team decides on the type of count (there are three counts for this estimation technique), its scope, and boundaries before performing the estimate.

Benefits

There are no limitations as to the way project requirements are expressed, and this means that using the function point technique, it’s possible to assess the size of any project.

Function point estimation results are easily comprehensible not only for a QA team but also for clients. 

Limitations

It takes a lot of time to estimate a testing project using the function point technique since the estimate needs to take into account a lot of variables.

Additionally, a function point estimate is difficult to perform because an assessment team needs to analyze a lot of input data and produce a lot of documentation.

#6 Percentage distribution

When applying this technique, the software development life cycle (SDLC) is divided into stages (project management, requirements, design, coding, testing, documentation, installation and training) and each is assessed in percentage terms of the time required for the project.

The whole scope of testing tasks is also distributed among 100 percent of the total testing time. The QA team decides how much of their testing time it’s reasonable to spend on different testing stages (component testing, independent testing, system testing, etc.) and expresses this time as a percentage.

Benefits

This technique is easy to apply. It doesn’t require any specific tools or have any specific requirements ‒ you only need a team that has enough expertise to estimate a testing project.

Limitations

To get the most precise results, a percentage distribution assessment should be carried out by highly experienced experts. It may be difficult to find all the experts who might be helpful in estimating a project in one company.

Since estimation is done without specific requirements and input data, the results might not be very accurate.

#7 Experience-based

The idea of this approach is to estimate a project by relying on the experience of a QA team. A team might already have tested a similar project, in which case they can take it as a basis for estimation. The experience-based approach includes two sub-approaches ‒ analogous and expert judgment. 

Analogous estimation is when a QA team takes the estimate of a previous similar product and creates a new estimate based on the existing estimate. In case there are new requirements in the new project, they’re assessed based on the experience of an expert group inside the company. 

Benefits

Using this approach, a mature quality assurance team can provide a precise estimate. When a team has performed dozens of similar projects, they can express their estimates with confidence. 

It’s also fast to conduct expert-based estimation, since an assessment team has estimates and documents from previous projects at hand that can be used as a basis for the estimate.

Limitations

The experience-based approach is difficult to apply to unique projects, as it takes more time and effort to estimate new features a QA team may encounter for the first time.

Moreover, this technique isn’t suitable for young teams who are at the beginning of their careers since they might lack experience.

Software testing techniques the RubyGarage QA team uses to estimate your project

There are even more ways to estimate a software testing project, and it’s even possible to combine some of the ones described above to provide a more precise estimate. That’s exactly what we do at RubyGarage ‒ our QA team uses WBS and experience-based methods to estimate new projects.

If we get a project that’s similar to one our team has done before, we use ready-made estimates based on the work breakdown structure. 

If we’re dealing with a unique product, our senior experts gather to estimate it using the experience-based technique. To make our estimates more realistic, we usually include two options ‒ minimal and maximal. The minimal value is an optimistic prediction, while the maximal is a pessimistic prediction that includes some risks. 

By combining two estimating methods, we can provide our clients with the most accurate results possible.

CONTENTS

FAQ

  1. There are dozens of techniques for estimating software testing, but these are the most common:

    • Program evaluation and review technique (PERT)
    • Use case points (UCP)
    • Work breakdown structure (WBS)
    • Wideband Delphi
    • Function point
    • Percentage distribution
    • Experience-based
  2. The work breakdown structure (WBS) is a software testing estimation technique with a high level of accuracy. It’s usually carried out in several steps:

    • The whole scope of work is divided into smaller tasks and allocated among QA team members.
    • Each responsible team member estimates how much time it will take to complete each task.
    • This time is added up to estimate the duration of the whole project.
  3. It depends on your project’s requirements and specifications. Each technique has its benefits and limitations, so it’s necessary to take them into account. If you need a QA team to test your product, contact us for a precise estimate.

Authors:

Anastasiia S.

Anastasiia S.

Copywriter

Elena K.

Elena K.

Head of Quality Assurance office

Rate this article!

Nay
So-so
Not bad
Good
Wow
9 rating, average 5 out of 5

Share article with

Comments (1)
Srinivas Ajimera
Srinivas Ajimera about 2 years ago
I am impressed by the information that you have on this blog. It shows how well you understand this subject.
Reply

Subscribe via email and know it all first!