The software must be tested to have confidence that it will work as I should in its intended environment. Software testing needs to be effective at finding any defects which are there, but it should also be efficient, performing the tests as quickly and cheaply as possible.
For any system, there is an astronomical number of possible test cases, and yet practically we have time to run only a very small number of them. Yet this small number of test cases is expected to find most of the defects in the software, so the job of selecting which test cases to build and run is an important one. Both experiment and experience have told us that selecting test cases at random is not an effective approach to testing. A more thoughtful approach is required if good test cases are to be developed.
What exactly is a good test case? There are four attributes that describe the quality of a test case; that is, how good it is. Perhaps the most important of these is its defect detection effectiveness, whether or not it finds defects, or at least whether or not it is likely to find defects. A good test case should also be exemplary. An exemplary test case should test more than one thing, thereby reducing the total number of test cases required. The other two attributes are both cost considerations: how economical a test case is to perform, analyze, and debug; and how evolvable it is, i.e. how much maintenance effort is required on the test case each time the software changes. These four attributes must often be balanced one against another.
The automation testing is used to change the manual test cases into a test script with the help of some automation tools. Test Automation is the best way to increase the effectiveness, test coverage, and execution speed in software testing.
Benefits of Automation Testing
- 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
- Re-usable test scripts
- Test Frequently and thoroughly
- More cycle of execution can be achieved through automation
- Early time to market
In order to gain benefits from test automation, the tests to be automated need to be carefully selected and implemented.
Which Test Cases to Automate?
Test cases to be automated can be selected using the following criterion
- High Risk — Business Critical test cases
- Test cases that are repeatedly executed
- Test Cases that are very tedious or difficult to perform manually
- Test Cases that are time-consuming
Automated Testing Process:
Following steps are followed in an Automation Process
Step 1) Test Tool Selection
Test Tool selection largely depends on the technology the Application Under Test is built on. It’s a good idea to conduct a Proof of Concept of Tool on AUT.
Step 2) Define the scope of Automation
The scope of automation in the area of your Application Under Test will be automated. The following points help determine scope:
- The features that are important for the business
- Scenarios that 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
Step 3) 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
Step 4) 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.
Step 5) Maintenance
Test Automation Maintenance Approach 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.
Automation Testing Tools
There are tons of Functional and Regression Testing Tools available in the market. Here are some best tools certified by our experts.
- Ranorex Studio
- QTP (MicroFocus UFT)
- Rational Functional Tester
It is an open-source and most commonly used tool in automation testing. This tool is used to test web-based applications with the help of test scripts, and these scripts can be written in any programming language such as java, python, C#, Php, and so on.
Features of Selenium
This tool is most popular because of its various features. Following are standard features of Selenium:
- Selenium supports only web-based application, which means that the application can be opened by the browser or the URL like Gmail, Amazon, etc.
- Selenium does not support a stand-alone application, which means that the application is not opened in the browser or URL like Notepad, MS-Word, Calculator, etc.
- Selenium web driver is the latest tool in the selenium community that removes all the drawbacks of the previous tool (selenium-IDE).
- Selenium web-driver is powerful because it supports multiple programming languages, various browsers, and different operating systems and also supports mobile applications like iPhone, Android.
“Software Test Automation Effective use of test execution tools” by MARK FEWSTER and DOROTHY GRAHAM