The answer to the following questions may also interest you
In order to maintain software quality at the highest possible level throughout the entire development cycle, it is part of professional development to accompany all essential components of this process with quality analyses.
Thus, in practice, if not developed directly according to the TDD method (Test-Driven Development), the application is equipped with unit, functional, integration and, in larger projects, acceptance tests.
TYPONiels development projects currently use these forms of testing, depending on the requirements and scope of the project:
Unit testing, also called module testing or component testing, is a testing process in which the smallest testable parts or units of an application, called units, are individually and independently tested for proper operation. Unit tests are normally performed by the software developers themselves and are usually run again automatically in the CI pipeline whenever code changes are made. In the event of failures, the import of changes into the main branch of the application is usually blocked (merge blocking).
Sanity tests are plausibility checks. These include, for example, plausibility checks of values, simple model-based checks, but also consistency checks of requirements. The validation of a software system often begins with the creation of sanity tests.
Functional tests check a software (or a system) with regard to functional requirement characteristics, i.e. whether the behavior of the software or the system meets the requirements in the functional specification. Functional tests are used for system tests and acceptance tests (also called acceptance tests, procedure tests or user acceptance tests). These types of tests are black box tests, since "only" the external behavior is tested without considering the internal structure or code. Test cases are created on the basis of descriptions of the software, such as specifications and requirements.
In software development, integration tests are a coordinated series of individual tests that are used to test various interdependent components of a complex application structure in interaction with each other. Integration tests are usually used to quickly find errors that could trigger a change in system A during operation than in system B.
Approval tests are usually performed by a natural person from project management using a test system and involve viewing the change from the perspective of a real user. If the changes to the system meet the requirements of the ticket / user story, approval is carried out and the new functions / changes can be transferred to the live system.
User acceptance tests
In software engineering, user acceptance testing is a method of verifying that software works as intended from the user's perspective and that the user accepts the software. Software vendors often test this with beta testing, where a specific group of users get the new feature unlocked and feedback is solicited or an analysis of usage behavior is performed.