After the initial phase of testing, known as unit testing, integration testing is performed. To ensure that all parts of a software project function as intended, testers must perform integration testing. Typically, a software development project will involve the collaboration of many different programmers who will each contribute their own unique expertise to the projects various software modules. During integration testing, the team can see how well the separate parts interact with one another. Developers should perform integration testing for a number of reasons, beyond the obvious fact that they must test all software applications before releasing them to the public.