Functional Testing
Functional testing is a type of testing where testers check if features of the System Under Test are working as expected according to its specified requirements. The primary goal of this testing is to ensure that the software performs the functions it was assigned to do, and typically does not concern with the internal code structure and implementation details.
Types Of Functional Testing
- Unit Testing
Unit testing is a functional testing type. It is performed by the developers. The purpose of unit testing is to validate the functionality of a unit or component, making sure the desired outputs are generated given a set of inputs.
2. Component Testing
Component testing is like unit testing because they both isolate a single functionality and validate that individually. However, testing for components at this phase might call for stimulative interactions with sample test data, aka stub and driver.
3. Integration Testing
In the previous testing phases can pass the module and components individually. So Quality Engineers need to ensure their functionalities as a group. Since a system’s modules and components are commonly built separately by different developers then it is critical to validate that they work together correctly.
4. System Testing
As the name suggests, in this phase, the software is tested as a complete, integrated system to verify that all business and functional requirements are met. Hence it is also referred to as end-to-end and often occurs right before User Acceptance Testing.
5. Regression Testing
Any new feature added or bug fix to the software then needs to be tested and verify the added feature or bug fixes do not affect the existing functions in the software.
6. Sanity Testing
It is Like regression testing, sanity testing is conducted for a new build with minor bug fixes, or new code added. If rejected in the sanity testing phase, the build will not proceed to further testing. While regression testing checks the entire system after alterations, sanity testing targets specific areas that are affected by the new code or bug fixes only.
7. Smoke Testing
Smoke Testing is when a new build is completed, it is handed to the QAs for smoke testing. In this phase, only the most critical and core functionalities are tested to ensure that they yield the intended results. As an early-stage acceptance test, smoke testing adds a verification layer to determine whether or not the new build can proceed to the next stage or needs re-work.