Return to site

Types of functional testing

In software testing, functional testing is a practice that provides great benefits for the development process. After being done correctly, it improves communication between analysts, developers, and testers. The progress of the entire project is objectively seen at any point for management by checking the functional tests passing (and fail). Finally, the development speed increases because the requirements that are well communicated produce less work back. Tests also encourage more modular architecture with subsystems that have clear responsibilities.

This blog determines the scope of various types of functional testing, their interests and when to do. For example, smoke testing is done on each build that is sent to QA because it verifies the functionality at a high level while regression testing is carried out when bugs are repaired in the next release.

Functional testing type:

Unit testing

Component testing

Smoke testing.

Integration test

Regression testing

Sanity testing.

System testing

User acceptance testing

Unit testing

Unit testing ensures that each part of the code developed in the component provides the desired output. In testing units, developers only view interfaces and specifications for components. This provides code development documentation because each unit of this code is really tested independently before advancing to another unit.

Smoke testing.

Smoke testing is carried out on the 'new' build given by the developer to the QA team to verify whether basic functions work or not. This is one type of important functional testing. This must be the first test to do in new buildings. In smoke testing, the test case selected covers the most important functionality or components. The aim is not to carry out complete testing, but to verify that the critical functionality of the system functions properly.

Smoke testing.

If the build passes through smoke testing, it is considered a stable building. In a stable building, the QA team performs functional testing for new features / functionality added and then testing regression depends on the situation. But if the build is not stable i.e. Smoke testing failed, the build was rejected and forwarded to the development team to correct development problems and make new buildings. Let's understand better with an example.

Integration test

Integration testing is done to test individual components to check how they function together. In other words, it is done to test the module that works well individually and does not show bugs when integrated. This is the most common type of functional testing and done as automatic testing.

Regression testing

Every time the developer changes or modifies the function / features, it is likely that this update can cause unexpected behavior. Regression testing is done to ensure that changes or additions have not damaged existing functionality. The aim is to find a bug that might be accidentally introduced into the existing build and to ensure that the bug that was previously deleted continued to die. There are many functional testing tools available that support regression testing.

Sanity testing.

When a new building was received with small modifications, instead of running a comprehensive regression test suite, we conducted a sanity test. It determines that the actual modification has fixed the problem and there is no further problem introduced by improvement.

System testing

System testing is a test carried out on a complete and integrated system to evaluate its compliance with the specified requirements.