Points of differences between functional and non functional testing.

The Software Development process, generally emphasizes on the functional requirements of the software product. However, non-functional requirements are also needs to be considered, from user-perspective, of using the software product, in an unexpected situation and environment.

Functional testing is a testing techniques, which evaluates the functional requirements and aspects that were decided, prior to the development phase, whereas non-functional testing concerns with the non-functional requirements.

To make it clear, the concept of functional and non-functional testing, we have to go through the differences, between them, as discussed under

Sl. No. Functional Testing Non-Functional Testing
1. Evaluates the functional requirements/ functionality of the software product. Examines the non-functional traits and aspects of the software product.
2 The functional requirements, are identified, specified and decided, prior to the development process. Non-functional requirements, are generally not specified, but are hypothetical, based on the users-perspective.
3 The purpose behind functional testing, is to ensure the fulfilment of the functional requirements, in the developed product. The key reason, to perform non-functional testing, is to evaluate the software product ability, to meet the customer's unforeseen needs and expectations, in an unexpected circumstances.
4 Based on business or client's requirement. Depends upon the end-user’s expectations.
5 Validates the software’s behaviour. Certifies the software's performance.
6 It encompasses following testing activities.
  • White Box Testing
  • Black Box Testing
  • Unit Testing
  • Integration Testing
  • Smoke Testing
  • Usability Testing
  • Usability Testing
  • System Testing
  • Regression Testing
  • Globalization Testing
  • User Acceptance Testing
  • Localization Testing
  • Interface Testing
The testing techniques, covered under it, are
  • Availability Testing
  • Compatibility testing
  • Load Testing
  • Endurance Testing
  • Localization and Internationalization Testing
  • Performance Testing
  • Maintainability Testing
  • Recovery Testing
  • Configuration Testing
  • Compliance testing
  • Installation Testing
  • Documentation Testing
  • Security Testing
  • Reliability Testing
  • Volume Testing
  • Scalability Testing
  • Usability Testing
  • Stress Testing
7 Responsible for the accurate, desired and proper working of the each functionality of the software product. Concerns with the performance of the software product.
8 It is first priority of the testers. It may be performed, after the execution of the functional tests.
9 Manual testing is considered best for its execution. Automated testing, is an effective approach, for the execution of non-functional test cases, using automation tools.
10 Time-Consuming activity. Less-time consuming process.