Integration
Integration is defined as the act of enabling the execution of the functionality in a module or
application in its true execution environment (TEE). Made
that one up, I swear.
The true execution environment is the collective implementation of the module or application and all
the other modules and applications that execute along with it as they would be in a production
scenario.
- In a lot of cases, it may be impossible to produce an integration environment with all the
integrating applications or modules.
- In such a case, clear mention has to be made in the test cases and release documentation, of
the missing integration and how development and testing were completed and the pass/fail criteria
were determined.
- Stubbing – It is a very good practice to write a proxy or an implementation skeleton of a
real integrating application or module in its absence, with the ability to simulate application
integration responses as would be in real time.
- A good example is payment / credit card processing. While it may not be possible to use real
credit cards and integrate with the credit card processor during unit testing, or even integration
testing, it makes sense to build a Proxy layer between the credit card processing API, so that your
proxy layer can simulate standard success and failure responses, driven by configuration in the
absence of the actual integrating layer.
The main goal of integration is to be able to obtain a build of the entire application with your
changes, so that it is possible to test the functionality of the application’s execution in its true
production state.