Question: I am being asked by my QA team to give them different APKs pointing to different servers and they can install all of them on the same device so that they can compare it side by side. 

I know it's impossible to have multiple APKs on the device without changing the package name. But then since the app uses services like GCM, they depend on package name and then we have to start doing changes on server to support debug builds. 

I'm just generally curious to know how people around usually test the app, specially in the case above where you can have multiple servers that you may want to test on. Are there any specialised tools that you guys use? What's the best practice?

Answer: 
Have a debug-only screen where they can select the server to connect to...
As per suggested by @Buddy you can do.

But I suggest you to take Two device and check side by side . As there no tool that can do that.