Manual Testing Vs Automation Testing
Manual Testing is the most primitive process of manually identifying the bugs in the software systems. As the name suggests, manual testing is performed by a human sitting in front of a system and carefully executing test steps as designed in a manual test case. A newly developed application must be tested manually first before automation testing is done. The primary goal of Manual Testing is to ensure that the application is error-free and is working accordingly based on the requirements.
On the other hand, automation testing is the method of using automation tools to write and execute test cases on the software application. An automation testing tool will execute the test steps, compare the expected results with the actual results, and determine if the step is passed or failed.
What is Automation Testing?
Any activity or task performed by using an automation tool is called Automation Testing. Automation Testing is a type of Software Testing where testers execute test cases using automation tools. Test Automation mainly focuses on replacing manual human intervention with devices. Because automation testing is performed through an automation tool like Selenium, QTP, Load Runner, it takes less time in exploratory tests and takes more time in maintaining test scripts.
Why and When to Automate
- When repeated test case execution is required
- When frequent regression testing is needed
- Reduce the Human Effort
- When the same application needs to test on multiple environments
- User Acceptance Tests
- Can share faster feedback to the developers
Different Automation Tools
In the present market, we have different automation tools
- SOA Test
- Silk Test
RFT, QTP, Silk Test and SOA Test are Licensed tools and whereas Selenium is an open-source tool.
Advantages of Automation Testing
- It reduces the cost of testing
- It reduces test execution time
- Reporting is the essay to share the result reports generated by tool which have total no of test executed, passed and failed.
- Reusability of scripts on other applications having similar functionality
- More software releases are expected
- Consistency and Effectiveness( Can run the scripts at any time and any number of times)
- It enormously increases the 100% test coverage
- It allows us to test our application from different perspectives.
Disadvantages of Automation Testing
- Debugging the test script is a major issue. If any error occurs in the test script, it may lead to deadly consequences.
- Proficiency is needed to write the automation test scripts.
- Maintenance of test data is difficult.
- Maintenance of test is costly in case of playback methods. Even when a minor change occurs in the GUI, the test script has to be recorded or should be replaced by a new test script.
- Testers should have basic programming knowledge
- Testers should have experience in writing automation test scripts.
Advantages of Test Automation over Manual Testing
- Saves time and human effort
- Improves test accuracy
- It offers full test coverage
- Maintenance cost is reduced
- Increases in test case efficiency
- Increases test execution speed
- Reduces manual intervention
When to automate an application
- Requirements which do not change frequently
- Once the application is steady
- When have sufficient time
- Large and serious projects
- Projects which need to test the same areas often
Different testing tools available in Automation testing
Below are the tools which can help us in Automation Testing
- QTP( Quick Test Professional)
- IBM RFT(Rational Functional Tester)
Test Automation Life Cycle
The Automation life cycle has the following phases
Test Automation Feasibility Analysis
In this phase, you check if the application can be automated or not. As all applications can’t be automated due to its limitations and we need to select the appropriate tool that fits your requirement.
In this phase, you choose the right test automation framework. There are various kinds of frameworks to choose and each framework has its own significance.
- Linear Scripting Framework
- Modular Framework
- Hybrid Testing Framework
- Data-Driven Testing Framework
- Keyword Driven Testing Framework
Test Environment Set Up
Upon choosing the framework, the next is to set up the test environment and gather the required hardware and software resources to execute the automated test cases.
Test Script Development
In this phase, you start developing the automation test scripts. Framework development is the most important for any test automation project. The developed scripts are written should be well-structured, reusable and well documented.
Test Case Execution
In this phase, you execute the test cases.
Test Result Generation
In this last phase, results are analyzed and defects are logged in the test management tool.
Automation Testing Approaches
There are three general approaches to test automation
- Code-driven Testing: This method is popularly used in agile software development. It mainly focuses on test case execution in order to find out if the various sections of code are performing as per expectations or not. In this testing classes and modules are tested with a variety of input arguments to ensure that the results that are returned are correct.
- Graphical User Interface (GUI) testing: Using this approach we can test the applications that have GUIs. Testers can record the actions performed by the user and analyze them any number of times. Test cases can be written in any programming languages like Java, C#, Python, Ruby, Perl.
- Test Automation Framework: Framework is a platform for developing software applications. It is used to produce beneficial results in the automated testing activity.
If testing is frequently needed then we should go for automation testing, otherwise, we can go for manual testing. The right selection of automation tools, proper testing process, and right testing team selection are the key players in playing automation testing to be successful.