Testing performed to find issues in the interactions between two or more components in a system, or between two or more systems that interact with each other. The purpose is to test that the components or systems still work well when they are integrated.
The testing can be performed by developers, testers, or both working together.