
Jun 22, 2012
UPDATED:
Aug 12, 2025
Testing is crucial in software projects; it allows us to find defects in our product. When bugs are reported and solved, the result is a higher-quality software product. Unfortunately, testing time is limited in many projects, leading to critical parts of the software being untested. Teams need to optimize the usage of their tester resources: time and software tools. Depending on the project, tools can assist testers in their work and maximize testing time.
The typical test execution process in a software project has these steps:
-
The tester executes a test
-
Tester finds a defect
-
The developer solves the defect
-
Tester re-tests and defines if the defect was solved or not
Sometimes, defects are not solved, and the tester needs to wait for a new fix and test again. This leads to a very repetitive process.
Additionally, testers must perform regression testing at different project stages, including when an iteration is completed, when critical changes have been introduced, before launch, or as part of a product’s maintenance. Regression testing can be very time-consuming, so sometimes, we need to reduce the number of tests executed and test only the riskiest areas.
Software testers must run the same test case several times during confirmation and regression testing. Some test cases are complex; they may require configuration and multiple steps, and comparing the outcome with the expected results can be difficult. Let’s say we have a form on a website that contains more than 15 fields. Once the form is submitted, several calculations are made based on the input values, and then the results are displayed in different sections of the site. Checking the results manually could be hard, take a lot of time, and it is possible to make mistakes when verifying the results. Now, imagine running that test case in all your supported browsers! Though it’s possible to do, it would take too much time.
“Test automation means using a software tool to run repeatable tests against the application to be tested.” In many cases, Test Automation can significantly reduce the time running test cases; the saved time could be used to spend more time on test planning, analysis, and design. Additionally, tests that are impossible for a human being to perform in a limited time are now achievable; a test automation tool allows the same test case to be run hundreds of times.
Many organizations use the Agile model, where continuous and regression testing are needed after every iteration. Test automation can improve productivity and sprint speed, since testers can focus on testing new code and test automation in testing previous code. (Impetus, 2011) Additionally, testers can provide results to developers faster, and the reports are more accurate. Good communication between testers and developers enhances collaboration, which is crucial in Agile projects.
The SeleniumHQ site lists these advantages when using Test Automation to improve the long-term efficiency of a software team’s testing processes:
-
Frequent regression testing
-
Rapid feedback to developers
-
Virtually unlimited iterations of test case execution
-
Support for Agile and extreme development methodologies
-
Disciplined documentation of test cases
-
Customized defect reporting
-
Finding defects missed by manual testing
Knowing When to Automate Your Testing
If used correctly, test automation can bring several benefits to your organization, but it is essential to understand that automation cannot be used in every situation. During test analysis, we can define whether we can use test automation in our project, and during test design, we can select which test cases can be automated. Test automation may not be used in a project or applied only in specific test cases.
During the webinar, “How Google tests software”, James Witthaker, ex-Engineering Director at Google, stated that automation is useful when: results can be checked by a machine, no human judgment or cleverness is required, or tests are repetitive; otherwise, manual is the best approach. We need to analyze our project, decide which cases are worth automating, and consider that even if we use a test automation tool, we will still use manual testing for several areas. For example, Google stated the importance of manual testing in the Chrome OS Test Plan: “Manual testing is also critical because a core value of Chrome OS is simplicity, and the UX needs to be pleasant and intuitive for the user. Machines still cannot test this.”
Be aware that test automation can be time-consuming in projects where requirements constantly change, because the test scripts must be updated several times. It is important to know when to automate testing in the project. Building automation in the initial phases is not ideal when requirements are unstable. The other extreme is to automate at the end of the project. However, time is often limited at this stage, and testers are focused on testing the latest fixes.
Test automation should be applied when it can be most efficient and effective.
Manual vs. Automated Testing
Manual Testing | Automate Testing | |
---|---|---|
Speed | Slower, labor-intensive | Fast and repeatable |
Cost (long-term) | High for repeated runs | Higher upfront, lower per run |
Human judgment | Excellent | Limited (good for objective checks) |
Maintenance | Minimal | Scripts need updating with changes |
Ideal use cases | UX, ad hoc, new features | Regression, data-driven, cross-browser |
Drawbacks | Prone to error, not scalable | Not flexible for UI/UX, upfront investment |
When NOT to Automate
Test automation is powerful, but not always practical. Consider manual testing when:
-
Requirements or UI change frequently (automation maintenance will eat your time)
-
Outcomes require human intuition (e.g., “Is this UI intuitive?”)
-
One-off or exploratory scenarios
⠀“Manual testing is still critical for ensuring a pleasant and intuitive UX. Machines can’t replace human empathy.” — Chrome OS Test Plan
Pro Tip:
Automate tests that are stable, critical, and repetitive. Leave subjective or highly volatile areas for manual testing.
How to introduce a Test Automation Tool
Each organization has a testing process that needs to be understood before introducing Test automation. Some companies have processes based on strict standards because they work with systems that deal with critical information (such as banks or other financial institutions). Other companies could work on projects where time for testing is minimal, where it is not convenient to spend time on automation scripts (in this case, manual testing of critical areas would be the best approach). Each company is different, so even though Test Automation can bring benefits, we need to analyze how Test Automation will affect our current test process, including the benefits and costs of introducing the tool.
Any test tool is intended to make the testing process more effective and efficient. A test tool can provide many benefits, but some risks must be considered before introducing a tool into an organization. “Most of the risks associated with the use of test tools are concerned with over-optimistic expectations of what the tool can do and lack of appreciation of the effort required to implement and obtain the benefits that the tool can bring.”

To avoid this scenario, before introducing a test automation tool, we need to define the goals that we want to achieve with test automation. Then, we assess the costs and benefits of the tools that meet our requirements and later decide if it is worth using any of the tools.
To start, define the objectives for using test automation with the interested parties, usually the software testing team and managers; it is also very important to know the budget; otherwise, we can end up selecting inappropriate tools for our company. For each requirement, we can assign a priority or ranking that will help us evaluate which tool will meet our needs. This initial evaluation results in one to three tools that meet the requirements.
Once we have done market research and have selected a set of tools that meet our needs, we need to conduct a Proof of Concept to evaluate them and determine whether they can be used in our test process.
Steps to Successfully Introduce Test Automation
-
Define your goals:
What do you want automation to achieve? (Speed, coverage, consistency, cost savings?)
-
Analyze your process:
Where do bottlenecks occur? Which test cases are most time-consuming or error-prone?
-
Evaluate tools:
Compare open-source and paid solutions. Do a Proof of Concept with one to three candidates.
-
Pilot with a real project:
First, choose a small, stable area to automate. Measure time savings, defect detection, and feedback loops.
-
Scale up (or iterate):
Use lessons learned to expand automation thoughtfully.
Proof of Concept
During the Proof of Concept, we will evaluate the selected tools based on how they meet the requirements defined by the stakeholders. When conducting this assessment, we need to check these considerations:
-
Mandatory features that are satisfied by the tool and extra features
-
The environment: some tools may only work in specific environments, and using them might require changing our test environment and infrastructure
-
Technical Skills: technical skills needed to use the tool
According to Peter Williams, “Once all proofs of concept have been carried out, it may be necessary to amend the requirements as a result of what was found during the tool selection process. Any amendments should be agreed with stakeholders.”
There are three possible outcomes from the Proof of Concept:
-
None of the tools meets the requirements sufficiently.
-
One of the tools meets the requirement better than the others, so we can select it to be used in our projects.
-
The situation is unclear; more information is needed. In this case, the requirements need to be revised.
Once we have selected a tool, we need to check the cost of implementing it. If a vendor will provide the tool, negotiate the purchase price, annual license fee, consultancy costs, training costs, and implementation costs.
If we have selected an open-source solution, we need to analyze the time it will take to introduce the tool, the maintenance time, and whether we have support available.
We should consider the cost of introducing and maintaining the test automation tool for paid and open-source solutions. “Test tools need to be thought of as long-term investments that need maintenance to provide long-term benefits.”

Figure 2 demonstrates the costs of Test Automation. “Note that there is an ongoing maintenance cost of using the tool, but that this ongoing maintenance cost needs to be less than the cost of performing testing activities without the tool if the investment is to be worthwhile.”
If we have found a tool that meets our needs, the next step is a pilot project, where we will see how the tool can affect our current test process.
Pilot Project
In the pilot project, we will define a business case and establish measurable factors to determine whether we should use the tool.
The objectives of the pilot project are:
-
Discover any changes that need to be made in processes or practices
-
Determine templates, naming standards, and other guidelines for using the tool
-
Estimate and quantify the financial (and other) benefits of using the tool
-
Learn more about the tool to determine what can and cannot be done, along with possible workarounds
Once the Pilot project is completed, stakeholders must analyze the results to determine whether the tool will be introduced.
Wrapping Up
Test automation can significantly enhance software testing efficiency, especially for repetitive tasks and Agile workflows. However, it's crucial to strategically assess its suitability for your project, carefully weighing the costs and benefits, and conducting thorough evaluations. When implemented thoughtfully, test automation becomes a powerful tool, improving quality and optimizing resource allocation.
If you’d like help automating your testing, Oshyn has years of experience in this area, building test automation for Adobe, Optimizely, and Sitecore implementations.