Manual testing (MT)
"Manual testing is the process of manually reviewing and testing software or an application for bugs, defects, and vulnerabilities," writes Techopedia
. The product is tested from the user's point of view without special tools. Typically, the tester runs the application on different devices (cell phones, tablets, laptops, or computers), examines all functionality, and finds weaknesses in the user interface.
- The QA engineer gives his feedback as a potential user and can offer ideas for the UX;
- Helps detect bugs that affect system functionality, ease of navigation and use;
- It's cheaper because there is no cost for additional tools and automation process;
- QA specialists can test new features as soon as developers add them.
If the task requires domain knowledge, manual testing is simply necessary.
- The attention of QA engineers can decrease while performing the same type of tasks;
- If the team consists of experienced testers, a large budget is required;
- Less reliable testing method because there can be errors and inaccuracies due to human error;
- The process cannot be fixed, so reusing the same test is not possible.
Test automation (TA)
"Processes are pre-programmed and run with little or no intervention from the test engineer," writes Techopedia
. Automated testing focuses on finding deviations from expected results. It works on the basis of a script written by experts, which is used to make decisions about the correctness of the application being tested. It is used for tests that are time-consuming or impossible to perform manually.
- Accurately performs tasks involving large amounts of data and finds errors in a short time;
- The automation process can be recorded, allowing the same test activities to be reused and executed;
- It is possible to simulate a large load on the application to test how it will perform under such conditions;
- Test coverage increases as even the smallest element is tested.
- Automation tools have no value without scripts. A specialist in automated testing must write a competent process script;
- Once running, the automation will work until the application it is testing is updated. - User interface changes that do not match the test script can lead to erroneous results;
- Running a set of automated tools is expensive;
- Without an expert, it is difficult to gain insight into the visual aspects of the user interface, such as colors, fonts, sizes, contrast, or button sizes;
- Test maintenance is costly.
"Based on my personal experience, I can note that it is better to choose the type of testing based on the characteristics and size of the project. On small projects it is better to use manual testing. For long-term projects, the cost of automated testing is justified"
– Ilya Tseliatsitski, QA engineer at SolveIt.