Is there a reason why an app would want all of my contacts? I've downloaded an application that wasn't in Google Play (private developer) for testing purposed. Part of the assignment is for me to send them back some information about my device (auto-generated, I just hit send). However, I noticed before sending the email that there was an attachment. I sent it to myself first so I could look at it on my computer and saw it was all of my contacts and the information I had of them, such as phone numbers, names, etc.

Is this something the developer legitly needs? The application can call other people, so that may be why they need it, but I don't understand why they need it. Should I send it to them?
Definitly not! That's nothing like what a developer needs. And a developer requiring you to send that I'd avoid in the future as well. All that might be needed can be provided by e.g. adb bugreport (which is the most comprehensive data collection known to me to be useful for a developer concerning his development). Requesting all your addresses is harvesting, and rather used for spamming.

TL;DR: I would NOT send that information. You might contact that dev and ask for an explanation, and then maybe decide different. But I cannot believe this being a "mistake" or simply "carelessness".