Functional Testing and Non Functional Testing

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 TestingLoad 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 TestingNon Functional Testing
Unit TestingPerformance Testing
Smoke TestingLoad Testing
Sanity TestingVolume Testing
Integration TestingStress Testing
White box testingSecurity Testing
Black Box testingInstallation Testing
User Acceptance TestingCompatibility Testing
Regression TestingMigration Testing

Functional vs Non Functional Testing

Functional TestingNon 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 toolsNon Functional Testing is preferred to do using Tools.
Functional Testing is done before Non Functional TestingNon 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.

  1. What is Functional Testing
  2. Example of Functional Testing
  3. What is Non Functional Testing
  4. Example of Non Functional Testing
  5. 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.

Leave a Comment