When you have only your own resources to fund your testing, I find that friends are a great resource :) In the past, if I've built something and want to make sure it works somewhere else, I'll find a friend who has a different setup than I do and send it to them.
The downside is that these folks generally aren't trained software professionals and won't necessarily be able to do proper testing. If I need that, I can simply ask to visit them and use their system for a few hours to so some testing.
Alternatively, you can use the online community to crowd-source your testing and have them find the issues in your software. There are many situations where this isn't possible because you can't release the software into the wild.
Virtual Machines installed on your single PC also allow you to run multiple OS on a single piece of hardware. You can do this with software like VMWare.
Crowd-funding sites like Kickstarter can also be used for you to set specific targets and raise funds to get yourself hardware or VM software that you can use to setup your various environments. You'll need some way to make people want to invest in you, though.