The whole software testing is based on Manual testing and Automation testing. For a project testing, you can perform Manual testing, Automation testing or you can use both. Automation can really help us and save a lot of time. Test automation offers a possibility to perform these types of testing effectively. Once automated tests have been developed, they can be run quickly and repeatedly. Many times, this can be a cost-effective method for regression testing of software products that have a long maintenance life. Even minor patches over the lifetime of the application can cause existing features to break which were working at an earlier point in time.
First of all, We have to understand what the ‘tool’ is and what it can do (including its limitations), and how best to apply it to the situation at that time. Or when not to apply it; an important point which a lot of people/companies miss. To automate testcases, we need to identify the testcases, what to be automated, what not to be automated.
What kind of risk is there?
- Maybe automation will take all of your time and you won’t finish it.
- Maybe your automation will be wrong and produce false positives or negatives.
- Maybe the tool you chose doesn’t meet your needs.
- Maybe you need training and don’t have time or money to get it.
When to use automation tools:
- Use automation tools when your environment/product/project/site is stable
- Automation for testing activity is important because some redundant work can achieved through. Need to run so many test cases part of Regression Tesing.
Automation Test Process:
- Selecting the Test tool
- Define scope of automation
- Test execution
- Results Analysis
Types of Automation Tools:
- OpenSource Tools
- Paid Tools
Opensource tools are free of cost tools, where as Paid tools are purchased from vendors.
Example for paid tools are QTP, Visual Studio Coded UI, Rational Robot, Ranorex, Tellurium…etc..
Some Useful OpenSource Tools:
Cucumber is a tool that runs functional tests written in plain text. It supports over 20 spoken languages. Programmers then write small chunks of ruby or java code to wire the plain text tests to the system under test. Cucumber is designed for Behavior Driven Development.
Requirement: Ruby, JRuby, Java or any web platform
Enterprise Web Test
Enterprise Web Test allows Java programmers to write re-usable tests for web applications that, unlike HttpUnit, “drive” the actual web browser on the actual platform they intend to support. Tests can be leveraged for functional, stress, reliability.
Requirement: Microsoft, OS Independent, Linux
Robotium is test framework created to write powerful and robust automatic Black-box & White-box test cases for Android applications. Test case developers can write Functional, System and Acceptance test scenarios, spanning multiple Android activities. It installs the test case suit as an application on device/simulator, which access the AUT(application under test) and executes test scenarios in real environment.
OS Independant. Needs Java 1.4+
Selendroid is a test automation framework which drives of the UI of Android native and hybrid applications (apps). Tests are written using the Selenium 2 client API. Selendroid can be used on emulators and real devices and can be integrated as a node into the Selenium Grid for scaling and parallel testing
Testing tool for browser-based testing of web applications. It can be used both for functional, compatability (it has extensive cross-browser support) and regression testing.
Requirement: Windows, Linux or Mac
A simple API to generate an evidence for your Selenium tests. This project enables developers and testers to create an evidence of their tests. This API is very simple and works only in Java. The result of this tool is a .pdf file that will show an image and description each steps you want.
SeLite (Selenium+SQLite) enables automated database-driven navigation of web applications. It keeps isolated test data. It improves productivity of Selenium IDE: it allows tests to be expressive, structured, configurable and reusable. That helps your test scripts to be more maintainable and shareable.
Sikuli is a visual technology to automate and test graphical user interfaces (GUI) using images (screenshots). Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environment for writing visual scripts with screenshots easily.
Requirement: Windows Linux Mac
soapui is a java-swing based desktop application for inspecting, invoking and functional testing of webservices over HTTP. It is mainly aimed at developers/testers providing and/or consuming webservices (java, .net, etc). Functional testing can be done interactively in soapui or within a CI-process using the soapui maven plugin.
Requirement: Java 1.5
Watij (pronounced wattage) stands for Web Application Testing in Java. Based on the simplicity of Watir and enhanced by the power of Java, Watij automates funtional testing of web applications through the real browser. There is a Google group at http://groups.google.com/group/watij
WatiN stands for Web Application Testing in dotNet. Inspired by Watir, WatiN enables web application testing, through Internet Explorer on a Windows platform, expressed in any .Net language.
Watir (Web Application Testing in Ruby) is a functional testing tool for web applications. It supports tests executed at the web browser layer by driving a web browser and interacting with objects on a web page. It uses the Ruby scripting language.
Requirement: Windows (currently only supports Internet Explorer)
Read more about