Task 3
Published: 2024-02-03 10:46:15

What is difference between Functional testing and non Functional testing?

**Functional testing:**

Functional testing ensures that the entire integrated software system meets requirements. It tests a configuration to ensure known and predictable results.  Main purpose this testing is to test each function of the application by providing the input and verify output as per the requirement.

Different types of functional testing: 
- Unit testing
- Integration testing
- Smoke testing
- Sanity testing
- User acceptance testing
- Regression testing

**Unit testing:** This testing involves individual testing  unit of code separately to make sure that it works on its own, Independent of other units.

**Integration testing:** The Integration testing part of a testing methodology to test different modules/components that are unit tested when integrated together to perform specific tasks and activities. 
 
**Smoke testing:** Smoke testing is done , when now functionality of SW are developed and integrated with existing build that is deployed. It make sure that all critical functionality are working correctly.

**Sanity testing:** Sanity testing is performed after Software received with changes in code and functionality. This testing is to make sure that bugs have been fixed and new bugs are no introduced after changes.

**User Acceptance testing:** This testing is done by end user or customer to verify that SW system & Application before moving to production environment.

**Regression testing:** This testing verifies that recent code changes has not created any side effect on already existing functionality of the system.  

Regression testing is performed when there is code change is SW application, before moving it to live.

**Non Functional testing:**

 Non-functional testing is a type of software testing that is performed to verify the non-functional requirements of the application. It verifies the behaviour of the system is as per requirement. It is mainly done based on expectation of customer to improve the performance and durability of the application. 
             
Non functional testing types
- Performance Testing
- Load Testing
- Stress Testing
- Compatibility testing
- Configuration testing
- Security Testing
- Volume Testing 

**Performance Testing:** This testing is done to validate the performance of application, how a system behaves
**Eg:** Under increasing load both numbers of users and data.

**Load testing:** This testing is done to validate the application behaviour on specific condition of load.

**Stress testing:** This testing is done to validate the application behaviour on certain level of stress of application.
**Eg:** Tests  load exceed condition  that system can support.

**Compatibility testing:**  This testing is done to test application of different configuration.
        **Eg:** Different browser, OS, Display size in  case of mobile/TV etc

**Configuration testing:** This testing is to validate the application on different HW  & SW configuration.
**Eg:** Testing WhatsApp with different Android and iOS version and with different mobile manufacturers.

**Security testing:** This testing is performed to check the security aspects like data protection and functionality of SW.

**Volume testing:** This testing is done to validate the application behavior on specific condition of load.