Pick random people? Use a service like usertesting.com? What do you do?
The type of users you need to recruit for your tests are defined by your previous establishment of personas. You need to first research and establish the market you'll be addressing, and then define the profiles of the users that will be using them. Having this profiles or personas, you can start recruiting users.
You can read more about it here:
I just recently learned about the UserTesting.com service and it seems like an interesting option, but never underestimate the value of face-to-face testing. If you have the time, I suggest you conduct the test personally. If not, well, some testing is always better than none.
Steve Krug states in Don't Make Me Think that the dirty secret to recruiting users is that you can use almost anyone. Unless domain expertise is needed to understand the interface, testing it with almost anyone (within reason) will still give you valuable insights. If you have personas then test with people who represent those personas.
Picking a few random people here n there is a good thing. It helps validate any personas you may have created.
I've had lots of success with the family and friends approach. Invite your family, your friends, colleagues etc to invite their family and friends. Provide a small incentive, like a book voucher and you can generally get enough users to do the test.
- I would recommend testing the product with the team involved in building (or developing) it. This performance measure can serve as a useful baseline for near-perfect performance with actual users. For example, if a developer involved in designing/building the UI takes 10 mins to accomplish your usability tasks whereas another user (in the field) takes 20 mins, then this user is performing at 50% efficiency when compared to an 'expert' user.
- Testing with developers will generate buy-in for the testing and for accepting the test results. There's always someone in the room (viewing user's struggling with an interface) who'll comment that a participant is too stupid to figure out the task.
- I also recommend maintaining a database of users who've participated in your tests for future studies.
- You can also host simple UIs for evaluation on Amazon's Mechanical Turk, especially if the tasks are self-contained.
I would strongly not recommend entirely random participants.
e.g if it's a service for medical professionals, you will legitimately expect some knowledge of the medical jaron that random participants may not possess.
Mental models and preconceptions
e.g. if your service is for older people where use of digital social networks is less prevalent, testing with younger participants may not expose your older users lack of understanding of 'Share' buttons etc.
Finally, if you have to convice other stakeholders to action findings from your tests, I'd reccomend using particpants they percieve as matching thier customer demographic. This eliminates the "well, they aren't our audience" objection to accepting legitimate findings.
Regarding where to actually find these people; I've had most success by advertising through my personal network on social media (the average persons has ~5 million 3rd degree FB a LinkedIn connections) and forums roughly corresponding to your user demographic, though of course you must become a trusted member of such communities first.