I feel cheated. I thought this was going to be a link to a video of a fight or something!
This is SUCH a big area.
From a developers standpoint, a "tester" is someone who runs the programs with no regard for anything but seeing the expected answers. Anything that is different from expected is wrong.
From a tester's standpoint, a tester is the last line of defense against the idiots in development. So their job is to test everything that could possibly happen. Their job is made easier by hiding all but the most basic requirements from development until after testing begins. At that point, all of the previously secret requirements should become immediately obvious to anyone using the system.
If you want to spend your life proving other people wrong, be a tester. If you want to spend your life as an amateur psychic and detective, be a developer.
If you want to spend your life explaining to everyone why they don't understand something, be a manger of either of those two groups.