What is Functional Testing?

Functional testing is a type of testing which verifies that each function of the software application operates in conformance with the requirement specification. This testing mainly involves black box testing, and it is not concerned about the source code of the application.

Every functionality of the system is tested by providing appropriate input, verifying the output and comparing the actual results with the expected results. This testing involves checking of User Interface, APIs, Database, security, client/ server applications and functionality of the Application Under Test. The testing can be done either manually or using automation

What is Non-Functional Testing?

Non-functional testing is a type of testing to check non-functional aspects (performance, usability, reliability, etc.) of a software application. It is explicitly designed to test the readiness of a system as per nonfunctional parameters which are never addressed by functional testing.

A good example of non-functional test would be to check how many people can simultaneously login into a software.

Non-functional testing is equally important as functional testing and affects client satisfaction.

Functional Vs. Non-Functional Testing

Parameters Functional Non-functional testing
Execution It is performed before non-functional testing. It is performed after the functional testing.
Focus area It is based on customer's requirements. It focusses on customer's expectation.
Requirement It is easy to define functional requirements. It is difficult to define the requirements for non-functional testing.
Usage Helps to validate the behavior of the application. Helps to validate the performance of the application.
Objective Carried out to validate software actions. It is done to validate the performance of the software.
Requirements Functional testing is carried out using the functional specification. This kind of testing is carried out by performance specifications
Manual testing Functional testing is easy to execute by manual testing. It's very hard to perform non-functional testing manually.
Functionality It describes what the product does. It describes how the product works.
Example Test Case Check login functionality. The dashboard should load in 2 seconds.
Testing Types Examples of Functional Testing Types
  • Unit testing
  • Smoke testing
  • User Acceptance
  • Integration Testing
  • Regression testing
  • Localization
  • Globalization
  • Interoperability
Examples of Non-functional Testing Types
  • Performance Testing
  • Volume Testing
  • Scalability
  • Usability Testing
  • Load Testing
  • Stress Testing
  • Compliance Testing
  • Portability Testing
  • Disaster Recover Testing