Blog
Functional tests
Norbert Wieczorek 09.12.2022
In the vast world of the testing topic, at least several dozen types of tests can be mentioned. When we take into account all phases of design, all available equipment, as well as all industries for which quality assurance is important. We will start this series with functional tests, because it sounds the prettiest, and this is very important at the beginning of the series.
Some of you will probably ask what these tests actually are and whether their collective definition is explained by the name itself, or not necessarily. As for the latter, I will let the reader draw conclusions for himself.
Functional tests usually appear in the context of black-box testing, i.e. testing product functions without having to read the code. Put simply: the tester should know the test and output data and draw further conclusions based on them. We will take 8 types of functional tests, starting with those with the best-sounding name.
Smoke tests
One of the two types of tests in this article, the translation of which would be the eighth and ninth deadly sin, respectively. These are tests on a new build, checking the basic functionality of the system or program. The main reason for them is to determine whether it makes sense to start further tests, because it could involve huge costs that can be avoided simply by improving this build.
Regression tests
These are very key tests, checking how recent changes in the code affect the operation of the application. These tests are carried out practically throughout the software development cycle, mainly to be able to determine quite easily which change caused the unwanted effect. This process saves a lot of time, nerves and money.
Sanity tests
This type of testing is quite similar to smoke testing. Both types are performed very early to save the costs associated with working on a non-working build or function. The difference is that the purpose of sanity testing is to determine whether the new functions of the application work as they should (for example, whether the calculator performing the 1+1 action gives a result of 2) or whether previously detected bugs have been effectively removed.
Acceptance tests
This is a type of testing carried out with an emphasis on a more business-oriented approach. These tests check whether the created application or other software product meets the expectations of end customers for whom the product was created. They are carried out at the end of the software production cycle.
Alpha Testing
This is a kind of acceptance testing, in which the most important functions of the software are checked before they are released to the end customer, it is important primarily from a business point of view, where you can not afford to release a prototype that looks bad, because it could scare investors.
In short, a team of testers tries to simulate the behavior of a potential user.
Integration tests
They are used to check how individual software modules work when being in a group. They are performed after unit testing, where the modules have already been checked and how they work when isolated. By combining the activities of individual modules, you can gradually increase the size of these groups to finally be able to carry out system testing. Integration tests are conducted between the initial and final phases of the software development cycle.
GUI Tests
A product testing process that determines whether the graphical interface works as expected. These expectations are a combination of a business approach and desired specifications. This is a complicated process because, although it is easy to test it automatically in a cursory way, a more thorough analysis must be carried out manually.
Beta testing
This is a type of testing already performed by end users who, using the product, give feedback on whether the product meets their expectations. These are large-scale tests and can detect a lot of irregularities in a short time. They are carried out shortly before the official release of the product on the market.
Summary and observations of the author
The topic of types of functional tests has certainly not been exhausted here, but I think that it is much more pleasant to write about these more interesting things (and even more about such to read). Conducting tests without a deeper knowledge of the code must often bring very unexpected results that we will never know about. And that's good, it probably makes us sleep a lot better.:)