Functional and Non-functional Testing
Functional Testing
Functional testing is a type of testing which verifies that each function of the software application works as expected. Every functionality of the system is tested by providing appropriate input, verifying the output and comparing the actual results with the expected results. This testing involves checking of User Interface, APIs, Database, security, client/ server applications and functionality of the application.
Examples of Functional Testing Types
-
Unit testing
-
Smoke testing
-
User Acceptance
-
Integration Testing
-
Regression testing
Non-Functional Testing
Non-functional testing is a type of testing to check non-functional aspects (performance, usability, reliability, etc.) of a software application. The primary purpose of non-functional testing is to test the reading speed of the software system as per non-functional parameters. The parameters of non-functional testing are never tested before the functional testing.
Examples of Non-functional Testing Types
-
Performance Testing
-
Scalability Testing
-
Usability Testing
-
Load Testing
-
Stress Testing
-
Portability Testing
Key Difference Between Functional Testing and Non Functional Testing
-
Functional testing verifies each function/feature of the software whereas Non Functional testing verifies non-functional aspects like performance, usability, reliability, etc.
-
Functional testing can be done manually whereas Non Functional testing is hard to perform manually.
-
Functional testing is based on customer’s requirements whereas Non Functional testing is based on customer’s expectations.
-
A Functional Testing example is to check the login functionality whereas a Non Functional testing example is to check the dashboard should load in 2 seconds.