The Demand for Automation
Today’s online applications are important components of the world’s everyday infrastructure. They are trusted to handle troves of information, ranging from crucial business data to sensitive personal details. In executing all these vital transactions, web applications must be extremely reliable. While developers know that following best practices and implementing good design is crucial, we also know that rigorous testing is required to ensure a dependable application.
The most fundamental part of software testing is manual testing, where testers are asked to mimic an end-user’s behavior by manually performing anticipated actions. And, this method of testing can be sufficient for smaller programming projects. But in today’s software scene, where collaborative and complex applications are expected to perform a large number of intricate actions, manual testing is insufficient. And considering that more web-based software development is moving to an agile model and rapid release cycles, manually testing major functions/workflow with every new release is time consuming with diminishing returns.
Automating some of the minor test cases can increase the efficiency of testing, especially when those cases will be performed multiple times. Automated testing is great for regression and smoke testing to ensure that no defects result when changes are being made and that major workflows run as expected. Automation is also great for high-level reporting because of its test case accuracy, not to mention that automatic scripts are more reliable than the hand-executed results.
There are many automated testing product options. Open source options are a good place for companies to start. The open source software is free and readily available, and companies can easily evaluate whether automated testing is right for their needs.
The leading open source testing tool is Selenium (http://www.seleniumhq.org/). Even though it is free, Selenium is very good. Leading tech companies like Google use Selenium to test their own web applications. Selenium is a complete testing suite that is enterprise-tested and composed of two parts: Selenium IDE and Selenium WebDriver.
Selenium IDE is a Firefox Add-On which allows testers to record their actions within Firefox and play them back in the same browser. Selenium IDE has an intuitive GUI and is user-friendly; junior testers should have no problem picking up the tool to create simple automated test scripts. However, because the script playback in Selenium IDE is limited to Firefox (although playback on other browsers is available as an unstable experimental feature), it’s best to use Selenium IDE a prototyping tool for creating advanced test scripts in Selenium WebDriver.
Selenium WebDriver offers the flexibility and scalability that Selenium IDE lacks. In addition to allowing Selenium scripts to be written in popular programming languages, WebDriver is also capable of executing robust tests on all major desktop and mobile browsers. This creates unlimited potential on how powerful the test scripts can be. And with smooth integration with industry-standard development tools like Eclipse, WebDriver test scripts highly maintainable in a proven environment. Moreover, with Selenium Grid (a part of WebDriver), testers can do parallel testing across multiple machines and platforms to increase coverage and decrease test run time.
Selenium IDE Firefox Add-On
When to Automate
Although automated testing can be fun for developers, that does not mean every project requires something like Selenium. Manual testing can be sufficient for test scripts that only need to be executed once or twice in short-term and low difficulty projects. For long-term and complex projects which require multiple rounds of regression and smoke testing, an automated test script will prove valuable in the long run. More often than not, a successful QA plan is composed of both manual and automated testing.