What is Automation Testing - What is testing Automation - Automation Testing Tutorial
What is Automation Testing
- It is a software testing technique that performs using special automated testing software tools to execute a test case suite.
- Manual Testing is performed by a human sitting in front of a computer carefully executing the test steps, on the contrary.
- This automation testing software can also enter test data into the System Under Test, compare expected and generate detailed test reports and actual results.
- Automation test software demands considerable investments of resources and money.
- It’s possible to record this test suite and re-play it as required, while using an automation test tool.
- There is no human invention is required, once the test suite is required and this improved Return on Investment (ROI) of automation test.
- The goal of Automation is not to eliminate Manual Testing and to reduce the number of test cases to be run manually.
What is Automation Testing
Why Automation Testing ?
- In software testing automation testing is the best way to increase the effectiveness, test coverage, and execution speed.
- Manual testing of all fields, all workflows, all negative scenarios is time and money consuming.
- Automation helps increase Test Coverage and it is difficult to test for multilingual sites manually.
- At software testing automation test does not require Human intervention and we can run automated test unattended.
- Manual testing can become boring and hence error-prone and automation testing increases the speed of test execution.
Why Automation Testing
Advantages of Automation Testing
Advantages of Automation Testing
- It improves the coverage of testing as automated execution of test cases and it is faster than manual execution.
- It reduces the dependability of testing on the availability of the test engineers.
- It provides round the clock coverage as automated tests can be run all time in 24*7 environment.
- It takes far less resources in execution as compared to manual testing.
- In testing it helps which is not possible without automation such as reliability testing, stress testing, load and performance testing.
- It helps to train the test engineers to increase their knowledge by producing a repository of different tests.
- It generates the right test data and analyzing the results then includes all other activities like selecting the right product build.
Disadvantages of Automation Testing
Disadvantages of Automation Testing
- It is very much expensive than the manual testing and it becomes inconvenient and burdensome as to decide who would automate and who would train.
- It has limited to some organizations as many organizations they do not prefer test automation.
- It would also require an additionally trained and skilled people.
- It removes the mechanical execution of testing process, but creation of test cases still required testing professionals.
Lifecycle of Automation Testing
Lifecycle of Automation Testing
- In parallel the implementation of automation testing life cycle executes with the software development life cycle process.
- The structured automation testing life cycle comprises of a multi-stage process that supports the activities required to utilize and introduce an automated test tool to develop and run the test cases, build and handle test data and environment and develop test design.
- In this lifecycle methodology, test design is constructed to portray test efforts, to give project and test team a framework on the scope of the test program.
- The lifecycle of automation testing consists of
- Determining The Scope of Test Automation
- Select the Right Tool for Automation.
- Automation test Script Development + Execution.
- Setting Up the Test Environment.
- Test Plan + Test Design + Test Strategy.
Manual Testing Example
Manual Testing
Automation Testing Example
Automation Testing
What to Automate
- Test cases that test critical functionality of the application
- In an ecommerce application, in which the critical functionality will be finding the products through search and category pages, add to cart and buy functionality.
- Test cases written for these functionalities which is priority need to be chosen first for execution.
- Test cases for functionalities like add to wishlist and notify me should be of lesser priority.
What to Automate
Test cases that require repeated test execution with a large dataset
- There are several test case and application for which we need to perform repeated actions.
- These types of test cases are ideal for automation because automation reduces considerable amount of testing effort.
- For an example if we automate the flow of search functionality with search terms and verify that search results, then the same scripts can be run again and again with different search terms like single word, multiword etc.
Tests that are time-consuming
- Workflows that take considerable amount of time to execute and set up can be considered for automation.
- For example: In an ecommerce application some test cases require setting up of several products and we need to perform certain operations on these products.
- Such types of test cases when executed will reduce the test execution time and also help manual testers to avoid redundant task and to focus on other exploratory testing activities.
Test cases that require parallel execution
- There will be scenarios where we need to check the concurrent access to the application like performance testing with multiple users.
- Such cases require lot of time and more resources to test these kind of scenarios for which manual testing is not feasible, and can be performed using automation scripts by creating concurrent request and collating results in one place.
What not to Automate ?
- It is very important that tester has to understand what test cases should be automated and what test cases should not be executed.
What not to Automate
UI test cases
- Test cases written for GUI cannot be automated and should be tested by manual tester.
- This is because if the user changes any requirements related to GUI, the entire test case will fail.
- It is also very difficult to create reliable UI test cases for multiple devices and screen resolution.
Usability test cases
- Usability test cases, test application’s ease of use by different sets of users which, with the current technology is not possible to automate.
- Functionalities that are rarely used and take time for scripting.
- Complex scenarios can be automated by investing effort in scenarios that does not provide a good Return on Investment.
Exploratory testing
- To learn about the application flow and testing the application simultaneously we use Exploratory Testing.
- Hence, it is not possible to automate exploratory testing scenarios.
When should we Automate ?
- Automation Framework can be created in parallel with development team.
- After defining all the capabilities of automation suite during test planning automation frameworks can be designed.
Test Automation Framework
Test Automation Framework
- Certain set of rules are defined when doing manual testing of an application.
- We use different practices for optimizing the whole testing process like formatting the test case, the prioritization of test execution.
- Similarly in automation also we use automation frameworks that helps us to reduce automated script maintanence cost and improve automation testing process.
Following are some of the most widely used automation frameworks.
Test Automation
Modular framework
- Commonly used functionalities like database connection, login flow, method to read data from external file etc are created as methods in modular Frameworks.
- Instead of writing the lines of code repeatedly we can use the reusable methods where ever required.
Data-driven framework
- Test data lies in the external files in data driven frameworks.
- Test case gets executed multiple times with different dataset in each iterations based on the number of rows on the external files.
- This is called data driven automation because it is driven by data.
Keyword-driven framework
- Here the test cases are written in plain text. Test cases can also be written in excel sheet.
- These frameworks will already have the methods defined for eah keyword used like there is a code for OpenBrowser keyword, Navigate To() etc.
- Non technical user can also create test scripts in plain text using this framework.
Linear Automation Framework
- It is used as a record and playback framework.
- Script developer does not require to write the code in sequential order for functions and methods. It records the navigation process and uses that script to test that functionality.
Hybrid framework
- This consists of multiple framewoks.
- Combination of any of the two frameworks can be termed as data driven framework.
- Hybrid Framework relates to data driven with keyword driven framework
Automation Testing tool
Automation Testing tool
- Manual Test cases can be changed into automation script using some automation tools.
- There are several automation tools available in the market. Some of the most popularly used automation tools are listed below:
- Selenium
- Watir
- QTP
- Telerik Studio
- Testim
- Applitools
Selenium
- Selenium is an open source tool which is used to automated web applications.
- It is one of the most popularly used automation tool.
- For test webapplications selenium uses test scripts which is written in several programming languages like Java, Python, C#, Pearl, Ruby etc.
Selenium Testing
Features of Selenium
- Selenium can automate only web based application that can be opened on the web browsers or using an url like amazon, google etc.
- Selenium does not support windows based applications, which means that application that cannot be opened by any browsers or URL.
- Selenium webdriver latest updates removes all the drawbacks of the previous versions of Selenium Tools.
- Selenium is very powerful open source automation tool because it supports multiple programming languages, multiple browsers and can work on different operating systems as well.
- Selenium also helps to automate mobile applications in iphone and android using an Appium tool
Watir
- Waitr is also known as Web Application Testing in Ruby.
- Here code is written in ruby language and testing is done in ruby.
- It is a open source web application testing tool that supports cross browser testing.
- Waitr can interact with human who can validate the text,click on the links and fill out forms.
Watir Testing
Features of Watir
- Waitr provides support for various browsers like google chrome, opera, firefox etc.
- Watir is a lightweight and powerful tool.
- We can easily download the test file for the UI.
- Once testing is finished, screenshots can be recorded which helps to keep track of some intermediate testing.
- This tool has some inbuilt libraries which helps to perform actions on alerts, browser windows, page performances etc.
QTP
- QTP means Quick Test Professional.It is also known as Micro Focus Unifed Functional Testing.
- It is used for testing functional regression test cases for a web application.
- New test engineers will be able to understand this tool very easily.
- To automate web applications QTP uses VB Script language.
QTP
Features of QTP
- QTP has the record and play back feature.
- VB script scripting language is used to deploy and analyze the objects.
- This tool also provides test reporting.
- QTP is an easy understandble tool which can be used by both technical person and non technical person.
- Support is provided for multiple environments like Oracle, SAP, Java etc.
- Unlike Selenium which cannot automate desktop applications, QTP can automate both web based and desktop based applications.
- QTP also helps to perform Business Process Testing.
Telerik Studio
- A Modern webapplication tool that supports functional test automation.
- This tool helps testers to perform load, performance and functionality testing of both web and mobile applications.
- It also helps to identify the cross browser issues
Telerik Studio
Features of Telerik test studio
- Quality of products can be delivered on time using the telerik studio.
- Windows based, Web based and mobile applications can be tested using telerik studio tool.
- This tool also supports ASP.Net, AJAX, HTML, JavaScript, WPF and SilverLight applications for Testing.
- Telerik Studio works on multiple browsers like firefox, chrome etc for test execution.
- Senetence based UI Validation can be performed using this tool.
Testim
- It is a tool that executes test case at a very less time.
- It runs the test case on various web and mobile applications.
- Extensibility and stability of test suites can be enhanced using this tool.
- Testim provides flexibility to cover the functionalities using JavaScript and HTML.
Features of Testim
- Testim tool provides higher test stability.
- This tool supports parellel execution.
- Screenshots can be captured when executing the tests.
- Tests are automatically created using this tool.
- Requirements based and Parameterized testing can be performed using this tool.
Applitools
- This tool helps to check the GUI and users feedback on the application.
- This tool can be easily incorporated with present test instead of creating a new analysis.
- Applitools is a monitoring software, which provides visual application management and AI-powered visual UI testing.
- To deliver a quality product this open source tool can be used.
Features of Applitools
- User management access is active in this tool.
- This tool allows cross browser testing for various devices.
- Visual test reports are delivered to the users.
- This tool is available on the public platform an well as on a dedicated cloud