How to Test Application Interoperability
How to test application interoperability
When you do system integration testing, interoperability is one of the main types of testing you are typically doing, along with security, performance, reliability and end-to-end functionality. All of these types of testing require the use of realistic test data so that important test conditions are covered. Production data is the obvious place to obtain realistic test data, but there are pitfalls and surprises that can occur.
Remember that production data can include personal and confidential information. For good reason, organizations tend to place restrictions on who can access such data. This becomes particularly critical if you intend to outsource some of the system integration testing. There are tools available to anonymize production data in a way that preserves valuable test conditions while irreversibly hiding personal data. Production data sets are often very large, so be sure to allocate plenty of time to complete any test data anonymization project.
Software as a service and open-source applications
Keep in mind that using software as a service (SAAS) and open-source applications changes the situation, but it certainly does not make these risks go away. With either approach, if you are sharing data with such an application, you lose some of the control you would otherwise have over the interfaces between those applications and your own.
In the case of open-source software, you can at least determine your own schedule for taking updates. For SAAS, the software can change without your knowledge. If you share data with SAAS or open-source applications in typical ways, you can rely to some extent on the risks being addressed as part of the release process.
However, if your interoperations with these applications are atypical, you could end up discovering issues that no one thought to address. You should try to find out whether your usage of these applications matches the typical usage in order to understand interoperability risks and, thus, the degree of system integration testing required.