Automation Testing Tutorial | Software Testing Material
In this article, we are going to see what is Automation Testing and the following
We know that every project has three important aspects such as Quality, Cost & Time. The objective of any project is to get a high-quality output while controlling the cost and the time required for completing the project.
What is Automation Testing?
Automation testing is the process of testing the software application using an automation test tool to find the defects.
In this process, executing the test scripts and generating the results are performed automatically by test automation tools.
Some most popular tools to perform automation test are Selenium WebDriver, Katalon Studio, etc.,
When to use Automation Testing?
We do Automation testing in the following areas:
Regression Testing
Repeated testing of an already tested program, after modification, to discover any defects introduced or uncovered as a result of the changes in the software being tested or in another related or unrelated software components. So, regression testing is best suitable for automated testing because of frequent code changes and it is beyond the human capacity to execute tests in a timely manner.
Read more about regression testing here
Load Testing
It is to verify that the system/application can handle the expected number of transactions and to verify the system/application behavior under both normal and peak load conditions. Automated testing is also the best way to complete the testing efficiently when it comes to load testing. It is best suited for automation testing.
Read more about load testing here
Performance Testing
This type of testing determines or validates the speed, scalability, and/or stability characteristics of the system or application under test. Performance is concerned with achieving response times, throughput, and resource-utilization levels that meet the performance objectives for the project or product. It is best suited for automation testing.
Read more about performance testing here
The tests which can be done through automated or manual approach:
Integration Testing
Integration Testing is the process of testing the interface between the two software units. Integration testing is done by multiple approaches such as Big Bang Approach, Top-Down Approach, Bottom-Up Approach, and the Hybrid Integration approach.
Integration Testing Complete Guide
System Testing
Testing the fully integrated application to evaluate the system’s compliance with its specified requirements is called System Testing AKA End to End testing. Verifying the completed system to ensure that the application works as intended or not.
Unit Testing
Unit Testing is also called Module Testing or Component Testing. It is done to check whether the individual unit or module of the source code is working properly. It is done by the developers in the developer’s environment.
Acceptance Testing
It is also known as pre-production testing. This is done by the end-users along with the testers to validate the functionality of the application. After successful acceptance testing. Formal testing conducted to determine whether an application is developed as per the requirement. It allows the customer to accept or reject the application. Types of acceptance testing are Alpha, Beta & Gamma.
In interviews, you may be asked to answer the following question
Which tests cannot be automated?
Let’s see which tests cannot be automated. Test which takes too much effort to automate are
- Exploratory Testing
- User interface testing
- Adhoc Testing
When do you prefer Automation Testing over Manual Testing?
We prefer Manual Testing over Automation Testing in the following scenarios
- It handles repetitive and time-consuming tasks
- To do parallel testing
- To do non-functional testing like load, performance, stress testing
- Avoids human errors
Automated Testing Pros and Cons
Advantages of automated testing
- Automation is faster in execution then manual testing
- It is cheaper compared to manual testing in the long run
- Automated testing is more reliable
- Automated testing is more powerful and versatile
- It is mostly used for regression testing
- It is reusable because the automation process can be recorded
- Automation does not require human intervention. Test scripts can be run unattended
- It helps to increase the test coverage
Disadvantages of Automated Testing
- It is recommended only for stable products
- Automation testing is expensive initially
- Most of the automation tools are expensive
- It has some limitations such as handling captcha, getting visual aspects of UI such as fonts, color, sizes etc.,
- Huge maintenance in case of repeated changes in the requirements
Not all the tools support all kinds of testing. Such as windows, web, mobility, performance/load testing
Which Test Cases To Automate?
Test Cases to automate are as follows
- Data-driven test cases
- Test cases with higher complexity
- Test case with many database updates
- The test execution rate is high
- Smoke/Critical tests
- Tests with several combinations
- Graph test cases
- Higher manual execution time
Learn detailed explanation here
Which Test Cases Not To Be Automated?
Types of tests need to be performed manually are as follows
- Subjective Validation
- New Functionalities
- Strategic Development
- User Experience
- Complex Functionality
- Quality Control
- Low return on investment
- Installation and setup testing
Learn detailed explanation here
Difference between Manual Testing & Automation Testing (Automation Testing Vs Manual Testing)?
Let’s see the difference between Automation and Manual Testing.
Automation Testing Vs. Manual Testing:
Aspect | Manual Testing | Automation Testing |
---|---|---|
Reliability & Accuracy | Manual testing is less reliable. Due to human error, manual testing is not accurate all the time. | Automated testing is more reliable. It performs same operation each time. It eliminates the risk of human errors. |
Initial Investment & Cost | Initial investment of manual testing is less than automation. Investment is required for human resources. ROI is lower in the long run compared to Automation testing. | Initial investment of automation testing is higher. Investment is required for testing tools. In the long run it is less expensive than manual. ROI is higher in the long run compared to Manual testing. |
Human Resources | Requires more human resources for test execution. Labor-intensive process. | Requires fewer human resources for execution but needs skilled professionals for setup and maintenance. |
Regression Testing | Manual testing is a practical option where the test cases are not run repeatedly and only needs to run once or twice. | Automation testing is a practical option when we do regressions testing. |
Execution Speed | Execution of test cases is time consuming and needs more human resources | Execution is done through software tools, so it is faster than manual testing and needs less human resources compared to manual testing. |
Exploratory Testing | Exploratory testing is possible. Humans can discover unexpected issues and usability problems. | Exploratory testing is not possible. Cannot discover issues outside predefined test scenarios. |
Performance Testing | Performance Testing is not a practical option in manual testing | Performance Testing like Load Testing, Stress Testing etc. is a practical option in automation testing. |
Parallel Execution | Its not an easy task to execute test cases in parallel in manual testing. We need more human resources to do this and becomes more expensive. | It can be done in parallel and reduce test execution time. |
Programming Knowledge | Programming knowledge is not required to do manual testing. | Programming knowledge is a must in automation testing |
Build Verification Testing (BVT) | Build verification testing (BVT) is not recommended | Build verification testing (BVT) is highly recommended |
User Interface (UI) Testing | It involves human intervention, so it is highly effective to do User Interface testing. | Human intervention is not much, so it is not effective to do User Interface testing. |
Test Data Management | Manual handling of test data increases the likelihood of errors in data setup and cleanup. | Automated creation, management, and cleanup of test data ensure consistent handling across test runs. |
Maintenance | Test cases require little maintenance and are easily adaptable to minor changes. | High maintenance effort is required, as test scripts must be updated with application changes. |
Documentation & Reporting | Manual documentation and reporting can often be inconsistent and lacking in detail. | Automated reporting provides consistent documentation with detailed logs, screenshots, and metrics. |
Flexibility | Extremely adaptable, capable of adjusting to changes and exploring various scenarios in real time. | Less flexible, as changes in test scenarios require script modifications. |
Coverage | Coverage is limited due to time and resource constraints, potentially overlooking edge cases. | Enables broader coverage by efficiently testing multiple combinations and scenarios. |
Cognitive Testing | Excellent for cognitive testing, accessibility testing, and scenarios requiring human judgment. | Cannot perform cognitive testing or evaluate human factors effectively. |
Continuous Integration/ Deployment | Not suitable for CI/CD pipelines due to manual intervention requirements. | Essential for CI/CD pipelines. Enables continuous testing and faster delivery cycles. |
Initial Learning Curve | Shorter learning curve. Easier to start with basic testing concepts. | Steeper learning curve. Requires technical skills and tool-specific knowledge. |
Scalability | Limited scalability. Adding more testers increases costs proportionally. | Highly scalable. Once set up, can handle increased testing load without proportional cost increase. |
Refer this to learn more about the difference between automation testing and manual testing
Automation Testing Tools
Some of the popular automation testing tools
- HP QTP(Quick Test Professional)/UFT(Unified Functional Testing)
- Selenium
- LoadRunner
- IBM Rational Functional Tester
- SilkTest
- TestComplete
- WinRunner
- WATIR
Read more on popular automation testing tools
Benefits of Agile Test Automation:
Some of the benefits of Agile Test Automation are as follows
- Faster Execution
- Reusability
- Higher coverage
- Improved accuracy
- More powerful
- Reduces cost
Read more on the Benefits of Agile Test Automation
Types of Test Automation Frameworks
The most popular Test Automation Frameworks are as follows
- Linear Scripting Framework
- Modular Testing Framework
- Data-driven Framework
- Keyword Driven Testing Framework
- Hybrid Driven Testing Framework
- Behavior Driven Development Testing Framework
Read more on Types of Test Automation Frameworks
Automation Testing Interview Questions
Read more on Automation Testing Interview Questions
Conclusion
Here I am going to conclude this Automation Testing Tutorial. If you find any other points which we overlooked, just put it in the comments. We will include and make this post “Automation Testing Tutorial” updated.
Here I have hand-picked a few posts which will help you to learn more interview related stuff:
- Evaluating ROI of Automation Testing
- Selenium Tutorial
- Manual Testing Tutorial
- SQL Tutorial for Software Testers
- Performance Testing Tutorial
- Security Testing Tutorial
- API Testing Tutorial