#Task3
Published: 2024-02-01 07:02:58

**What is difference between functional and nonfunctional testing?**

Functional Testing is a type of testing focusing on evaluating the software ‘s functionality.
•	Functional testing verifies each function\module of product \application is working properly as defined in Business requirements.
•	Functional testing performs before non-functional testing. Before going for performance testing, testers make sure that there is no error in any functionality of application or product.
•	Functional testing can be done manually as well as through automation tool.
•	We can say that from functional testing we get to know “does product do what it’s supposed to do?”
•	Functional testing does not concern about source code. 
•	Tester focuses on giving input and getting correct response from application.
•	Response time does not matter in Functional testing.
•	Tools used for automation functional testing are UFT, selenium, silk test etc.
There are difference types of functional testing.
•	Unit testing: Unit testing is done by developers. They verify piece of code called as Unit or module in Unit testing.
•	Integration testing: After unit testing, tester starts integration testing. In integration testing tester verify functionalities of interacting modules.
•	System testing: After successfully completion of integration testing, system testing starts. In system testing tester verifies end to end flow of application.
•	User acceptance testing: UAT is done by client or customer. They will do it before moving     product to prod environment. In this they test application main functionalities of application. It is done after system testing.

**Functional testing examples:**
•Verify any website with correct and incorrect login credentials.
•Verify any net banking application that user can transfer money to another account.
•Verify that after changing password of user account, then user can login with new password.


**Nonfunctional Testing** – is to check How well application behaves in certain conditions.
•	Tester focus on performance of application. How application behaving at time of certain conditions.
•	Nonfunctional testing is done after functional testing.
•	Nonfunctional testing mainly done through tools like -JMeter, Neo Load etc
•	Nonfunctional testing focuses on nonfunctional requirements like performance, security, load etc.
There are difference types of Non-functional testing.
Performance testing in which tester measure responsiveness, stability and evaluates the speed of software or device under workload. The focus of performance testing is to remove performance bottlenecks from software. Further performance testing has different types.
•	Volume testing in which tester measure system performance when huge volume of data is   increasing in database.
•	Load Testing in which tester measure behavior of application when multiple users use it at same time. It is done for normal and extreme load conditions.
•	Stress Testing in which tester measure performance of application if load increases in crucial time.
Security testing in which tester focus on security of application, how application can be saved from hackers. In security testing tester identify threats to application from unwanted access.

**Nonfunctional testing examples:**
•	Test the load tolerance capability of application.
•	Test response time of any page load.
•	Test application response when max no. of users hitting the application at same time.
•	Test application that password should be in encrypted format.
•	Test application by trying to attempt login using easily guess passwords.




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