This is the first post, I hope of a long line, related to testing automation. DevOps is getting popular, and concepts like Continuous Delivery, Integration are widespread. In the current context, where business demands more frequent releases and high-quality software, Continuous Testing is also getting mainstream.
In many ways, testing is the final frontier of DevOps and continuous delivery. To release the high-quality code that enables businesses to stay ahead of their competition faster, organizations must adopt next-generation testing practices that enable them to test early, often, automatically and continuously
Vice President of DevOps Product and
Solutions Marketingat CA Technologies
There are many advantages around the test automation. Most are related to the repeatability of the tests and the speed at which the tests can be executed. There are a number of commercial and open source tools available for assisting with the development of test automation. Selenium is probably the most widely-used open source solution.
Selenium is an open-source and a portable automated software testing tool for testing web applications. It has capabilities to operate across different browsers and operating systems. Selenium is not just a single tool but a set of tools that helps testers to automate web-based applications more efficiently.
Let us now understand each one of the tools available in the Selenium suite and their usage.
|Selenium IDE||Selenium Integrated Development Environment(IDE) is a Firefox plugin that lets testers to record their actions as they follow the workflow that they need to test|
|Selenium RC||Selenium Remote Control (RC) was the flagship testing framework that allowed more than simple browser actions and linear execution. It makes use of the full power of programming languages such as Java, C#, PHP, Python, Ruby, and PERL to create more complex tests|
|Selenium WebDriver||Selenium WebDriver is the successor to Selenium RC which sends commands directly to the browser and retrieves results|
|Selenium Grid||Selenium Grid is a tool used to run parallel tests across different machines and different browsers simultaneously which results in minimized execution time|
Below a list of advances:
- Selenium is an open-source tool
- Can be extended to various technologies that expose DOM
- Has capabilities to execute scripts across different browsers
- Can execute scripts on various operating systems
- Supports mobile devices
- Executes tests within the browser, so focus is NOT required while script execution is in progress
- Can execute tests in parallel with the use of Selenium Grids
Below a list of disadvantages:
- Supports only web-based applications
- No feature such as Object Repository/Recovery Scenario
- No IDE
- Cannot access controls within the browser
- No default test report generation
- For parameterization, users has to rely on the programming language
Which part of Selenium is appropriate for you?
If you wish:
- Create robust, browser-based regression automation suites and tests
- Scale and distribute scripts across many environments
You would use Selenium WebDriver.
Instead, if you like:
- Create quick bug reproduction scripts
- Create scripts to aid in automation-aided exploratory testing
You should use Selenium IDE.
Key take away
If you want to benefit from Continuous Testing and:
- Early detect defects
- Increment number of builds
- Increase release consistency reducing errors
- Speed up releases
Then, take the tool you like most (don’t go for Selenium if do not like) and automate…don’t be lazy.