Is Non-functional Testing Always Carried out without Documentation and Test Cases? Why?

We are always taught how to write functional test cases. Why is that? Is ‘non-functional testing’ carried out without documentation (in other words, on an ad-hoc basis) or is that a separate process that is much more difficult to understand? How are test cases written for different kinds of testing that happens on the application?

Related Articles:

http://www.softwaretestinghelp.com/non-functional-testing-without-test-cases/