WHAT IS AUTOMATION TESTING?
Also known as Test Automation is another kind of Software Testing technique that has been performed by the usage of special automated testing software tools to execute a test case suite. When the testing case suites are executed using Automated testing tools, it is known as Automation Testing. Whereas Manual Testing is done by a human perception sitting in front of a computer who carefully execute the test steps. So, the key difference between both the testing is of human interaction and usage of software tools. The Automation Testing software can also compare expected and actual results, enter test data into the System Under Test and generate detailed test reports. Software Test Automation requires considerable investments of resources and money. Consecutive Development cycles requires execution of same test suite frequently. It’s possible to record this test-suite and re-play it as required by using a Automation test tool. No human interference is required, once the test suite is automated. This improves ROI of test Automation. The vital aim of Automation is to lessen the number of test cases to be run manually by humans and not to banish Manual Testing entirely. Automation testing requires a pretty huge investment of resources and money. Also, Automated testing suites do not require any human intervention.
GOAL OF AUTOMATION TESTING :
(1) REDUCING HUMAN EFFORT & TESTING TIME : Automation is executed where Manual Testing would have taken a huge amount of time. It helps in minimising time of the test and simplify testing of complex Applications with several features. QA engineers set up the System and it starts working automatically at night. Every test scenario can be performed a multiple of times, making Automation highly useful for regression. Thus, automation enhances the time and human resources.
(2) INCREASING EFFICIENCY & QUALITY WHILE REDUCING COSTS : Automation is always proved to be more beneficial in the long run. Flawless performance and timely releases demand a lot of effort. QA engineers can perform tests during off-peak hours, simulate several kind of environments, distribute them across multiple servers,etc. Carrying out all these tests manually will take much more effort and time. You will need to pay extra for more working hours and wait for a long time – not the best scenario for a dynamic project or tight deadlines.
(3) USER SATISFACTION AND HIGH-QUALITY SOFTWARE : These two things define the main aim of software testing. Members of a QA team use several kinds of tools and testing to attain the same goal i.e to release the software without any critical errors or bugs and to ensure that the users are satisfied with it. Automation testing contributes to it with its special techniques.
WHY AUTOMATION TESTING IS IMPORTANT?
(1) RELIABILITY & ACCURACY : Manual testing is prone to errors and defects because of the number of prerequisites involved in running each test. Additionally, each test demands a different execution sequence. Mistakes are normal and expected, as manual testing is done by humans after all. This might result in faulty outcomes being generated to the Development team. Automated tests carry out the same steps every time but with accuracy. The results are usually made available to everyone concerned in the least possible amount of time. Yet another aspect of reliability is to redo the same tests on several different servers. This gives the ability to quickly verify whether the tests are running as expected on all servers, thereby ruling out the possibility of server configuration issues.
(2) INCREASED CONFIDENCE : Agile methodologies suggests short cycles of feature development, called Sprints that generally run for 2-3 weeks. These short sprints are repeated within a bigger release lifecycle. This demands for a new way to organize the test efforts and demands greater efficiency. Each sprint is concentrated on the development of a small set of features but should deliver a functional system at its end, including all features from the previous sprints. The risk of delivering a fully functional system without breaking a previously working feature is high in case of improper testing. Testing manually all features repeatedly in every sprint is expensive, counter-productive and inefficient. This is where test automation has its highest advantage. Automating the tests and being able to repeat it quickly in each sprint gives a confidence that all things are working as expected.
(3) REDUCE COST OF FAILURE : If you are justifying the introduction of Automated Tests, don’t just look at the financial expenses instead look at the cost of failure of the organisation. What does it cost to the goodwill of the company if problems are not found while manually testing and escape into production? Are you willing to lose customers? How much time, resources and money need to be spent rectifying the situation? A absolutely strong set of test-suites that are performed oftenly each time a change is made to the code minimises the risk of issues leaking into the field. Automated tests help in discovering bugs and errors at early-stage in the software development lifecycle, thereby reducing the risk of delivering faulty software. At the end of the day, delivering a quality product to the market beats any other type of savings and cutbacks while satisfying the users entirely.
(4) SAVES TIME : Yes, agreed that the beginning setup of Automation Testing cases requires a lot of effort and time, but, once you automate the tests, you can reuse these tests as much as you like or want. Once the setup is in place, automated tests can be repeatedly run, reducing the time to run repetitive manual tests from weeks to hours. Automated tests can be performed significantly faster as compared to manual tests and are less labor intensive and less error prone. You need not have to constantly carry out manual steps by setting up the environment or remember the steps to perform each and every test. Everything is done automatically. Once written, these tests can be performed number of times with no additional cost. The tests are also available 24/7, unlike manual testers.
(5) LOAD TESTING : It assures that the application can handle expected and unexpected user loads. If currently you are using a manual testing approach in your organization, the load testing is probably pushed off until the end of a development cycle. While Agile methodologies and Continuous Integration make the case for load testing frequent and early, a huge percentage of organizations continue to perform these too late, ultimately resulting in release dates pushed further and delayed software releases. Automated testing is capable of running thousands of tests simultaneously, simulating millions of users, all of which is next to impossible with manual testing. Realistic load tests should include parameterized settings that are configurable using variables that are randomized and represent what happens in the real world.
Test Automation is the best way to increase the test coverage, effectiveness and execution speed in software testing. Another reasons why Automated software testing is important are :
1. Manual Testing of all workflows, all fields, all negative scenarios is time and money consuming.
2. It is difficult to test for multilingual sites manually.
3. Test Automation in software testing does not require Human intervention. You can run automated test unattended (overnight).
4. Test Automation increases the speed of test execution.
5. Automation helps increase Test Coverage.
6. Manual Testing can become boring and hence error-prone.
ADVANTAGES OF AUTOMATION TESTING :
(1) Automation Testing improvises the coverage of testi as automated execution of test cases is faster than manual execution.
(2) Automated testing provides round the clock coverage as automated tests can be executed 24/7.
(3) It helps to train the test engineers to increase their area of knowledge by producing a repository of different tests.
(4) It includes all other activities such as generating the right test data, selecting the right product build and analyzing the results.
(5) Automated testing has less and very few chances of error and defects hence more reliable in nature.
DISADVANTAGES OF AUTOMATION TESTING :
(1) It has limited to some organisations as many organisations do not prefer test automation techniques.
(2) Automated testing is very much expensive as compared to manual testing.
(3) It also becomes inconvenient and burdensome as to decide who would automate and who would train.
(4) Automation testing only removes the mechanical execution of testing process, but creation of test cases still required testing professionals.
(5) Automated testing would also require additionally trained and skilled people which leads to miscellaneous costs.
WHICH TEST CASES TO AUTOMATE?
Test cases to be automated can be selected using the following criterion to increase the automation ROI –
1. High Risk – Business Critical test cases.
2. Test cases that are repeatedly executed.
3. Test Cases that are very tedious or difficult to perform manually.
4. Test Cases which are time-consuming.
The following category of test cases are not suitable for automation –
1. Test Cases that are newly designed and not executed manually at least once.
2. Test Cases for which the requirements are frequently changing.
3. Test cases which are executed on an ad-hoc basis.
* To be continued.