"testdisk" is a linux command for "scanning and repairing disk partitions". I've never heard of this command until now, so I have no idea how it works.
http://linux.die.net/man/1/testdisk
"dd" is a Linux low level linux command that will copy bytes from one source into a destination. Elixer's suggestion about using "dd" is to do a low level byte copy of your USB flash drive onto multiple USB flash drives (thus making raw clones of your original USB drive), and try several recovery programs. The idea is that if one recovery program messes up the USB flash drive, you have another clone to try again with a different recovery program.
I've never tried this either with a USB flash drive, so I can't offer any more advice.