I develop the game in the sequence the player will play it, and I test as I go, creating several save files - one will be the tested/fixed version at the last "checkpoint" (part of the game I am happy is working), and I might have a few for the current area I'm working on and testing. That way if something doesn't work, I've got a file I can restore so I don't have to play from too far back, but I still have all the team members at their appropriate levels and with appropriate equipment and items, and all the switches, variables and self switches set correctly for this point in the game.
Setting a starting spot is good if you just want to do a basic test, but unless you have EVERYTHING set the way the player will have it when they go through that part, there's always the possibility that you'll miss something.
And when you're all done - either a single small part, a complete area, or the whole game, play it yourself over and over. Do what you SHOULD do, but also do all the things that you SHOULDN'T do (THIS is what takes the longest time).
And then see how many testers you can get hold of who will do the same.
I really don't know if there IS an "efficient" way to test. If it's fast, it's not thorough. If it's thorough, it's DEFINITELY not fast. And it's the thorough type that needs to be done.