Logo
blank Skip to main content

Techniques for Estimating the Time Required for Software Testing

QA

Balancing quality with timely delivery is one of the biggest challenges in any software development project. While thorough testing ensures your product meets customer requirements, the time required to address every potential risk can push back release dates, creating pressure on both developers and QA teams. A clear, realistic approach to time estimation in QA is crucial for delivering high-quality software on schedule.

In this article, youโ€™ll find proven techniques and best practices to help your team better estimate the time required for software testing. This article will be useful for project managers, QA leads, and development leaders who want to improve their time estimation skills for testing phases and deliver high-quality products on time and within budget.

What is time estimation in QA?

Time estimation in QA is the process of predicting how long it will take to plan, execute, and complete all testing activities for a software development project. To do this, quality assurance and project management specialists assess the scope of testing activities, identify necessary resources, and account for risks or delays that may arise during testing.

To achieve accurate estimates, quality assurance and project management specialists consider several factors:

Human factors

Technical factors

  • Knowledge and testing experience with the project technology

  • Domain area knowledge

  • Buffer time for accidents and emergencies

  • Time for team communication

  • Software complexity

  • Number of features

  • Testing types (manual, automated, performance, security)

  • Availability of ready-to-use tools

  • Readiness of test environment and test data

  • Availability of open-source or third-party tools and libraries

  • Internal product quality (code, instruments, specifications)

  • Use of automation tools

Figure 1. Time estimation factors

Additionally, testers need to factor in bug fixing cycles, potential rework, and regression testing, which may add further time to the process. Depending on the development and testing process, they might also need to consider changing requirements. For example, in the Agile  software development methodology, plans can regularly change, making it necessary to re-estimate testing activities.

Estimating the time required for testing can be tricky, especially if software is complex, feature-rich, and has multiple test cases. However, time estimates can help you balance product quality and delivery time. Letโ€™s explore why it is vital to spend time estimating testing activities and how it can affect your project.

The importance of estimating testing time in software engineering

Ensuring accurate time estimation in software engineering is essential for both the development and testing processes. Properly planned testing is a must to ensure the required level of software quality without exceeding a projectโ€™s time and budget. 

Misestimation can delay product delivery or decrease a productโ€™s quality and competitiveness. Estimating the time required for software testing is a rather complicated process, but itโ€™s critical for project success.

The number one attribute of any good prediction of the future is, of course, whether it comes true.

Rex Black, Critical Testing Processes: Plan, Prepare, Perform, Perfect

There are two things you should always keep in mind when estimating the time required to test your product. The first is that people often struggle to precisely estimate the time required for a task. The second is that testing is no longer a one-time task but a continuous process. Letโ€™s take a look at testing estimation techniques in Agile. Many companies work with Agile methodologies, where testing doesnโ€™t stop even when software reaches the production stage.

Letโ€™s consider what methods will help you precisely estimate your testing time, taking into account these two factors. But first, letโ€™s see what stages of the on-premises and cloud testing process you must include in your estimates.

Want to achieve high software quality?

Ensure immaculate performance, reliability, and security of your solution with the help of Aprioritโ€™s qualified QA experts.

5 testing stages you should estimate

Software testing consists of multiple stages, and thoroughly estimating them is your key to success. According to the International Software Testing Qualifications Board (ISTQB), there are five fundamental testing stages:

  1. Test planning and control
  2. Test analysis and test design
  3. Test implementation and execution
  4. Evaluating exit criteria and reporting
  5. Test closure activities

Letโ€™s take a close look at each testing stage and discuss the peculiarities of estimating the time required.

Estimate the time required for each stage of testing separately

1. Test planning and control

The test planning and control stage consists of two sub-stages:

  • Researching the project
  • Developing a testing strategy

Project research is important for gathering all necessary information and getting the whole picture of the project. There are many ways to research a new project: by analyzing project documentation, discussing the project with the customer, working out project details with managers, etc.

On average, we recommend spending one to two days on this sub-stage. You donโ€™t necessarily need to dedicate the whole workday to this, but a one- or two-day estimation process will allow you enough time in case new ideas and questions appear.

However, additional time may be required in the following cases:

  • The project is rather large and has a lot of documentation.
  • The project requires additional research due to a high number of unfamiliar tasks.
  • Specialists who take part in project discussions have different schedules and are geographically dispersed.

Designing a testing strategy will let you prioritize your actions to conduct tests in the most effective and efficient way. To create a well-planned testing strategy, you need to answer a number of questions:

  • What types of testing will be performed?
  • What kinds of specialists are required for developing test plans and test cases?
  • How many specialists will perform project testing, and what skills should they have?
  • What testing tools should be available, and how should they be configured for project testing?

Our company has a set of empirically tested best practices and approaches that help us answer these questions. The final choice of practices to be used depends on the particular project.

Additionally, to ensure precise time estimates for the whole test planning and control stage, itโ€™s important to decide whether your project requires the following activities:

  • Risk management โ€” This often includes creating a risk matrix, assessing risks, and eliminating them.
  • Additional testing โ€” Some projects might require running extra tests like non-functional tests, localization tests, or compatibility tests.
  • Testing environments โ€” You need to plan in advance whether your project will have both alpha and beta testing.
  • Test automation โ€” Some manual testing activities can and should be automated. Plan this ahead as well.

Note: Defining what specialists will work on the project will help you more precisely estimate the time required, as youโ€™ll be able to take into account their skills and experience. Donโ€™t forget to include their vacations and days off in the testing schedule.

Read also

Internal Security Audit Checklist for Increasing Product Quality

Are you 100% sure your software can securely handle user data? Explore our comprehensive internal security audit checklist on implementing security testing best practices into your development lifecycle!

Learn more

2. Test analysis and test design

Before analyzing and designing your tests, make sure you clearly understand the product requirements. ISTQB defines the following tasks for this stage of testing:

  • Reviewing project documentation
  • Identifying test conditions based on analysis of test items
  • Defining test objectives and writing test cases
  • Preparing test data according to test conditions and test cases
  • Designing the test environment

Below, we discuss the peculiarities of estimating the time required for some of these tasks.

Defining test objectives and writing test cases

Defining test objectives and writing test cases is a labor-intensive process that requires considerable time and expenditure. To consider everything, we recommend you start with creating a test plan. Your test plan should be based on a testing strategy that shows what kinds of test cases should be created and sets their priority.

In Aprioritโ€™s practice, we follow the rule that at least five test cases must cover each product requirement. This helps us calculate approximately how many test cases weโ€™ll need and how long they will take.

For example, it takes about two to three days to build and review a simple test plan without test cases. Creating one test case usually takes about 10 minutes. The more test cases your product needs, the more time you should estimate for their development.

However, not all projects require full test case coverage. Instead, you can create your tests based on ready-to-use checklists, saving some time on your testing activities.

There are a few other aspects you should keep in mind when estimating the time for writing test cases:

  • QA experience โ€” The time a QA specialist needs to prepare a test plan and test cases directly depends on their experience. The more experienced the specialist, the less time theyโ€™ll need to review the test plan and test cases and make changes.
  • Competencies โ€” When faced with a new technology, your team might need anywhere from a day to several weeks for additional research. The precise estimate depends on your teamโ€™s qualifications and the complexity of the new technology.
  • Test data โ€” Depending on the types of testing and the project, you may need some time to create test data.
  • Time for reviewing test plans and cases โ€” Allocate time for reviewing both newly created and altered test cases. When planning this time, you should consider the workload and schedules of the specialists who will review the tests.

Preparing test data

When writing test cases, you need to have test data that will be used as an input for detecting defects in certain product features or scenarios. This information should be precise and complete, and it takes time to achieve this. The time needed for preparing test data depends on many factors, such as:

  • The size and scope of the project
  • The amount of data needed for project testing
  • The variety and types of test data
  • The need for generating new test data

Designing a test environment 

The test environment consists of the software and hardware necessary for executing test cases. For example, a mobile app testing environment can consist of real or virtual mobile devices. Its configuration must mimic a user-like environment to identify any possible issues that end users may face on their devices. When designing the test environment, a QA specialist should properly configure hardware and software as well as the operating system and configure test terminal settings.

The time required for this stage of work depends on the following factors:

  • Test environment complexity. The time needed for installing and configuring the test environment directly depends on its complexity. Usually, it takes from one hour to one day to configure a test environment for a mid-sized project that works with popular operating systems and doesnโ€™t require complicated solutions.
  • Additional equipment. When you need to expand the testing laboratory, take into account the time necessary for getting additional equipment. If the required equipment is available at a discount and the company can buy it at once, the time will be short. However, it may take longer if specific equipment needs to be delivered from abroad or if the company canโ€™t afford it at the moment.

Read also

5 Most Popular Web App Security Testing Methodologies

Safeguard your digital assets and preserve your business reputation with Aprioritโ€™s expert insights. Discover proven security testing methodologies to fortify your web applications against cyber threats. 

Learn more

3. Test implementation and execution

Test implementation and execution is a fundamental process in which the actual work is done. During this process, test cases with test data are executed.

This stage includes the following tasks:

  • Conducting full testing based on a checklist or test cases
  • Performing regression testing
  • Executing other types of testing like smoke testing and impact testing

One of the main difficulties of planning the test implementation and execution stage is that you canโ€™t precisely predict the number of bugs youโ€™ll find and the complexity of localizing them. On average, writing a report on one bug takes 10 to 15 minutes. The more bugs are found, the more time is required for each report. 

If a bug is too complicated, finding its exact location may even take several hours. Methods exist to estimate the number of possible bugs in every subsequent product version, but itโ€™s difficult to estimate the time required for detecting and fixing them exactly.

Itโ€™s also important to include time for other activities in the work schedule: reporting on found bugs, defining the locations of the most complicated bugs, etc. Based on our experience in time estimation for software testing, we recommend you add about 20% to 25% of total testing time for such activities to your final estimate.

At any rate, you should follow your common sense and not let other activities go beyond the allotted time. If product testing is estimated to last 10 hours but you need to spend more than two to three hours localizing one bug, itโ€™s logical to postpone this activity unless the bug is critical or blocks product performance. Return to this issue if time remains at the end of product testing, or request additional time.

4. Evaluating exit criteria and reporting

The main goal of this stage is to validate the received test results with the exit criteria or conditions for completing tests at each test level that were defined and agreed upon with stakeholders at the planning stage. According to ISTQB, this test stage includes such activities as:

  • Checking test logs against exit criteria
  • Determining if further testing or exit criteria revision is required
  • Writing a test summary report for stakeholders

The time for these activities is included in the time necessary for performing each level of testing.

5. Test closure activities

The main task of this stage is to collect and archive all test artifacts (scripts, environments, etc.) for further use and conduct a retrospective to define lessons learned.

The time needed for this type of activity doesnโ€™t always need to be estimated.

Read also

Why Software Testing Metrics Matter and How to Choose the Most Relevant Metrics for Your Project

Achieve flawless performance by gaining clarity on selecting metrics for your software testing. Discover practical strategies to maximize your QA efforts with limited resources.

Learn more

7 time estimation techniques

So, how does estimation in software testing work? Below, we describe effective software testing estimation methodologies for achieving accurate estimates.

Letโ€™s start with the types of software test estimation techniques in testing that require detailed mathematical calculations:

  • Wideband Delphi is a more flexible version of the Delphi method that involves multiple rounds of estimates from a team of experts with an emphasis on discussing and refining estimates after each round. It is less formal than the original Delphi method and can accommodate more uncertainty by allowing broader communication and consensus building.
  • Three-point estimation is a technique based on statistical data that includes three estimates for every task: the best case, the most likely case, and the worst case.
  • The function point method measures the project size and weights each function point based on past projects.
  • Test case-based estimation suggests assigning a value to each test case you create and adding all values to get a total estimate in labor hours.
  • Test point analysis breaks down the scope of testing into individual tasks based on functional size, complexity of functions, and other testing-specific parameters.

On the bright side, all of these estimation tools for software testing are great for gaining precise estimates. On the downside, they are:

  • Time-consuming
  • Labor-intensive
  • Inflexible

However, given that development is often done rapidly and following an Agile methodology, the time estimation process should also be flexible. Otherwise, your most thorough plans can easily be disrupted if unforeseen events suddenly appear. Letโ€™s discuss some more flexible and intuituve test estimation techniques in software testing.

7 time estimation techniques for QA

1. Trial-and-error approach

The trial-and-error approach is used every time you do something new. Put simply, you try, fail, then try again. This pattern is repeated until you finally succeed.

2. Analogy-based and expert estimation methods

If your team already has experience in projects similar to the current one, you can use an analogy-based method to plan the time based on a known time for a previous project.

In addition, you can use recommendations from your team members who have experience performing similar tasks or external experts with domain-specific knowledge. Itโ€™s better to consider estimates made by several experts. However, keep in mind that the estimate of an external expert may be incorrect, as those performing the task may lack the necessary qualifications and require time for learning.

3. Test task breakdown method

To make testing time estimates more accurate and realistic, break down test tasks (i.e., divide the testing process into several parts and estimate the time for each).

This is a formalized method, but it requires the least effort for assessment. You just need to divide your scope of work into the smallest tasks you can easily estimate.

However, during task decomposition, consider the following questions:

  • What test task changes will impact product testing?
  • What test environment configurations should we use for verifying test results?
  • What test data should we prepare?
  • How will feature changes impact product performance?
  • What test preparations are required?
  • What processes can be automated?

4. Percentage of development approach

This approach is based on the percentage of time the testing process usually takes relative to the overall development estimate. Say you expect project development to take about 1,000 hours, and you know that your company usually spends 40% of your programming time on testing for similar products. In this case, you can estimate that testing will take about 400 hours for this project.

However, keep in mind that this approach should take into account project risks, staff expertise, the type of application under development, and so on.

5. Top-down and bottom-up estimates

Time estimation for software testing can be carried out by managers based on previous projects. In this case, managers tell executors how long a particular testing stage should take. However, this method doesnโ€™t take into account human factors. To ensure accuracy, itโ€™s often helpful to compare top-down estimates against your bottom-up estimates or against estimates made by task executors.

6. Cone of Uncertainty

The Cone of Uncertainty, described by Steve McConnell, shows that itโ€™s hard to estimate the time for performing any task at an early stage. The accuracy of an estimate depends on the project stage when itโ€™s made. For instance, at an early stage, the execution of a 12-month project may easily be estimated at either three or 48 months.

The level of uncertainty is higher at early stages, as many project variables are still unclear: software-specific details, requirement details, staffing, project plan, etc. Itโ€™s impossible to consider all risks that may occur during the work process.

You can narrow the Cone of Uncertainty by making time re-estimates after implementing any changes to the project.

7. Poker planning

Poker planning is often used in Agile environments. It involves team members assigning effort points to testing tasks using cards that represent the number of hours needed to complete them. Then, a project manager reads out a card, and every team member shares their thoughts on how they should approach the task, mentioning potential blockers and the general workflow. This method encourages discussion and collaboration, reducing the risk of overly optimistic or pessimistic estimates.

Now, letโ€™s explore examples of how to estimate software testing time in hours.

Read also

Dependency Impact Analysis in Software Testing and Development: What It Is and How to Do It (with Examples)

Ensure your product remains stable and secure after every update. Explore our expert guide for impact analysis best practices and get a template for securing your productโ€™s dependencies.

Learn more

Software development time estimation template

Your estimation strategy will depend on your projectโ€™s size, complexity, and needs. Below, youโ€™ll see a practical example of how estimation works to give you a general idea of this process. Letโ€™s see how we can apply the described time estimation methods in practice using an estimation template for software testing.

Say we need to test a new product that consists of three main features. Preliminarily, product testing is divided into two iterations.

  • Iteration #1: feature #1 + feature #2
  • Iteration #2: feature #3

These product features have different levels of complexity, which will impact the time required for their testing:

  • Feature #1 has a middle level of implementation complexity
  • Feature #2 has a low level of implementation complexity
  • Feature #3 has a high level of implementation complexity

We know that product testing will be performed by one QA specialist. So we need to estimate the time for product testing and submit our estimates to the client.

Letโ€™s suggest our time estimation task has the following variables:

  • Our QA specialist may be either junior or senior
  • Our QA specialist may or may not be familiar with the specific domain

To estimate the time necessary for testing our product, weโ€™ll use a combination of the following methods:

  • Trial-and-error approach
  • Analogy-based method
  • Expert estimation method

In the tables below, you can see the results of our estimation:

Iteration #1JuniorSeniorComments
 newexperiencednewexperienced 
1. Specification revision     
1.1. Reading and analyzing specifications for all three features10101010The time required for reading and analyzing the documentation depends on the volume and complexity of the specifications.
1.2. Clarifying specification details4332Estimate 30% to 40% of the time for 1.1 for preparing qualifying questions if these features are new for the tester (for conducting additional research and following best practices) and 20% for cases when a tester has experience testing similar features (knowledge about how a feature should react in abnormal situations).
1.3. Researching domain area16 12 Estimate the time for this activity in case the features are new to the tester.
2. Preparing test documentation     
2.1. Writing test cases/ checklists for full/acceptance/smoke testing for feature #1 and feature #217.517.512.512.5When estimating this task, take into account the QA specialistโ€™s expertise as well as the function complexity and specification requirements for which we will write test cases. Estimation can be performed with the help of expert advice or previous experience in similar projects.
2.2. Writing test cases/ checklists for full/acceptance/smoke testing for feature #317.517.512.512.5
2.3. Reviewing test documentation (for a reviewer)121299Estimate the time required for reviewing test documentation. No matter who performs testing, the review will be done by a senior tester or another tester. Let’s take 30% to 35% of the time calculated for writing test documentation for the whole product (2.1 and 2.2).
2.4. Making corrections to test documentation after review121255For a junior, it will take more time to make corrections to the test documentation after its review because we assume a lower quality of tests. Let’s estimate 35% of all time calculated for writing test documentation (tasks 2.1 and 2.2) for a junior and 20% for a senior.
3. Designing the test environment and preparing test data16101610This activity depends on the project and doesnโ€™t need to be allotted time if your company already has the necessary data and equipment. Otherwise, youโ€™ll need time to design an environment and prepare test data.
4. Testing     
4.1. Smoke testing (first check after product implementation)4444The main goal of this task is to find bugs that block product performance and report on them within four hours of the build implementation.
4.2. Full testing24201716Full testing is performed in accordance with test cases and checklists. Feature testing may take less time if a tester has previous experience dealing with similar test cases.
4.3. Modifying tests for feature #1 and feature #23.53.52.52.5New code often appears that hasnโ€™t been covered with tests. Letโ€™s estimate 10% of all time calculated on writing test documentation (tasks 2.1 and 2.2) for this activity.
4.5. Confirmation testing4.843.43.2Confirmation testing usually takes 20% of the time calculated for full testing (task 4.2).
4.6. Regression testing based on feature #1 and feature #2 impact on the product12108.58Letโ€™s estimate 50% of the time calculated in 4.2 for full testing for regression testing.
Total working hours for testing activities153.3122.5115.494.7 
6. Risks30.6624.523.0818.94Letโ€™s estimate 20% of the total testing time planned for iteration #1.
      
Total working hours for iteration #1183.96147138.48113.64 

Figure 2. Iteration #1

Iteration #2JuniorSeniorComments
 newexperiencednewexperienced 
1. Testing     
1.1. Smoke testing (first check) for feature #34444The main goal of this task is to find bugs that block product performance and report on them within 4 hours of the build implementation. During smoke testing, we perform only the most important test cases.
1.2. Acceptance testing for feature #1 and feature #26544Estimate the time for verifying that everything works well in feature #1 and feature #2 after implementing feature #3. Acceptance testing usually takes longer than smoke testing, especially for a junior tester, as it includes both positive and negative test cases.
1.3. Full testing for feature #324201716Feature#3 has a high level of implementation complexity, so testing it will take the same time we spent on full testing of both feature #1 and feature #2 in iteration #1.
1.5. Modifying tests for feature #3221.51.5Letโ€™s estimate 10% of all time calculated for writing test documentation for feature #3 (see iteration #1, task 2.2).
1.6. Confirmation testing3.53.533Note that non-critical bugs in feature #1 and feature #2 may be fixed during task 1.2 of iteration #2. Estimate some time for checking them.
1.7. Regression testing based on impact for feature #1, feature #2, and feature #324201716Letโ€™s estimate 50% of the full product testing time (full testing of feature #1 and feature #2 plus full testing of feature #3).
1.8. Acceptance testing of all product features before sending the product to the customer9.686.86.4Letโ€™s estimate 20% of the full product testing time (time for 4.2 from iteration #1 and 1.3 from iteration #2).
Total working hours for testing activities73.162.553.350.9 
6. Risks14.6212.510.6610.18Letโ€™s estimate 20% of the total testing time planned for iteration #2.
      
Total working hours for iteration #287.727563.9661.08 
      
Total working hours for product testing271.68222202.44174.72 

Figure 3. Iteration #2

Related project

Evaluating Smart Contract Security for Decentralized Finance (DeFi)

Explore how Apriorit performed an in-depth smart contract audit and provided recommendations on mitigating vulnerabilities to ensure flawless security and help the client maintain a reputation for reliability and customer trust.

Project details

Conclusion

Quality assurance is a complicated process with a high risk of uncertainty, and there is always some deviation from software test time estimates. 

Itโ€™s challenging to prescribe exact test estimation techniques for software testing and define product metrics in software engineering. Thatโ€™s why itโ€™s efficient to combine different software testing estimation techniques and methods, considering the specifics of the project at hand and the testing team. In this way, youโ€™ll have a clear understanding of factors that influence the cost and time, like the teamโ€™s knowledge or the specific project development model. 

To learn how to improve the testing process, check out our article on six ways to improve software testing.Apriorit has a team of ISTQB-qualified QA specialists who have mastered accurate testing estimates. Weโ€™ll be glad to assist you in testing your product and provide reliable estimates for doing so. Feel free to contact us using the form below.

Have a niche software testing request? 

Entrust your project to Aprioit’s qualified engineers. With vast experience in quality assurance and security testing, we’ll help you achieve any goals.

Have a question?

Ask our expert!

Maryna-Prudka
Maryna Prudka

R&D Delivery Manager

Tell us about your project

Send us a request for proposal! Weโ€™ll get back to you with details and estimations.

Book an Exploratory Call

Do not have any specific task for us in mind but our skills seem interesting?

Get a quick Apriorit intro to better understand our team capabilities.

Book time slot

Contact us