Here can we discuss about what is the difference between functional and non- functional testing briefly.
Tags: beginners, tutorial, testing, automaton
Published: 2023-09-03 16:58:00

## So first of all what is Functional Testing
 It is a **black box testing**. Testing what the system actually does is functional testing. It is to check whether each function of the software application behaves as specified in the SRS document. It is testing all the functionalities by providing appropriate input to verify whether the **_actual output is matching the expected output_** or not.
What the system actually does is functional testing
To ensure that the product meets customer and business requirements and doesn’t have any major bugs
To verify the accuracy of the software against expected output
It is performed before non-functional testing
Example of functional test case is to verify the login functionality

## some Testing types are
• Unit testing/ Component testing- it checks individual unit/module – usually done by Developer
• Smoke testing – it is also called as day 0 testing, It is to check whether key features and key bugs, usually done on unstable build. The main purpose is to check whether the build is testable or not.
• User Acceptance – Basically there are there are 2 user acceptance test viz. 1. Alpha, Beta. One done by inhouse developer or tester in the customer point of view. while another is done by limited number of end users. There is also third type namely Gamma testing – which is done at client place in the absence of inhouse developer and tester, and is done by Client-side developer or tester or by both.
• Integration Testing – it is done by integrating 2 or more individual software units/ modules.
• Regression testing- It is repeated testing of already tested software after modification , since the modification may brought new bugs or defects which wasn’t there before modification.
• Localization – Adapting global software to specific region or locality.
• Globalization – Adapted to varies region and language without any changes.
• Interoperability-  It is done to check interaction either with two software or its components. There are five subtypes they are:1. Data type interoperability testing, 2. Semantic interoperability Testing, 3. Physical Interoperability testing, 4. Protocol Interoperability Testing (Security), 5. Data format Interoperability testing.
 
## Here then we see about Non-Functional Testing
How well the system performs is non-functionality testing. Non-functional testing refers to the things such as performance, load, stress, scalability, security, compatibility etc., Here the main focus is to improve the user experience on how fast the system responds to a request.
How well the system performs is non-functionality testing
To ensure that the product stands up to customer expectations
To verify the behavior of the software at various load conditions
It is performed after functional testing
Example of non-functional test case is to check whether the homepage is loading in less than 2 seconds

## Some Testing types are
• Performance Testing – Check the behavior of the application by applying load like response time, simulating multiple user, simulating many transactions.
• Volume Testing- It is basically performed by increasing the volume of data in the database.
• Scalability- is a type of load test.it teat how the system is gong to perform during sudden spike or fall of user request load.
• Usability Testing- It is done by researchers either working in-person or remotely to find out what are all the places the users usually gets struck or confused, so that the user experience can be improved by solving the issues.
• Load Testing- It is a type of performance testing. Specifically it tests the performance of the application when multiple users are using the application. 
• Stress Testing- also called as Endurance testing and Torture testing. Different things measured in this testing are pages per second, pages retrieved, Byte data, transaction per second Failure of connection. And all these are under stress condition.
• Compliance Testing- Validate software’s compliance with the company’s standards, policies, and philosophies.
• Portability Testing- How easy or difficult to transfer software or its components to another hardware, environment, software-Operating System.
• Disaster Recover Testing – It is a type of system testing. It is important for mission-critical system like defense system, medical devices. And the failure are like power cut, external server not reachable, Wireless network system loss, external device not working properly.