Types of software testing: The automated test (Automation test)
The tester has the task of verifying the efficiency of a product through different tests planned a priori, searching for a set target (analyzing the behavior, the structure, etc.). The activity of the tester is therefore almost always carried out manually; however, there may be cases in which it is more convenient to perform automated tests (test automation), ie using appropriate software tools capable of replacing the tester in its activity.
The reasons that dictate this are mainly due to reasons of time and cost, but rarely also to the type of application: an example comes to us from genetic algorithms, in which the amount of calculations to be made and the repetitiveness of the operations push any tester to desist from a manual analysis of the product; projects that require an intense test performed manually by many testers are unreal and certainly uneconomical, when the same work can be performed efficiently by software. In fact, the test should be performed manually, as it is possible to better define the work, organize it and execute it more accurately. In some cases, automation and manual testing are however often interchangeable, while in other scenarios it is more appropriate to take a choice for one or the other, carefully evaluating the costs and benefits of each technique.
A problem that arises spontaneously is that concerning the creation of the documentation for the test and the planning and realization of the test cases. In the case of manual testing, the problem is relative, as the tester can run the tests sequentially and evaluate their effectiveness, possibly providing for a restructuring or further analysis in the event that they notice anomalies; in the case of automated testing things get complicated, as it is necessary not only to understand the functioning of the test software used, its coverage of the code, its reliability etc., but also to distinguish which parts of the product it is considered appropriate to test automatically and which ones examine manually.
The best solution in this sense consists of a good compromise between the two techniques: a summary but complete analysis to be carried out on the product and followed by a manual refinement, intensifying the tests in those program modules that have shown less robustness or reliability. It is therefore appropriate to devote a substantial part of one’s work to the preparation of a good test plan, which allows the speed of automation to be combined with the accuracy of manual analysis. If then it is convenient to opt for an automated test and how many potentially undiscovered bugs may exist it is only a question that varies from project to project.
A second important aspect for the company that performs the tests is to evaluate whether it is more appropriate to create an automation application personally, or to buy it on the market. The choice is not only motivated by cost reasons, but also by reasons related to efficiency: the software purchased by third parties, are of a general nature, due to the fact that they can meet the multiple needs of potential customers (after all it is impossible ); Customizable software is possible, but it is necessary to evaluate the times, costs and methods of implementation.
However, we evaluate the thing more accurately: creating an application to test a product can often be excessively expensive, with varying costs in terms of efficiency and accuracy: this is the case for scripts that do not require testing GUI applications (Graphic User Interface, graphical interfaces for the user). It is possible to move towards saving the testing product, but this cannot make the product economic in terms of resources as much as a manual test. The costs that can be identified in the creation of one’s own test product are to be found, for example, not only in the workforce, but also in the instruction of the personnel and in the removal of the same from the real activity of the company that is concentrated for times generally long in activities different from the demands of the customers with not indifferent losses of gain. The automation of the test, which requires in any case a preventive study done by man and a continuous control, is useful in the case of regression tests, that is tests to be repeated identical on several versions of a product.
However the automation of the test is something that requires a certain amount of time and that often gives rise to a whole series of problems when the test is repeated. The specifications, the interface, the number of fields and other aspects can in fact change from version to version (and in fact it happens very often). The errors obtained with this method, then, are often very predictable and reproducible quickly by a manual test. It is therefore necessary to carefully evaluate the feasibility and convenience before performing an automated test, which is effective only for targeted and specific uses.