The Selenium Story – Ingredients for a Sustainable Adaption
For the last 2 decades, Software quality assurance has been making sustained but slow progress from manual testing towards automated testing. During this cycle, multiple commercial tools and vendors have been instrumental in supporting the QA organization’s move towards automated testing.
Mercury Interactive (hence acquired by HP) was a pioneer in the field with their flagship products such as WinRunner, QTP, UFT, etc. Appropriate for that timeframe, these tools were designed to fit into QA environments, offering simplified solutions with low technical barriers. But as the SDLC processes and application development technologies evolved, these “boxed” approaches proved to be inadequate. They were unable to handle the demands for delivery agility or the complexity of UI interaction. These old-school tools are fast losing their fan base across QA organizations.
Last few years, Selenium Web Driver, an open-source API framework for browser interaction, has been gaining popularity. It has more recently, solidified its position as the market leader in test automation.
With full-fledged support for mainstream programming languages, Selenium is quickly adapted by agile delivery teams. A developer can start writing functional automation test scripts in the language they may be comfortable with – such as Java, C#, Python, Ruby, etc. This has allowed test automation to be injected into the CI/CD pipeline, seamlessly. Selenium’s extensibility, support for a broad range of browsers, and vibrant open source community have paved the way for newer process innovations such as BDD, to be realized in the testing domain.
Despite the phenomenal success of Selenium in bringing the required agility into test automation, it has posed significant accessibility challenges to the mainstream testing community. Long-term ROI on Selenium-based automation is highly dependent on the technical and programming skillset of the team members.
- There is a considerable learning curve for subject matter experts and test engineers. SDET and the developer community are at ease with putting Selenium to the best use.
- Maintaining good coding standards will need constant refactoring and maintenance.
- Services testing and validations across business and persistence layers require development effort from scratch.
- Does not offer any inbuilt traceability across test assets as the test scripts are likely managed as basic programming modules.
Selenium IDE is an attempt at simplifying this interaction providing an ability to record user interactions on the browser. But these capabilities are very rudimentary and suffer from the same issues that many of Selenium’s predecessors have, with the record/playback paradigm.
Proliferation of custom frameworks
Despite the solid core that Selenium offers, the absence of out-of-the-box test management capabilities necessitate creating and managing a framework around the core. Many QA organizations usually start off by setting up a custom framework around Selenium and attempt to address peripheral concerns and best practices. However, over a period of time, these frameworks tend to grow in complexity, and organizations spend considerable efforts to keep them relevant.
Several open-source solutions have also come up, but they tend to be either too developer-oriented or only provide point solutions. Frameworks such as JBehave and Serenity, for example, focus on BDD and are heavily programmer-oriented. In addition, you need to build custom frameworks to bring automation to other layers of the application stack such as API/Services or persistence.
There is no doubt Selenium has enabled test automation to adapt to the agility required for modern software delivery practices. It addressed the challenges with browser interaction in an elegant way, with simple building blocks. It brought standardization and portability with regards to the testability of browsers, compelling all the major browser vendors to support automated test interaction in a consistent fashion.
However, to sustain this momentum, it is very important to make the test automation function accessible to the test teams and subject matter experts. Requirement for heavy programming expertise may prove counterproductive. Additionally, the cost of building and maintaining custom frameworks will be viewed as an unnecessary burden, not aligned to the core business objectives.
ACCELQ – Quality Lifecycle Automation Platform
ACCELQ is a new generation test automation platform built on the principles of lean architecture. With its natural language-based interface, it allows non-technical test resources to implement stable automation and embeds best practices without requiring custom frameworks and coding. Backed by a stable runtime core behind the scenes, ACCELQ automates the entire QA lifecycle including test planning, design, development, and execution.
Compared to Selenium-based automation, ACCELQ accelerates the test development by a factor of 3X and substantially cuts down the maintenance cost involved in managing automated test assets.
ACCELQ is a cloud-based continuous testing platform for Functional & API Testing. ACCELQ brings automation to the entire quality lifecycle with a highly intelligent platform powered with advanced autonomics.