Functionality :
1. We test whether the application works according to functional requirement specification.
2. Here we check whether software is working or not.
3. It involves different types of testing like Functionality, Integration, System, Adhoc, Smoke and Regression Testing.
Non-Functionality :
1. Here we check whether the application works according to non-functional requirement specification.
2. Here we check whether look, performance is good or not.
3. It involves different types of testing like useability testing, performance testing (load, stree, volume, soak) testing.