Performs IntegrationTesting. Someone who writes software to validate that the different components of a system work together properly. Does integration testing only apply to the BigDesignUpFront model where modules are built and then integrated some time later? Yes, that is why it is called IntegrationTesting. Other names for this role that more accurately describe the effects of integration testing may include: IntegrationFacilitator, or something like GentleNudgerTowardBetterPublicInterfaces, meaning "This module doesn't really have a good public interface, how about making it a little bit more testable?" But it seems like any developer who notices that a particular module is awkward to use would also be able to say "this module doesn't really have a good public interface". But on a large project where a developer who writes an interface doesn't even know (over time) how the interface is being used, an integration tester could provide this feedback. One problems is: It is hard to distinguish a UnitTest from an IntegrationTest. Is an integration test just a unit test, testing a bigger unit? I think that the most productive integration tests simulate some large subset of user behavior and validate that the system behaves as desired. Also an integration test may serve as a useful location to put a comment like "This public interface seems awkward, shouldn't it be more ... " so that people who refactor code can get that feedback. Another problem is: How do you write integration tests while a system is in active development? Or does integration testing even apply if you IntegrateEarlyOften? ---- Capabilities should include being able to: * identify the public interfaces of a several interconnected packages (Java bias) * notice where the connection between packages is critical to correct system function * notice where the connection between packages is especially fragile * write test cases that: 1. validate that the packages work together properly and 2. expose weaknesses where two packages are coupled poorly Also, in order to be capable of the above, the integration tester should be able to understand how the system should be used, sometimes documented in the form of user stories, use cases, etc.