In my experience of dealing with development resource in India is that they always promise the world and no matter what they are always on track to deliver on time. They don't seem to know the word "No" until it's too late to actually do anything about it.
As for designers testing their own requirements ....... nothing like marking your own homework. Career testers will have a totally different mindset to someone who wants a process or application to work. A tester will think negatively as well as positively, however a tester is only as good as the documentation made available to them. Poor requirements will mean poor code, which will lead to lots of defects, which will lead to increased rework which will lead to increased timescales, unless you're RBS and it's get it in at all costs
Exactly, you need to have independent testing, ideally at all levels including unit testing although depending on the team you can just about get away with peer review of test cases and test results. Unit testing is only the first level though.
In my experience of working with offshore teams the problems lie as much on the onshore as the offshore side.
To make it successful you need to understand the cultural differences and nuances and you need to tailor how you work to accommodate that. If you try and force a way of working on people that is culturally uncomfortable then you're setting yourself up to fail from day one.
Add in to the mix third party outsourced offshore and you are really starting to cook with gas.