i don't feel like doing a compatibility, usability, performance is apart from functionality....so i answered in the interview like there is no non functionality test...but i m not sure whether i m right or not....
Now this could be a good debate and it is in my views i feel
Doing a usability means, i basically test the application's functionality is really user friendly to the user. Like for example if i am goin to have a log out button in the left top corner of a page and when we click on the log out like it should log me out of the system.
Now if there is 20 pages in the application having this logout on different places but still the user might not be aware of it and he sometimes may feel some of the pages does'nt have the logout functionality itself. so in a usability or any Non - functional testing, will actually make the next level functionality test.
Then terming it as Non - Functional Testing will sometime confuses that it is not testing the functionality, if that is understood i guess this terminologies does'nt matter too much
All your testing apart from your functionality, like performance test, load test, stress test, usability, reliability test etc.
But instead of coining it as non functional testing, We can tell testing done other than the core functionality test.
Bcos all these test are in turn represent your functionality, so coining non - functional testing have a possibility of understanding that it has nothing to do with functionality, but it indeed has relation to the functionality.
Non functionality is an optional testing. i.e Its based on the requirement.
For a banking application we need to do performance /stress/load testing. Not all the application need performance testing.
So we usually perform non functional testing based on the application nature and requirement.