Hello Aman,
Functional testing deals with the functional aspect of the application. This technique tests that the system is behaving as per the requirement and specification.
These are directly linked with customer demand. We validate the test cases against the specified needs and make the test pass or failed accordingly.
Example of functional requirement:
– A system must send an email whenever a specific condition is met (e.g. an order is placed, a customer signs up, etc).
Nonfunctional testing – on the other hand, tests the Nonfunctional aspect of the application. It tests NOT the requirement, but the environmental factors like performance, load, and stress.
Example of non-functional requirement:
– Emails should be sent with a latency of no greater than 12 hours from such an activity.
These are not explicitly specified in the requirement but are prescribed in the quality standards. So as QA we have to make sure that these testing are also given sufficient time and priority.