Test Automation
What is Automation?
Automation is the Formation of technology and its application to control and monitor the production and delivery of various goods and services. Performs tasks that were previously performed by humans. Automation is being used in many areas, such as manufacturing, transportation, public services, defense, facilities, operations and, lately, information technology.
Why do we automate?
Reduce manual effort on Repetitive tests
When there are Frequent releases/code changes
To Reduce Execution Cycle time Saves time and money
Large number of Boundary Value test cases
Enable continuous delivery
Catches problem quickly
Improves accuracy Increase Test Coverage
What is Test Automation?
In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes.
Benefits of Test Automation
Speedup test execution
Avoids human errors
Unattended execution
Test what manually impossible
Improve efficiency of
— Testing
— Cost
Improve Team Morale
More time for exploratory testing
Types of Automated Testing
Code-driven
— Unit Tests/TDD
GUI(End to End Test Automation)
— UI Object property based
— Image recognition based
API/Service Test Automation
— Restful APIs, SOAP
Mobile Test Automation
— Android, IOS, Hybrid
Tools & Technologies
Test automation cannot be realized without good tools; as they determine how automation is performed and whether the benefits of automation can be delivered. Test automation tools is a crucial component in the DevOps toolchain. The current test automation trends have increased in applying artificial intelligence and machine learning (AI/ML) to offer advanced capabilities for test optimization, intelligent test generation, execution, and reporting. It will be worthwhile to understand which tools are best poised to take advantage of these trends.
Available Tools for Automation
1.Selenium (open source)
The top of almost every rank is Selenium. It is an open-source cross-platform framework for testing web applications. Auto scripts can be written in Java, C#, Python, PHP, Ruby, Perl and JavaScript. The framework includes Selenium Grid, Selenium Remote Control and Selenium IDE. Having rather high capacities, Selenium can be used for performance testing of web-based products.
2.Watir Robotium (Android testing tool)
Watir (pronounced as water) is an abbreviation for Web Application Testing in Ruby. It is a very light-weight open-source tool for automating web application testing. The best part of the tool is that it supports your web application regardless of considering which technology your app is designed.
3.Test Complete (SmartBear)
TestComplete is the top automation testing tool for desktop, mobile and web applications. With TestComplete, you can build and run functional UI tests via robust record & replay capabilities or by scripting in your favorite languages, including Python, JavaScript, VBScript and more.
4.Perfect Mobile
Perfecto test automation solution supports automated application testing over cross browsers and mobile devices. It can be integrated with various test automation frameworks. It is a licensed tool. Like other tools, it also offers a free trial.
5.Appium
Appium test automation framework is mainly intended for mobile applications. The good news is that it is an open-source tool. It supports automation of native, hybrid and mobile web applications built for iOS and Android. Appium uses vendor-provided automation frameworks and is based on client/server architecture.
Test Automation Frameworks
Need For Automation Frameworks
Test Automation Framework has a lot of benefits including an increase in efficiency, speed, and test accuracy.
1. It reduces the cost as well and lowers risks also.
2. It improves test efficiency.
3. It lowers the cost of maintenance.
4. It maximizes the test coverage and functionality of the application.
5. It also defines the reusability of code.
6. It helps in avoiding the duplication of test cases as well that is used to automate across the platforms.