Types of Functional Testing




“Building Strong Basement Weak” - This dialogue is too funny to hear, but if our Software  product is developed as such. Just imagine what will be the quality of the product? So “Quality can never be an Accident “. Testing is an essential success factor for the software Quality. 


Functional Testing based on Business requirements of the Product. Functional Testing is a Methodology that focuses mainly on the  result of Software Processing.


Types of Functional Testing are ,

  1. Unit Testing

  2. Integration Testing

  3. Software Testing

  4. System Testing

  5. User Acceptance Testing

  6. Regression Testing

  7. Smoke Testing



Above list is not static , Levels would get added or lesser based on Product type. Also No one is superior or inferior in the above list. All Test levels aim is to give high Quality deliverebles. 


All the types of Functional testing would be performed with respect to Requirements derived from Customer/user requirements. So all different Testing types might not be needed if we test very simple products. 


In case of complex products, it would be recommended to perform all Testing types to catch bugs as fast as possible. Because product  Development Cost would be less as soon as bugs are identified.


Smoke Testing

  • Smoke Testing is a Quick test that checks the Basic Functionalities of Product working fine.

  • This Testing is must to perform and Passed before proceeding with a test that would take a long time. Because if basic functions are not working, then Effort , time and cost spent on Long hours testing would get wasted .

  • Also Smoke Testing performed to ensure that basic functions were not affected when we made any change in the software code. 

Regression Testing

  • Regression Testing is the type of testing the Sections of software that was not part of recent changes. This is to ensure that recent changes in code have not affected the other sections of the software.

Unit Testing

  • Unit Testing is performed at code level. This is to ensure that each unit of code works as expected.

  • Mostly, unit Testing performed by Developers using automated Tools/compilers.

Integration Testing

  • Integration Testing is to ensure that software works after integrating the required components of code. 

  • Each Component of code might work independently , but it might give issues while interacting with other modules of code. So Integration testing will help to find that communication between units runs smoothly. 

Software Testing

  • Software Testing is to ensure that complete software modules of code work fine. 

  • Software Testing is a Black Box Testing where source code is never seen by the tester. Testing with input and output modules of Software. 

System Testing

  • System Testing is a Testing the complete System where the interactions between Hardware/software with our product will get Tested. 

  • System Testing is a Black Box Testing.

User Acceptance Testing

  • User Acceptance Testing is done by Customer/user with respect to their Requirements/use cases. 


Now, we can imagine if a product undergoes all these testing types , how would be a Quality? Yes. Definitely Higher .  Each Testing types scope , Deliverables are independent and altogether helps to improve quality of product.  


Let us discuss with simple Example of Water Bottle,



Unit Testing

  • Bottle having Thread/Screw rings.

  • Cap having Thread/screw rings.

Integration Testing

  • Cap can close the bottle neck. 

  • Cap and bottle integrate together whether it satisfies its function? → Which is closing

System Testing

  • The capacity of the bottle is okay?

  • The appearance of the bottle is okay?

  • The robustness/quality/ of the bottle is okay?

  • Water can be stored in the bottle?

  • No leakage of liquid items from the bottle?

  • No leakage near the neck/Thread areas near by the bottle?

User Acceptance Testing

  • It is user friendly.

  • Holding or grip is fine.

  • Easily washable

  • No leakage in and around the bottle.

  • It matches with the design which the user expected.

  • Capacity, quality of the product meets.

  • It made by plastic standards


In Above Case, Software testing is not applicable for Water Bottle since it doesn't contain any software.


Comments