After individually testing the each module if any modules are dependent on any other module then we go for integration testing, otherwise individual module testing is enough no need to test after integrating the system. Hence we can go for some kind of Ad hoc testing after integrating the modules.
Integration testing depends on the application you test. If the Software application developed does not have any dependency over any other components, then no need of Integration testing.
Example: The application requires just an input from the user and it generates an output. For this integration testing is not needed.
If the application is dependent on various sources to obtain its input then we should go for Integration testing.
Example: Application "Apollo" has to wait for an XML from system A, wait for a response from system B, etc. So here
the integration of Apollo with system A and system B has to be tested.
For example i have told about this basic application. For these types of application there won't be that much investment is needed. Moreover this can be taken as small application. Even now some customers are asking small companies to develop these types of application for their use.
As we go with OOPS concepts and also with the business needs that drive the creation of applications, each module has some or the other dependency on the other modules. To ensure that they work together to meet the business expectations, we need to perform Integration testing. Now as per your question, of *When*, it all depends on the time when these modules start getting developed and are delivered to the testing team. It is always good to test the dependency as early as possible, even in the unit testing phase so as to ensure that you are not getting any surprises later in the cycle.