Automated testing, if used correctly, can provide many benefits to a project. On the other hand, it has certain drawbacks and pitfalls that we should be aware of. In this article I will try to make out all the advantages and disadvantages of automation testing services.
Automated tests are a great way to confirm that an application is still functioning properly after making changes to it. It is possible that after adding a new function to the application or fixing a bug, a new bug is added to the application, i.e. we can talk about a regression bug.
By completing the regression test run, we can quickly catch the bugs introduced by the new functionality, which will allow us to quickly identify the problem module. In this case, it is important to run tests after each build in order not to miss anything.
The second advantage stems from the previous one. Using automated testing, developers can quickly and without the involvement of testers find out whether the functionality implemented by them is working correctly, if, of course, tests are run immediately after the build. It should be remembered that when using the API, the test passing speed is significantly increased compared to using the UI.
Saving human resource
Passing automated tests takes some time, but still it is faster than manual testing by testers, especially when it comes to regression. While autotests are running, testers can perform tests not covered by automation.
Opportunity for developers to contribute to tests
For the most part, tests are written in the same language as the application. Therefore, developers can participate in writing autotests. Personally, I am not a supporter of such help and I think that developers should not be involved in the preparation and writing of tests, although the situations are different. Ideally, of course, only limit the exchange of experience.
Disadvantages of test automation
False confidence in quality
Automated tests only check what they have been programmed for. The test can pass successfully, and the defect go unnoticed, and all because the test was not programmed to catch this bug. Before automating the test, make sure that the script for it is compiled correctly.
Automated tests can fail due to many factors. Such a factor could be a slight change in the UI - interface, a drop in service, network problems, and a busy test machine. If possible, try to minimize the number of such factors.
Automation is not a test.
Automated tests are just programmed steps for executing a script. Many people who come across automation for the first time want to automate all test cases to get rid of manual testers. In fact, this is impossible. There are features in testing with which auto tests will not cope.
Writing automated tests takes time. Time will also be taken away and kept up to date. If you do not update the tests, then in regression, with a sufficient number of them, there will be a lot of falls and all their advantages will come to naught. You will have to sort out the flown tests from not updated, which takes a lot of time.
Sometimes, after the first build with the new functionality, writing autotests takes more time than a manual run. Here we must proceed from the situation and priorities. If possible, try to start writing tests at the same time as the developers are writing a new functional. You can make some kind of blank / skeleton, and then add the necessary checks or locators there after the build.