TASK - 3
Published: 2024-02-03 12:50:18

Q: What is the difference between Functional Testing and Non Functional Testing ? Give some examples in support of your answer.

A: Functional Testing :- Is a type of software testing that focuses on verifying that a software application or system functions according to its specified requirements. The primary goal of the functional testing is to ensure that the software behaves as expected and delivers the intended functionalities.
This testing mainly involves Black Box testing, and it is not concerned about the source code of the application.
As name it self suggests Functional testing is testing 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 interfaces, API'S, Database and functionality of application under test This can be done either manually or using automation.
Basically as per the requirements functionality of the application is checked.

Examples of functional testing :-
1. Unit Testing : Testing individual components/functions. and this testing is also called as Component testing.
2. Integration testing : Only integration related defects are focused which are found during integration testing
Verifying the iteration between different components/system
3. System Testing : Whole product is tested once after integration testing is done and it is also called E2E (end 2 end) Testing
4. Acceptance testing : Confirming that software meets the requirements usually done by customer. 

Non-Functional Testing :- Is a type of testing to check Non functional aspects(Performance, usability, reliability) of a software application. It is explicitly designed to test the readiness of a system as per non functional parameters which are never addressed by functional testing.

Examples of Non functional testing :
1. Performance testing : This assesses how well the software performs under different conditions, including load testing, stress testing, and scalability testing.
2. usability testing : This evaluates the user-friendliness and overall user experience of the software, including interface design, navigation and ease of use.
3. Reliability testing : Software's ability to consistently perform its functions under specific conditions, assessing factors such as fault tolerance and error handling.
4. Security testing : Checks the software's resistance to unauthorize access, data breaches and other security threats.


Difference between Functional Testing and Non Functional Testing 
Functional Testing :-
1. Functional testing is done before Non functional testing
2. It is done based on the customer requirement 
3. It is easy to define functional requirement 
4. Helps to validate the behavior of the application 
5. It is done to validate the software action
6. It describes what the product does
7. Easy to execute manually
8. Examples :- Unit testing, Smoke testing, acceptance testing, Integration testing, Regression testing.

Non Functional testing :- 
1. Non functional testing is done once after doing functional testing.
2. It focuses on costumer's expectations 
3. It is difficult to define the Non functional requirements
4. Helps to validate the performance of the application
5. It is done to validate the performance of the software 
6. It describes how the product works
7. Not easy to execute manually 
8. Examples : Performance testing , Load testing, Stress testing, Usability testing