Functional Testing and Non-Functional Testing Types with example
Published: 2023-11-28 16:12:47

Functional Testing:
	It is a one of the software testing type and test against with functional requirements and specifications. While testing it should satisfy the functional requirements or specifications. It will verify each and every functionalities of the software application. This testing not involved source code of application. Each functionality of the software application with test input ,actual output, expected output. Post testing compares the actual result with expected output .
     Some types of functional testing,
•	Unit Testing
•	Integration Testing
•	System Testing
•	Regression Testing
•	Sanity Testing
•	Smoke Testing
•	User acceptance Testing(UAT)
Unit Testing:
	Unit testing is done by development side .Developers will run each code program/block and test the code. Once test passed then code will pushed into codebase.
Eg: Testing only Registration page of an application which is working or not.
Integration Testing:
	Integration testing also done by development side. Tested unit tests must be integrated with code and test the functionality of the integration test code. Once test passed then code will pushed into codebase.
Eg: Testing registration page along with Login Page of an application both the functionality should work. 
System Testing:
	System Testing will be done for complete application once all flows are tested End to End. It should satisfied all requirements of the software application.
Eg: Testing the application from login, search product, addToCart, placeOrder along with payment screen ,orderConfirmation mail also should verify and working as expected


Regression Testing:
	For every release of a project, we may expect bug when integrate existing functionalities with new functionalities so need to test the new functionalities along with existing by Testers.
For Eg: Whatsapp app now came with sharing functionality, need to test whole application (existing functionality)along with new functionality.
Sanity Testing:
	Sanity testing will happen when build is released to check the stability. It is similar to regression testing, but it doesn’t check all the functionalities instead check affected part.
Eg: At first we need to test basics of new functionality(whatsapp channels feature) then need to check that new functionalities should not affect existing functionality(Update functionality).
Smoke Testing:
	Once build is completed then Testers will pick critical functionalities and test it. This is the last stage of testing phase post this software will go to User hands.
Eg: E-commerce website, user should able to login and launch application. Once products are picked and add to cart then it should redirect to payment page with payment options.
User Acceptance testing:
	This testing will be done by User community, user will test the functionalities and should approve it. Once user provide “Signed Off”  the application then only it will go in to Live System.
Non- Functional Testing:
	Non-functional Testing will be test the properties of the application
There are many types of non-functional tests:
•	Performance testing
•	Load testing
•	Usability testing
•	Security testing
Performance Testing:
	Performance testing will test the performance level of the application, loading speed, system crash rate and latency time.
Eg: While launching E-commerce application, check the response time, CPU and memory usage of the website.
Load Testing:
	Load testing will check load of the application at same time. 
Eg: when many students logging into Exam result portal application at result time .
Usability Testing:
	Usability testing will be done by real users. Users will test and complete any of the task/flow of the application.
Eg: Before releasing banking application, professional/experienced people will test it and confirm the testing status.
Security Testing:
	Security testing will check with software’s weakness, vulnerabilities and should not be easy to hack or attack the software application.
Eg: Banking application 
•	URL should be with https by the way share data securely to application.
•	password, pin are should be encrypted then stored in the database
•	Invalid user id/password should not accept