Software Testing is a method to check whether the actual software product matches expected requirements and to ensure that the software product is Defect free. It involves execution of software/system components using manual or automated tools to evaluate one or more properties of interest. The purpose of software testing is to identify errors, gaps or missing requirements in contrast to actual requirements.
It is a software testing technique that performs using special automated testing software tools to execute a test case suite. On the contrary, Manual Testing is performed by a human sitting in front of a computer carefully executing the test steps.
Automated Testing Process
Following steps are followed in an Automation Process
-Test Tool Selection
– Define scope of Automation
– Planning, Design and Development
– Test Execution
Benefits of Automation Testing
Following are the Test Automation benefits:
● 70% faster than the manual testing
● Wider test coverage of application features
● Reliable in results
● Ensure Consistency
● Saves Time and Cost
● Improves accuracy
● Human Intervention is not required while execution
● Increases Efficiency
● Better speed in executing tests
● Reusable test scripts
Automation Testing Tool
2. QTP (MicroFocus UFT)
It is a software testing tool used for Regression Testing. It is an open source testing tool that provides playback and recording facilities for Regression Testing. The Selenium IDE only supports Mozilla Firefox web browser.
● It provides the provision to export recorded script in other languages like Java, Ruby, RSpec, Python, C#, etc
● It can be used with frameworks like JUnit , Maven, NUnit, TestNG, and Docker.
● It can execute multiple tests at a time
● Autocomplete for Selenium commands that are common
● Walkthrough tests
● Identifies the element using id, name, X-path, etc.
● Store tests as Ruby Script, HTML, and any other format
● It provides an option to assert the title for every page
● It supports selenium user-extensions.js file
Selenium Tools Suit
● Selenium Integrated Development Environment (IDE)
● Selenium Remote Control (Now Deprecated)
● Selenium Grid
1. Selenium IDE
Selenium IDE is implemented as a Firefox extension which provides record and playback functionality on test scripts. It allows testers to export recorded scripts in many languages like HTML, Java, Ruby, RSpec, Python, C#, JUnit and TestNG. You can use these exported scripts in Selenium RC or Webdriver
2. Selenium Remote Control
Selenium RC (officially deprecated by selenium)allows testers to write automated web application UI tests in any of the supported programming languages. It also involves an HTTP proxy server which enables the browser to believe that the web application being tested comes from the domain provided by the proxy server.
Selenium RC comes with two components.
1. Selenium RC Server (acts as a HTTP proxy for web requests).
2. Selenium RC Client (library containing your programming language code).
3. Selenium Webdriver
Selenium WebDriver is a web framework that permits you to execute cross-browser tests. This tool is used for automating web-based application testing to verify that it performs expectedly. Selenium WebDriver allows you to choose a programming language to create test scripts. As discussed earlier, it is an advancement over Selenium RC to overcome a few limitations. Selenium WebDriver is not capable of handling window components, but this drawback can be overcome by using tools like Sikuli, Auto IT, etc.
4. Selenium Grid
Selenium Grid is also an important component of Selenium Suite which allows us to run our tests on different machines against different browsers in parallel. In simple words, we can run our tests simultaneously on different machines running different browsers and operating systems.
Using TestNG, you can generate a proper report, and you can easily come to know how many test cases are passed, failed, and skipped. You can execute the failed test cases separately
In Maven terminology, a repository is a directory where all the project jars, library jar, plugins or any other project specific artifacts are stored and can be used by Maven easily
JUnit is an open source Unit Testing Framework for JAVA. It is useful for Java Developers to write and run repeatable tests. Erich Gamma and Kent Beck initially develop it. It is an instance of xUnit architecture. As the name implies, it is used for Unit Testing of a small chunk of code.
Cucumber is a testing approach which supports Behavior Driven Development (BDD). It explains the behavior of the application in a simple English text using Gherkin language.
SpecFlow is inspired by the Cucumber framework in the Ruby on Rails world. Cucumber uses plain English in the Gherkin format to express user stories. Once the user stories and their expectations are written, the Cucumber gem is used to execute those stores.
Docker is an open-source containerization platform that makes it easy to create, deploy, and run applications in a secure manner using containers.
Framework’s and IDE’s:
This blog helps us to know about the Importance of Automation Testing, Various Tools & benefits of the Automation tools available in Open source and in Market.