Yeah; like Scorpion said:
- Alpha is generally a very basic version of the full program, technically anything that can be tested, and should be tested, by the development team for major mistakes is an alpha. Alpha versions are generated for as long as the software is not finished. If all you got is a GUI, for example, that is an alpha version - you want to test if the GUI works; do you get to the correct sub-menues, etc.
- Beta is mostly a pretty much finished (as in it's working) version that requires bug testing, stress testing, etc. These are tests that for the most part require a lot of people on a lot of different systems, thus a group of dedicated testers are invited to try out the software and help the development polish everything and catch at least the most evident bugs before release.
- A release candidate is a release that is not public, but given to select customers. This is to have a final, general usage test before the public release in case more bugs should surface. You could consider it a trial.