Ilya Dudkin 28/03/2019 #QA #Popular #Tips 9 min read Software testing encompasses a lot of different variables, but we can divide it into two categories: manual and automated testing. Both of them have their own advantages and disadvantages, therefore, it is a good idea to know in which situation(s) you should use manual testing and automated testing. Let’s take a look.What is Manual Testing?As you probably guessed from the name all of the tests are done manually i.e. by human beings without being aided by tools, scripts or any software. During the software development process, an application must be tested manually first and then the automated testing process commences. While manual testing requires more time and effort it is necessary in order to determine the possibility of automation testing. While testing software manually might appear to be primitive, it is still required and has a role to play in a modern development and unfortunately, 100% automation is just not possible.Advantages of Manual TestingEven though manual testing might not be as accurate as automated testing, it still has its benefits:Tests are done from the human perspective – If your product is meant to be used by human beings, then it would make sense to have a human test it because they can see right away if something does not look right. Visual issues might go unnoticed by automated test scripts. Therefore, it is a good idea to conduct a manual test in order to identify usability and interface issues.Exploratory testing – We must remember to automate tests will execute the action that we tell them, and they will not deviate from the straight and narrow path. However, if you have ever asked yourself “What will happen if the user does this?” Such a question can only be answered with exploratory testing which a manual test is.Automated testing is not dependable – All has been said about the inaccuracies and limitation of manual testing, but we must also remember that there could be a bug in a test script just like there could be a bug in the code. As a result, automated testing can give you false information, but by adding a human element to the process, a software development agency can mitigate such a risk.The disadvantages of manual testing are:Not as reliable – Since the human element is involved, there is more room for error.Cannot be recorded – Automated tests can be recorded to rerun.Time-consuming – It takes more time to do manual testing.What is Automated Testing?Automated testing is using some kind of automation tool in order to conduct your test cases. While automated testing requires more commitment as far as time and money are concerned, it gives you insights that are not possible to attain with manual testing. This is why automation testing is required. In order for your testing cycle to be successful, you will have to perform the same suite of tests over and over again and if you are using an automation tool you will be able to record all of these tests and play them back if needed. The goal of testing automation is not to eliminate manual testing altogether, but rather to decrease the number of test cases that have to be run manually. The fundamental difference between manual and automated testing is that later does not require any human intervention, as soon as the test suite is automated.Pros and Cons of AutomationIn addition to all of the advantages mentioned above, there are other benefits to automated testing:Run tests 24/7 – Even though it is possible to perform around the clock, you can also run them from anywhere in the world. You can start testing after the working day is over and then come into work the next day and see the results. This can be done remotely as well.Less human resources – If you do not have a lot of people working with you would only need one test engineer to write the test script instead of having lots of people testing something manually.Reusability – Since the scripts can be used again, there is no need for new scripts all the time and it ensures consistency i.e. you can perform the same exact test again using the same steps.The disadvantages of automated testing are:Requires a significant time investment – If you upgrade the app itself, you will also have to upgrade the automated tests because if the regression packs are not well maintained you will start seeing failed tests not because there is something wrong with the code, but because of the upgrades.Slow feedback – If your script is not simple, automated checks can take quite some time. If the functionality is ready to go, sometimes it would be faster to conduct a manual test since the automated one takes some time to set it up, perform it and then wait for the results.Automated tests can lead to false results – If you are noticing failed tests on a consistent basis due to something other than actual bugs, this should raise some red flags. A failed test can be simply due to a small UI implementation, network issues which have nothing to do with the application under test and many other factors.Concluding Thoughts on Automated vs Manual testingIt is important to be aware of all this information because specific situations will require a certain test, therefore, you should be aware of all the differences between manual and automated testing. The most important thing to remember is that both of these tests have a place in today's development environment and there is no need to try and completely replace one with the other. Certainly, if you were to open a mobile app and you immediately notice that the interface is all wrong or that the navigation is not user-friendly, there is no need to waste time and run an automated test on it. Therefore, it is a good idea to complement one with another since this will give you the best of both worlds. When creating your next project keep all of this in mind so that you can create a product that is both technologically sound and one that is both appealing to the users in terms of visibility and usability.