Software Test Automation
What is Software Testing
Software testing is a process, to evaluate the functionality of a software application with an intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect-free in order to produce a quality product.
Why Software Testing is Important?
Software Testing is Important because if there are any bugs or errors in the software, it can be identified early and can be solved before delivery of the software product. Properly tested software product ensures reliability, security and high performance which further results in time saving, cost effectiveness and customer satisfaction.
What is Test Automation?
Test automation is the practice of running tests automatically, managing test data, and utilizing results to improve software quality. It’s primarily a quality assurance measure, but its activities involve the commitment of the entire software production team. From business analysts to developers and DevOps engineers, getting the most out of test automation takes the inclusion of everyone.
The automation testing software can also enter test data into the System Under Test, compare expected and actual results and generate detailed test reports. Test Automation demands considerable investments of money and resources.
Automated Testing Process
- Test tool selection
- Define scope of Automation
- Planning, Design and development
- Test Execution
- Maintenance
Test tool selection
Test Tool selection largely depends on the technology the Application Under Test is built on. For instance, QTP does not support Informatica. So QTP cannot be used for testing Informatica applications. It’s a good idea to conduct a Proof of Concept of Tool on AUT.
Define the scope of Automation
The scope of automation is the area of your Application Under Test which will be automated. Following points help determine scope:
- The features that are important for the business
- Scenarios which have a large amount of data
- Common functionalities across applications
- Technical feasibility
- The extent to which business components are reused
- The complexity of test cases
- Ability to use the same test cases for cross-browser testing
Planning, Design, and Development
During this phase, you create an Automation strategy & plan, which contains the following details-
- Automation tools selected
- Framework design and its features
- In-Scope and Out-of-scope items of automation
- Automation testbed preparation
- Schedule and Timeline of scripting and execution
- Deliverables of Automation Testing
Test Execution
Automation Scripts are executed during this phase. The scripts need input test data before there are set to run. Once executed they provide detailed test reports. Execution can be performed using the automation tool directly or through the Test Management tool which will invoke the automation tool.
Maintenance
Test Automation Maintenance is an automation testing phase carried out to test whether the new functionalities added to the software are working fine or not. Maintenance in automation testing is executed when new automation scripts are added and need to be reviewed and maintained in order to improve the effectiveness of automation scripts with each successive release cycle.
Types of testing
1) Functional Testing — on operations which perform as per the expectations.
2) Regression Testing — on the behavior of the system which has not been changed.
3) Exception or Negative Testing –thereby forcing error conditions in the system.
4) Stress Testing — to determine the absolute capacities of the application and operational infrastructure.
5) Performance Testing — to provide assurance that the performance of the system will be adequate for both batch runs and online transactions in relation to business projections and requirements.
6) Load Testing — to determine the points at which the capacity and performance of the system become degraded to the situation that hardware or software upgrades would be required.
Benefits Of Automated Testing
1) Reliable: Tests perform precisely the same operations each time they are run, thereby eliminating human error
2) Repeatable: You can test how the software reacts under repeated execution of the same operations.
3) Programmable: You can program sophisticated tests that bring out hidden information from the application.
4) Comprehensive: You can build a suite of tests that covers every feature in your application.
5) Reusable: You can reuse tests on different versions of an application, even if the user interface changes.
6) Better Quality Software: Because you can run more tests in less time with fewer resources
7) Fast: Automated Tools run tests significantly faster than human users.
8) Economical: As the number of resources for regression test are reduced.
Disadvantages Of Automated Testing
1) Proficiency is required to write the automation test scripts.
2) Debugging the test script is major issue. If any error is present in the test script, sometimes it may lead to deadly consequences.
3) Test maintenance is costly in case of playback methods. Even though a minor change occurs in the GUI, the test script has to be re-recorded or replaced by a new test script.
4) Maintenance of test data files is difficult, if the test script tests more screens.
Test Automation Tools
- Mabl
- Selenium
- Squish
- TestingWhiz
- Watir
- Testim
- AppliTools
- Katalon Studio
- LambdaTest
- Telerik Studio
- Unified Functional Testing (UFT One)
- Sahi Pro
Working with Selenium
What is Selenium
Selenium is a free (open-source) automated testing framework used to validate web applications across different browsers and platforms. You can use multiple programming languages like Java, C#, Python etc to create Selenium Test Scripts. Testing done using the Selenium testing tool is usually referred to as Selenium Testing. Selenium Software is not just a single tool but a suite of software, each piece catering to different Selenium QA testing needs of an organization.
These are the tools integrated with Selenium,
- Selenium Integrated Development Environment (IDE)
- Selenium Remote Control (RC)
- WebDriver
- Selenium Grid
Advantages of Selenium
Selenium is an open-source tool.
Can be extended for various technologies that expose DOM.
Has capabilities to execute scripts across different browsers.
Can execute scripts on various operating systems.
Supports mobile devices.
Executes tests within the browser, so focus is NOT required while script execution is in progress.
Can execute tests in parallel with the use of Selenium Grids.
Disadvantages of Selenium
Supports only web based applications.
No feature such as Object Repository/Recovery Scenario
No IDE, so the script development won’t be as fast as QTP.
Cannot access controls within the browser.
No default test report generation.
For parameterization, users has to rely on the programming language.