Software testing has its own structure, and order and is carried out using special methods.
There are only 4 such testing levels. It is modular, integration, system and acceptance. Let's analyze each level separately.
Unit testing is used to investigate each individual element or object of the system. To find bugs using unit testing, you need to know how the program as a whole works and what the functionality of each individual module is.
This level of testing is used more by programmers than by testers. They create special test codes with which you can check whether the software fulfills its purpose.
If unit testing is a test of each individual module, then during integration testing, QA checks how individual modules interact together, that is, integrating with each other.
Integration testing is most suitable for finding bugs in the development of the system interface. And most often in this level of testing, a top-down approach is used, when the system is checked by the architectural structure.
The name of the level speaks for itself – the entire system is checked holistically for the presence of bugs in it.
In system testing, the tester checks the relationship between all hardware and software components of the system and then tests the methodology of the entire system.
This level of testing is used almost before the direct transfer of the software to the customer. It is used to check whether the developed product meets the requirements put forward by the customer.
Acceptance testing can be carried out by a team of developers, it is also called internal testing. The second option or external acceptance testing, when the software is tested by the customer himself.
It implies a study of the operation of the software from the user's point of view and does not imply knowledge about how the internal system works and works.
This testing method is already based on knowledge of the internal functioning of the system. The tester needs to know how the code works in order to identify where the bugs are.
To perform this testing method involves understanding about the internal structure of the software, but the testing is conducted from the end user's point of view.
Thank you for your time, that is all.