Functional Vs Non Functional Software Testing