Test automation can be traced back to the 90s with tools like SQA, Mercury, and Segue. We have come a long way since then, but most testers still rely on spreadsheets to track progress. Companies today recognize that manual testing isn’t efficient and are looking for a better solution.
Then came Selenium, now one of the most used open-source test automation solutions. It debuted in 2004 and quickly gained popularity because there were no upfront costs and a growing community that provided guidance on automated testing. In fact, a lot of propriety and enterprise solutions build their test automation solutions on top of Selenium.
However, just because you could download Selenium without a credit card, doesn’t mean it’s the best solution available. It requires a lot of patience and technical skills to build the framework. Because of the significant technical hurdles you'll have to get through to set up and maintain the framework, it requires advanced developer or engineering skills to succeed with it.
When you're looking to test a SaaS platform like Salesforce, using Selenium becomes unscalable as your business grows. Although no costs are associated with downloading and installing Selenium components, building this automation framework from scratch comes with challenges.
Selenium requires a hefty amount of installing different extensions before you even start your test automation journey. For every aspect of testing, you have an extra component to install. For example, before building test scripts, you must install Java, Selenium IDE, WebDriver, browsers, and a script editor.
You'll have to purchase and install a series of hardware and extensions before executing tests. And if you need reporting and analytics (which you will), that means another set of installs.
Depending on the type of systems you're looking to test, users need to invest in hardware or third-party solutions. While Selenium exists to test browser-based applications, it's actually an on-premise solution—meaning you'll need to invest in servers or virtual machines. If you want to run tests from a browser or on the cloud, you'll need additional setup and costs of third-party solutions. All of this is required with Selenium to be able to run the tests.
Selenium automates any browser. It allows companies to test browser-based applications, including SaaS applications like Salesforce. Beyond the initial investment, you'll also need to keep your servers up to date, scale on demand, and replace broken, obsolete components to allow your servers to be reliable enough to host Selenium data and run your automation.
When we talk about on-premise or in-house testing infrastructure, we mean infrastructure that is hosted, maintained, and scaled by an internal IT Ops team. It takes IT resources to optimize and automate the infrastructure, including the servers, software, Selenium grid, device lab, as well as other tasks such as maintaining CI, app, DB servers, etc.
Because of the manual aspect of the test execution framework, scaling becomes an issue. To run parallel tests, you'll have to spend money on hardware and resource costs to maintain them. Maintaining local devices becomes a full-time role.
The Father of Quality Management, W. Edward Deming, says it best, "Quality is everyone's responsibility." Rightfully so, given that today's testing teams consist of a variety of roles.
Whether it's a business analyst, QA tester, developer, or engineer—the skillset, objectives, and use cases varies significantly. However, Selenium users typically have programming experience since it supports multiple languages like Java, Javascript, Ruby, C#, Perl, and Python. Because of their knowledge of programming languages, they are the ones most successful in setting up and writing test scripts.
Suppose you're building a test for Salesforce, a platform known for being more user-friendly to admins and developers to build and configure applications out of the box. In that case, you will still require a resource with coding experience for custom testing scenarios like end-to-end testing.
Selenium is heavily reliant on Xpaths and CSS selectors. Because this complexity and continual maintenance aren't automated, Selenium customers must rely on developers and test engineers to create and maintain Selenium scripts. And the median salary for these experts is more than $140,000/year. Depending on the scale of your application development, your QA cost can quickly outpace the cost of a paid solution.
Here’s an example of a Selenium test script:
Needless to say, only if you’re a QA developer or engineer will you understand what’s happening in this script.
While Selenium can be downloaded without cost, tests cannot write themselves. If you're building on Salesforce, Selenium scripts generally call on standard elements such as hard-coded Xpath or CSS selectors. These are elements that Salesforce Lightning generates dynamically. As the Salesforce application changes, your Xpaths will break because the underlying structure of the dom changes. This dynamic behavior causes regular test breaks, making Selenium automation more challenging to maintain than standard applications.
Overcoming this challenge requires QA engineers to write complex logic to ensure scripts don't fail because of a brittle test. And unfortunately, even the strongest logic can be undermined by Salesforce upgrades and new releases. Because this complexity and continual maintenance aren't automated, Selenium customers must rely on developers and test engineers to create and maintain Selenium scripts. Every new test case becomes a maintenance burden for the team. And the more existing test cases the team has to maintain, on top of creating new tests for new features, the more testers will be needed.
Test automation platforms are available that alleviate the challenges of using Selenium. Here's what you should look for:
Look for a platform that doesn't require you to purchase any additional hardware or download extensions for testing components to work. Be wary of platforms that claim they are fully SaaS but still require you to download and maintain cloud runners or use third-party solutions for test execution. A complete test automation platform shouldn't need any loopholes and allows you to log in and start.
Your testing team shouldn't be divided by different tools for different use cases and not accommodate more than one testing type or app. Testing is multifaceted, and when it comes to SaaS platforms, it's critical to do regression, functional, and end-to-end testing properly. So, look for a solution that tests across multiple platforms, devices, and systems.
There's been a buzz about no-code and low-code, but you want a platform that caters to all kinds of code. And those that claim no-code aren't really codeless. And for custom and complex test scenarios, coding is often required.
Since quality is everyone's responsibility, you want a solution that fosters a collaborative environment between businesses, developers, and technical testers. For example, a business tester may want to leverage a test automation platform to build a test suite based on user requirements. A developer tester could use that same test suite to develop their functional test case. And a technical tester can extend that same test as part of a regression suite or an end-to-end test. Collaboration must be supported so regardless of the role, they can be successful and quality-driven.
As discussed earlier, test automation has been around for 30+ years. And since then, technology has significantly changed. With all the hype of ChatGPT and AI, there's a misconception that AI will take over people's jobs. But the reality is not all automation is created equal.
There are use cases for automation and human intervention. With testing, there will always be a need for the human element. Some test automation platforms intelligently leverage artificial intelligence and machine learning to empower users to test productivity. Whether through smart predictions, test creation, or self-healing tests—embrace these capabilities to work smarter, not harder.
Remember that sample Selenium test script above? The full test is 85 lines of code. That test was created for this simple business process:
Go to web store > Click on item > Add to Cart > Continue Shopping
Want to see the same test using a modern test automation platform?
The difference is night and day! As your business grows and processes become more complex, using an open-source solution can't keep up with the demanding changes. Undoubtedly, it's a big mistake to think that Selenium doesn't come with extra costs. Your team's time, efforts, and productivity is much better spent using a dedicated test automation platform that takes care of all the nuisances of a framework so you can focus on building easier tests, running them faster, and less time maintaining them.
Have you been struggling with maintaining a Selenium framework you built years ago but no longer have the resources or time to upkeep? Set up a demo call with Copado and let your team experience the difference for themselves.
Level up your Salesforce DevOps skills with our resource library.