There are different types of testing types.  

For an example :  

Functional testing types

* Smoke testing
* Regression testing etc...

Non functional testing types 

* Performance testing
* Security testing
* Stress testing
* Usability testing etc...

I have given several major testing types. My question is, is it a must to do all these testing type for a system? I know each type has different purpose. But if I consider non functional testing, do I have to perform all types of testing? If not how to decide what types should be done?