Who is responsible for integration testing, the developer or the tester?
This answer will always depend on the project you're working on. Even in the same company, I've seen responsibility for integration test execution separated between the two project roles differently (sometimes it's the programmers who run those tests, other times it's the testers). It will often depend on who's managing the project, the development methodology being used, company culture, how consulting contracts are written (who's responsible for delivering what), and sometimes even what tools and technology are being used.
However, I think I can provide a better answer than "it depends." If I'm managing or working as part of the leadership team on a project, it's my expectation that both programmers and testers are responsible for integration testing. It's not an area of testing where I've found strict role separation useful (but that could just be due to the types of projects I've worked on). It's also been my experience that the closer the two roles work together when doing technology-facing testing, the better the testing results are.
The programmers will likely have a deeper grasp of the technical concerns of the integration. The testers will likely better understand the risks around quality criteria other than capability (does it do what we think it should be doing). They'll be thinking about performance, error handling and alerting, operational criteria, usability, and edge cases related to critical functions. It's one of the areas where I've found it easiest for the two roles to collaborate.
This was first published in February 2009