The subject of testing is often ignored, even while implementing large IT projects. When a given system seems to as it should, there is a belief that it is no point in generating additional costs... However, it may turn out that these (seemingly) additional costs will turn into being savings.
In a situation in which, for example, some element is not completely refined or does not work in the user environment, it may be necessary to disable it or to significantly modify the software. In this case, the product that should earn its keep – does not. It is worth keeping in mind that systems and applications are often given to users who do not necessarily know how to use them or those who want to adapt them to their own needs, avoiding "official" solutions. Testing enables you to identify such areas and predict irregular situations.
Long story short: just like any object of everyday use, software should be carefully checked before it is commissioned. You need to be sure that it works as intended even in unusual situations. Remember - there are no infallible things and people, it is a testing that minimizes the risk of (sometimes costly) mistakes.
What are manual tests?
Manual tests are carried out by specialists (testers) who, step by step, analyse a given application or system, etc. according to a scheme / scenario, etc. Their task is to find any errors and irregularities, but also to check the software in a way that a user without training or instructions would do. The tester does not use scripts or automation tools. A knowledge of the software languages is also not required.
What are automatic tests?
Automation tests are performed by the system. They are previously prepared or written tools, codes, or scripts. Those tests can be created in the selected programming language, therefore knowledge of it is a requirement for the preparation of the tool.
Manual testing or automated testing?
We present a summary of manual and automation testing in terms of the most common factors.
Lead time
The timing of such a test should be seen from different perspectives. On the one hand, the preparation of test automation tools requires a prior workload. In a later perspective, they are used many times. Manual tests are carried out manually, each time anew. So it is obvious that automation leads to faster execution of the task. Moreover, automation tests are performed in shorter time than manual tests.
Size of the project
In the case of small projects, it is definitely more profitable to use manual testing. The cost of such a testing will then be lower. On the other hand, automation tests work well when there is a necessity to test large projects, where performing a manual test would be impossible or very expensive and time-consuming.
Error detection
Automated testing eliminates the possibility of a human error while in manual testing, the tester may become tired, which may cause further mistakes. Paradoxically, it enable detecting unusual behaviours and checking the system's susceptibility to their occurrence. If there is a variable that was not entered into the software before the testing, the automated testing software will not record its presence.
Costs
Manual tests will be cheaper at one time, but they require costs each time they are performed. The use of automation comes with greater knowledge of the tester (using programming languages), and the preparation and use of automation tools are also expensive. In the long run, automation testing will be a cheaper option.
Performance testing
In this aspect, performing a manual testing is not appropriate. For example, stress tests are based on checking how many queries the system is able to handle within a given time. It is not difficult to guess that tests of this kind are carried out only automatically.
UX and UI
User Experience and User Interface evaluation is a check of the visual aspect and of interaction with the user. It is impossible to test such areas automatically, therefore only manual tests are used for this purpose. Perhaps in the future, machine learning, which is currently being developed in this direction, will allow for the "elimination" of the human factor, or it will be a valuable tool for tester.
Variable coordinates
A variable may be the process of changing the background or moving an element to another place. As mentioned - automation tests are not able to understand such nuances. What turns out is that in projects where such aspects may change, manual tests are much better, when the human factor is able to identify such differences.
Reusability
Once a test or script is written, it can be used an infinite number of times. Manual tests are performed from scratch each time - it is impossible to prepare them in advance.
Effort
Automated tests need to be developed first, which can take a long time. In turn, their execution takes less time and the tester has not as much work to do. Manual tests require tester to go through each part from start to finish and prepare a report or summary.
The risk of an error on the test side
As mentioned in manual tests, there is a human factor that is at risk of error. As for automation testing, it is completely eliminated (assuming that no coordinate change was made during the test).
Reporting
Automation testing generates this type of documents during the work performed, which significantly shortens and improves the entire process. On the other hand, manual tests allow for the inclusion of aspects that were not covered previously. Therefore, the report can be more individual and tailored to the needs of customers, it can be also prepared in such a way that even an unqualified receiver can understand the results.
When will manual testing be better?
- Smaller projects,
- Projects that do not require knowledge of the programming language
- One-time testing is sufficient
- UX and UI are assessed
- There are many variables in a project
- The client requires a personalized report or its explanation
- Low-budget projects
When will automated testing be better?
- Large projects
- Requirement of stress tests
- Performing the same tests multiple times
- Receive the results quickly
- The need to eliminate human error
- Large-budget projects
Conclusions
It is always worth relying on the opinions of experts who, based on their experience, will advise you to use the appropriate method for an individual project. It may happen that a seemingly simple application checked manually will still require automatic testing.
In fact, there is no one universal answer to the question: ‘what to choose?’ You should always follow the individual characteristics of the project and the goal you want to achieve.