We’ve already spoken of functional and non-functional requirements, but the difference between these two types of requirement is again apparent when we get to the testing phase. Consequently, we also need to know about Functional and Non-Functional Testing
What is Functional Testing?
Functional testing is concerned only with the functional requirements of a system or subsystem and covers how well (if at all) the system executes its functions. These include any user commands, data manipulation, searches and business processes, user screens, and integrations.
Functional testing is done using the functional specifications provided by the client or by using the design specifications like use cases provided by the design team.
What is Non Functional Testing?
Non functional testing is concerned with the non-functional requirements and is designed specifically to evaluate the readiness of a system according to the various criteria which are not covered by functional testing.
Non functional testing example: For example, in functional testing it might be revealed that the function of inputting data into a set of cells in a database works, however, usability testing (a part of Non Functional Testing) reveals that saving a version of the document requires 2 minutes, which will (or should) be judged as too long to wait.
Essentially non functional testing lets us measure and compare the results of testing the non-functional attributes of software systems, for example, by testing the application or system against the client’s requirement or a performance requirement.
So basically, non-functional testing demonstrates how well the product behaves as opposed to simply what the product does.
Of course, while functionality is important, remember that users’ affection and trust of a software or system is swayed and affected by non-functional qualities, so one must never forget that non-functional testing is indispensable in its own right.
A non functional testing example include the following kinds of tests –
- Performance Testing
- Security Testing
- Usability Testing
- Reliability and Dependability Testing
- Endurance testing
- Load testing
- Localization testing and Internationalization testing
- Ergonomics Testing
- Operational Readiness Testing
- Installation Testing
- Configuration Testing
- Compatibility Testing
- Interoperability Testing
- Maintainability Testing
- Availability Testing
- Recoverability Testing
- Miscellaneous Testing
Of course, not each and every one of the above kinds of testing is necessary in every system or application, as after all, testing is dictated by the requirements and foreseen usage of the software. Logically, for example, if an application is to be used only in a medium sized office in the United Kingdom and there is now view to using it elsewhere, it might be wise to forgo Localization testing and Internationalization testing and place a heavier focus on Configuration Testing, using data about the office’s technical set up as your base.
Join 60,000+ Subscribers
For latest blogs, industry updates and exclusive tips.
*Your email is safe with us, we also hate spam
Join the discussion
Hey thanks a lot for sharing this. I must say it is quite useful. I came across <a href=”http://www.maveric-systems.com/application-assurance_non-functional-testing.html” rel=”nofollow”>non-functional testing</a> and it has some really very interesting stuff. It’s worth having a look.
Hi, Good work thanks a lot for that but want to make a correction please change the first question from non functional to functional coz its the functional testing u are explaining…..
Thanks & Regards
True Non Functional testing is concerned with solution attributes that cross the complete life span of the service … from inception to decommissioning from production
Form my point of view compatibility testing that refers to non functional testing is widely used by the testing executives around the globe to find out the exact performance of a software on diverse nature platforms and devices.
Thanks Ulf Eriksson for sharing this great beneficial article… Really effective
what is the effect of coupling and cohesion on non functional requirements
Is load testing a functional testing?
the difference between the functional and non functional testing is well explained.
the point “non-functional testing demonstrates how well the product behaves as opposed to simply what the product does” is very important to have in while defining non functional testing.