Automated Software Testing
Automated Software testing (Test Automation) is a technique in which particular programs are used to execute test cases. This is different from manual testing, in which test cases are executed manually by the tester.
Automation scripts compare the results with the actual ones and generate detailed test reports.
Product development is iterative, and each iteration typically requires the same set of tests to run. With automated testing tools, you can record test suites and run them when needed. Once the test suite is automated, there is little to no human involvement in the execution of the tests. This makes automated testing an effective technique. The goal of automation is to reduce the number of tests that need to be done manually.
Why do we need automated testing?
Automation testing is the best way to improve efficiency, test coverage, and reduce testing time.
Automated Testing is critical, and here’s why:
- Manual testing of all possible use cases is time-consuming (and therefore money)
- Automated Testing Increases Testing Speed
- Automated testing does not require human intervention to run tests. Automated tests can be run at any time (day, night, weekends, and holidays)
- Repeated manual testing of the same functionality is boring
What to automated first?
For maximum efficiency, use the following criteria to determine which scenarios are suitable for automation:
- Mission Critical Business Functionality
- Test cases that need to be run many times
- Test cases that are difficult to reproduce manually
- Test cases that take a long time to play
The following criteria are not suitable for automation:
- New test cases that have not yet been executed manually
- Test cases for functionality with frequently changing requirements
- Test cases that are rarely executed
We have written a small guide for choosing priority test cases for automation
- Automation Process:
- Step 1: Choosing an Automation Tool
- Step 2: Determine the functionality to be automated
- Step 3: Planning, test design, and test development
- Step 4: Running Tests
- Step 5: Maintain written tests
Determining the functionality to be automated
The area for automation can be defined according to the following criteria:
- Functionality that matters to business
- Scenarios that require large amounts of input to test
- Functionality used in several parts of the application
- Technical feasibility
- Difficulty writing test cases
- Ability to use the same test cases for cross-browser testing
Planning, test design and development
At this stage, a test strategy and a test plan are created, which contain the following details:
- Chosen automation tool
- Framework with a description of its features
- Description of the functionality whose testing will be automated
- Preparation of stands for tests
- Schedule Autotests
- Results of automated testing
- Running Tests
- During this stage, autotests are performed. After execution, a detailed test report is generated.
Test execution can be started either from the automation tool directly or from the Test Management Tool, which will launch the automation tool.
Example: HP Quality Center is a test management system that manages QTP to run autotests.
Support for written tests
At the support stage, existing tests are changed (in case of a planned change in functionality) or new tests are added.
Tips for using Automation Tools
- The functionality suitable for automation must be determined before the development of the project begins.
- The automation tool should be chosen based on the requirements of a particular product, not popularity.
Stick to coding standards when you develop autotest, here’s some of them:
- Stick to guidelines when writing code
- Leave a comment
- Handle errors – When developing, think about how your system will work in case of incorrect application behavior.
Collect metrics to determine the effectiveness of automated testing, here’s some of them:
- Collect metrics to determine the effectiveness of automated testing
- Percentage of bugs found
- Time spent running autotests for each release
Benefits of Automation Testing (Automated testing)
- 70% faster than manual testing
- Reliability
- Saves time and money
- Does not require human intervention to perform tests
- Ability to reuse written scripts
Types of Automated Testing
- Smoke Testing
- Unit Testing
- Integration Testing
- Functional Testing
- Keyword Testing
- Regression Testing
- Data Driven Testing
- Black Box Testing