Is guerilla testing meant to be ad hoc and improvised?

I think any type of research and testing activity should have some planning and structured involved, in the same way that adopting an Agile software development process doesn't mean throwing all the processes and documentation out the window.

Is it common practice for people to do guerilla testing as an ad hoc activity in research and testing, or should these still be activities that are scheduled when the time and resource constraints are known to be tight? And when people conduct guerilla testing, is it common for the process to be improvised or should it still be partially structured so as to allow easier synthesis of research/testing information?