Task 3
Published: 2023-12-18 18:29:37

## Different levels of tesing

1. Functional Testing
2. Non-Functional Tesing

**Functional Testing**
    -  It is the type of testing where the system is tested all the functional requirements, specifications like technical details data manipulation, processing and other functionalities
    -  It is also known as Black box Testing

**Non-Functional Testing**
  -   It is used to tesing the non-functional aspects of system like performance, usability, reliability
  -   It defines the system operates rather than the specific behavior of the system
  -   Non-functional parameters such as speed, scalability, security reliability efficience can be tested.

**Difference between Functional and non-functional testing**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vvnj3ewlx8xnyv6h2ls7.png)


**Stages of Functional Testing**

**Unit Testing**
- It involves testing the individual components or units of software application
- That is Unit/specific function works correctly and meets the specifinction.
- It is used to test before the code is integrated

**Integration Testing**
-  It is the interactions between two or more different components or units or function within the software
-  It verifies when two or more works together then the functional result is working as expected within the software application
-  When using multiple functions work together it should not introduce new defects

**Interface/system Testing**
- It checks the interfaces of two or more systems, then the expected result is working as expected or not
- it is used to validate APIs, Web services etc.

<u>For example</u> 
checking the weather report in mobile application

here the request sending to data base and receiving the data from the data base and showing in the screen.

here checking the API calling to data base is correctly
receiving is correctly or not and
displaying in the screen correctly or not 

Like this the entire system is checking correctly as the requirements.

**Regression Testing**
-  It involves retesting the software application to ensure new code changes does not introduce new bugs or defects in the previous functionality.
-  It is conducted after code changes 

**User Acceptance Testing**

- It is the Final testing after the complete development is done and before the deployment.
- It is done by the end users to verify that it meets the requiments or not


## Non-Functional Testing

**Documentation Testing**
-  It is nothing but to refer the required documents, standards, validations, user manuals to verify the correctness.
-  It is performed throught the development lifecycle.

**Installation Testing**
-  It evaluates the installation of software application including installation and uninstallation process. i.e to ensure no errors after the installation is done.

**Performance Testing**
-  It is used to test the speed, responsiveness, scalability, reliability stability under various conditions.
- Also the various tests such as load testing, Stress testing

**Reliability Testing**

- It tests the ability to perform consistently and accurately over a time.
- It identify the issues, data corruption crashes.

**Security Testing**
-  It is mainly done by cyber security team.
-  It is used to identify the vulnerabilities malicious actors, protect data, resist security attacks