Automation and Manual Testing. How does it work?

Arine Baghdasaryan
Fintegro Company Inc
7 min readDec 17, 2018

In our previous article “Who does the Software Testing? Developer vs Tester (Infographic)” we have defined who does the Software Testing. Now we are going to clarify what Automation and Manual Testing is, when do you need Automation Engineer or Manual one and what is the value of both of them.

What is Automation Testing?

In this process, executing the test scripts and generating the results are performed automatically by automation tools. It is important to note that the implementation of automation benefits both the company, whose management decided to optimize the testing process, internal QA processes, and the QA Automation Engineer itself. Automation is an essential part of a continuous integration, continuous delivery and deploy. It is not just about pressing one button; auto-test is an indispensable element, without which it is impossible to build all these processes. For example, continuous integration puts a great emphasis on testing automation to check that the application is not broken whenever new commits are integrated into the main branch.

Automated testing requires pre-scripted tests that are run automatically. They are in charge of comparing actual results with expected results. Subsequently, they can determine whether or not an application performs as expected. Automated testing can execute repetitive tasks and regression tests to check if an application performs correctly after newly implemented changes.

Automation Testing has a lot of positive sides:

  1. Firstly, the reduction in labour costs. When every new version of the application is released automated tests allow quick evaluate the condition of the app and to decide whether to send it back for further development or for further testing. It is recommended to use automation especially in case of regression testing on static application functionality. It changes little, but you have to test it again and again which costs immense resources.
  2. Secondly, Automation pays for itself. Automation has a positive economic effect, which increases with time. By optimizing test costs, early detection of defects and increasing productivity, the introduction of new functionality and the release of the product being tested to the market are accelerated. BUT! You have to remember that initially providing automated testing is rather expensive, and again — it pays for itself.
  3. Thirdly, automated testing is faster and reduces the duration of time required in execution:
  • Automated tests can independently run on schedule. Even when engineers finish their work, 2000 autotests can easily run without human interaction and they can “work” for you all night long, even when you are sleeping. And then all test reports are saved and sent automatically.
  • Moreover, they are reusable. Tests can be reused once they are created!
  • The same auto-tests can run in multiple environments. This kind of testing allows us to automate test runs of the applications across many browser and platform combinations. Testing, for example, eight browsers across multiple platforms is laborious for a human being but easy for a machine. So, it ensures that your application performs consistently on every platform.

4. Then, it is possible to improve the quality of the product with automation:

  • First of all because of the minimization of “human factor”, which provides greater accuracy and lower errors.
  • Then it is wider test coverage, automation widens the scope of testing and different test scenarios and test cases can be taken into consideration which also allows improving the quality of the product.

5. The next thing is that it is better and safer to test automatically some functions than to give access to them to all manual testers. For example, file logging, tracking hidden from the user processes or writing and reading database data. Automation allows you to simulate the load on the application as if thousands of users were using it at the same time.

What should you else know about Automation?

  • It is not a secret that initially providing automated testing is rather expensive. Automation tests should be always supported, thus increasing their costs. Also, additional costs are necessary for the analysis of test results. But as mentioned above automation reduces the cost and need for multiple code revisions, so eventually, it pays for itself.
  • User interface (UI) feedback is something automated testing cannot do. An automated test cannot assess user-friendliness. For example, if the bottom is too light in the contrast of background or the bug in your application causes this button to be so tiny that it is almost invisible — in this case, the automation is useless. It is a significant lack of automation.
  • And this entails the fact that excluding the “human factor” can be a disadvantage. Why? Simply because in some cases (like described above about the button) only human eye can see something that is hidden for the machine.

What is manual testing?

Manual testing is the part of the testing process which is carried out by testers by simulating possible scenarios for the user’s actions making sure all of the features act appropriately. In this process, testers execute the test cases and generate the reports manually without using any automation tools.

It is hard to imagine the process of testing without manual testing and without human interference. You have to test software manually in order to be able to run automated testing. Of course, manual testing can be more challenging, but without it, you cannot be sure that automation is possible because high-quality manual testing is required to create test-cases, which are the main element of automation. It is not just about finding bugs, it is about creating algorithms i.e. test cases, which carry the information about how to test, to find the bug, to fix it or solve this or that problem. No test-cases = no automation.

When do you need manual testing or why not to Automate?

  1. When the tester wants to implement into life his idea and to test the product in another way, and he wants to do it properly. In order to do it with automation, he should establish new test cases, program them with automation tools and only after it runs the test. All of these actions take a lot of time and in such cases, it definitely will be faster and easier to execute with the help of manual operations. Manual testing allows faster modification of test cases. Do not forget, that in the case of automation, the same scripts and code are repeated constantly.
  2. Manual testing is suitable for short-term projects when test scripts are not going to be repeated and reused for thousands of times. And also despite the fact that the goal of automation is saving time and money, sometimes providing it is useless because creating automated tests and so on is also resource-consuming.
  3. Manual testing is best-suited when the project is at the early stages of its development. It is the period when lots of changes and modifications are constantly provided to the product, and you have not to update an automation script each time a feature is added, removed, or reassigned. And again, it is faster and easier to do it manually.
  4. Analysis of interfaces from the point of view of the end-user is possible only with manual testing. Tester is able to have the full user experience, making it easier to assess visual components such as text size and layout as well as UI (remember the button?). Providing improvements is much easier with manual testing.

P.S. No additional tools (in automation tools are a must) are required — only hands and eyes, tester’s knowledge, creativity, and expertise of the system that he/she is building.

To sum up:

All in all, one of the main tasks of automation is to relieve the manual tester’s work and to allow him to work on test cases, which are not systemized. And in turn, this allows the automation tester to systemize these test cases.

The automation is great for big projects, it is less laborious, sometimes much faster and provides wider test coverage and allows finding more bugs and defects, which entails better quality. Manual testing is better for short-term projects (but it is also can be a necessity for big projects too!) with limited resources, and most suitable at early stages, when improvements are constantly provided. It is just that in such projects the automation is useless.

Moreover, it is important to remember, that the human perspective is not something you can afford to sacrifice because mostly these are humans who will use the product. And of course, the detection of non-standard errors are not a function of automation.

It is important to admit that both types of testing have advantages as well as disadvantages. And it is a fact, that the best result you can reach only with the collaboration of manual and automation testing. All depends on the size of your company, the duration of your project and exactly what do you expect to have.

_________________________________________________________________
Hope this article was useful and interesting for you! Please “clap” if you like it and want to read us more! And don’t miss a chance to let professionals provide your project with TOP-NOTCH IT Talents.

Also visit us on:

LinkedIn: https://www.linkedin.com/company/fintegro-company-inc

Twitter: https://twitter.com/fintegro

Facebook: https://www.facebook.com/fintegro

P.S. We are always happy to read your comments and thoughts ;)

If you are interested, feel free to contact us :) And keep tuned to our updates, there are more interesting and useful articles to come!

--

--

Arine Baghdasaryan
Fintegro Company Inc

Research Specialist at Fintegro Company Inc. Interested in QA, Startups, travelling, books and learning foreign languages ;)