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 under:
|SNO.||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 chief 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 behaviour.||Certifies the software performance.|
|6.||It encompasses following testing activities:
||The testing techniques, covered under it, are
|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.|