Functional Testing and Non Functional Testing
What is Functional Testing
Functional Testing – Functional Testing is a type of Testing, where we test the functionality of a Product or a Software.
Functional Testing is made up of 2 words.
Functionality + Testing
So, We have to understand, what is functionality.
Functionality simply means, what functions or operations does a Software performs.
Examples of Functional Testing
Example 1
Let’s understand this with an example of an application such as Calculator.
What is the Functionality of a Calculator.
Calculator does mathematical operations such as Addition, Subtraction, Multiplication and Division, So these are the functionality of a Calculator Software.
If we test these functionality of Calculator, then we are doing functional testing of a Calculator.
Example 2
Let’s take an example of one more Software Application, such as Internet Banking
What are the functionality in Internet Banking.
- Launching Net Banking Application
- Login to Net Banking
- Payment Transfer
- Check Bank Statements Online
- Logout from Net Banking
So, when we test these functionality, then it will be the functional testing of Internet Banking.
So, If we want to define, Functional Testing, then the definition would be
Definition – When we test the functionality of an Application, the the Testing is called, Functional Testing.
What is Non Functional Testing
We have already seen, what is functional Testing.
If we go by definition, then functional testing is a type of testing where we test the functionality of an Application.
Non Functional Testing is exactly opposite of Functional Testing.
Non Functional Testing is a type of Testing where functionality of the application is not tested, but the other features of the application are tested.
What are the other features, Let’s see it with an example
Examples of Non Functional Testing
Example 1
Suppose we want to test Net Banking, and when we try to launch Net Banking Application in google chrome browser, it works well but when we try to launch Net Banking Application in Mozilla Firefox Browser, Our Application doesn’t launch and it doesn’t allow us to do anything, So, this means that our Net Banking Application is not compatible with Mozilla Firefox Browser and this type of testing is called Compatibility Testing.
Compatibility Testing is a type of Non Functional Testing, because we don’t test the functionality of Application, But we test the Compatibility of the Application.
Example 2
Now, suppose if there are 100 users working on the Net Banking at the same time and the application works fine.
Then there are 500 users working on the Net Banking at the same time and the application works fine.
But if suppose there are 1000 users working on the Net Banking at the same time and the application starts working slowly, i.e that means the speed of the Application slows down, then we can say that the performance of the Application is reduced and this type of testing is called performance testing.
Let’s say that 10000 users tries to access the Net Banking at the same time and the application crashes, then we can say that the Application can not withstand the load of 10000 people at one time and this type of testing is called load testing.
Load Testing is also called Stress Testing.
Performance Testing, Load Testing and Stress testing, all are different names of the same type of testing.
This type of Testing is also Non Functional Testing because we don’t test Functionality of the Application but we test the performance of the application.
Type of Functional Testing and Non Functional Testing
Functional Testing | Non Functional Testing |
---|---|
Unit Testing | Performance Testing |
Smoke Testing | Load Testing |
Sanity Testing | Volume Testing |
Integration Testing | Stress Testing |
White box testing | Security Testing |
Black Box testing | Installation Testing |
User Acceptance Testing | Compatibility Testing |
Regression Testing | Migration Testing |
Functional vs Non Functional Testing
Functional Testing | Non Functional Testing |
---|---|
Functionality of a Software Application is Tested in Functional Testing. | Functionality is not tested but other features like Compatibility, Performance of a Software Application is Tested in Non Functional Testing. |
Functionality Testing can be done in both the ways, Manually and using Automation tools | Non Functional Testing is preferred to do using Tools. |
Functional Testing is done before Non Functional Testing | Non Functional Testing is done after Functional Testing. |
Functional Testing tells us, what the Product does. | Non Functional Testing tells us, How good the Product is. |
Summary
We have covered below topics in this session.
- What is Functional Testing
- Example of Functional Testing
- What is Non Functional Testing
- Example of Non Functional Testing
- Type of Functional Testing and Non Functional Testing
Question
Give an example of Functional Testing and Non Functional Testing for an eCommerce Website like (Amazon, Flipkart etc…).
List out the differences between Functional and Non Functional Testing.