Testing the Enterprise Application Integration
- By Jonathan Rende
Software systems are absolutely critical to the ultimate survival of today’s businesses. They present tremendous new opportunities and unique competitive advantages. But, software is also an immense source of risk.
Today’s IT applications reach thousands of users, expose organizations’ mission-critical systems to larger audiences and bear a higher risk of failure than ever before. Inadequate performance and poor quality of these systems can result in more than just a temporary slowdown, it can jeopardize the very existence of a business or forever change a company’s competitive position in the industry. In other words, a company can turn its own prospects into a competitor’s customers. The increasing complexity and growing strategic importance of software systems dictate the need for their improved functionality, higher scalability and flawless performance.
Software applications are deployed to enable organizations to focus on business issues. They automate organizations’ most mission-critical business processes, such as order entry, supply-chain planning or account management, to support the day-to-day workflow. However, rather than purchasing all of their software from one vendor, companies often chose best-of-breed applications from a variety of manufacturers, often competitors, creating the need to integrate these applications into one seamless infrastructure.
Since these applications work with integrated business processes, they, too, need to be integrated to model the flow of information inside the organization. For example, a purchase order entered into the ERP system needs to be accurately reflected in the sales-force automation software, a new employee data has to be transferred to payroll and HR software and the manufacturing data should be accurately represented on a balance sheet.
Each of the enterprise systems is complex in itself. Adding new components and integrating it with other applications adds to its complexity and, therefore, presents higher performance requirements. The good news is that more and more vendors are providing means to integrate some of the most common software applications. Enterprise Application Integration (EAI) products are promising effective ways to hook up disparate applications that are, otherwise, difficult to integrate. The bad news is that there is no such thing as a "plain vanilla" enterprise application. Every company adjusts its systems to reflect the unique business processes that make up its competitive advantage. This means that almost every EAI effort involves custom implementations and consulting.
As a result, more complex business logic of integrated applications and higher degrees of customization present new reliability and performance concerns. The best way to address these concerns is through comprehensive application testing.
Why Test Packaged Applications?
While the EAI category is still forming, the current focus of EAI product vendors is on linking popular Enterprise Resource Planning (ERP), front office, legacy, Web and supply-chain planning packages. The very concept of a packaged application implies that it will work as expected when you take it out of the box. So, why fix it if it isn’t broken?
Every packaged application implementation requires a customized approach, with unique configuration. Functional and load testing are key to making sure that your application’s functionality and capacity are assessed and fine-tuned before deployment. And testing is not a one-time activity – applications need to be tested throughout their lifecycle. Every version upgrade, module addition or enhancement, every implementation at a new site or increase in user load need to be put through comprehensive testing to ensure continued reliability and performance.
With packaged applications, power and complexity go hand in hand, and testing before deployment is more than just a good idea – an absolute necessity.
Testing is needed to manage the risk of changes associated with every new implementation, such as the risk of disrupting a working process in the organization.
Testing Integrated Applications
Enterprise Application Integration is really more than just a few applications and databases "glued" together. Building connections between different components of the enterprise architecture creates a new set of rules for how users access each application and creates new demands for system functionality, scalability and interoperability.
Load on the IT backbone. Under the integration scenario, users of each linked system are also users of ALL systems in the enterprise. Directly or indirectly, they generate load on the IT backbone. Insufficient network bandwidth, architectural interoperability and databases that do not scale as the number of users increases or poor application server performance can make previously functional application virtually unusable.
Behind-the-scenes business processes. EAI makes business processes more efficient. It streamlines the organization’s workflow by automating a host of "behind-the scenes" operations, such as periodical record updates. For example, new employee records from the HR database need to be automatically updated in the payroll application. This process has to take place on a regular basis to ensure that data remains reliable across the enterprise.
Business processes that span various applications. Integrated applications support integrated business processes. Accurate data exchange between applications is key to flawless performance of the entire enterprise system. With EAI in place, you need to verify that the data exchange process is robust and can handle large volumes and a variety of data.
Integrating ERP with mainframe systems. Many applications are custom-made and reside on mainframe systems. In this case, ERP implementations that take place have to integrate with mainframe, since most business processes would span both ERP and mainframe. An efficient data validation process is needed to ensure that no data is lost or damaged in transition. Testing of business processes on both platforms needs to take place concurrently. Otherwise, there’s no guarantee that switching or integrating ERP and custom mainframe applications will go smoothly.
Testing the EAI Vendor Products
Testing EAI is like testing the plumbing system before connecting it to the house – you want to make sure that your pipes are all the right size, shape and type. You want to verify that all parts are connecting properly and that the whole system will work before, during and after your move.
As previously mentioned, the field of EAI is just emerging and new products are entering the market almost every day. However, the fact that EAI tools interact with almost every application in your organization and handle a company’s most mission-critical information should encourage thorough functional, regression and load testing. This will help ensure that EAI packages work correctly before deployment and remain reliable.
Automated Testing Solutions
Perhaps, the biggest challenge in EAI testing is to ensure that multiple enterprise applications, in a range of languages and platforms, are effectively communicating and sharing production information. Arguably, automated testing tools are the best available solution for verifying the functionality and performance of integrated applications. Functional, regression and load testing tools provide solutions for a variety of enterprise applications (e.g., ERP, front-office, e-business, custom client/server, legacy), work on any combination of hardware platforms (e.g., Windows 95, 98, NT, UNIX) and support a multitude of application architectures.
Automated testing tools can test the system’s functionality and performance by exercising it in a realistic production environment with real transactions and data.
In addition to testing individual applications in the integrated architecture, these tools can address the issues of application interoperability, ensure data integrity between different systems and predict system behavior under increased user load.
For example, a functional testing tool will automatically record all user actions as the user navigates through the application. It will then create multiple test scenarios and replay them with different sets of data to ensure that business processes function correctly in a real production environment. Functional testing also helps verify that information is being accurately transferred between integrated applications and that data integrity is preserved across all business processes.
A load testing tool can verify that an applications’ performance won’t be compromised as more users gain access to integrated applications. This type of tool can emulate a load of a combination of users, for example SAP R/3, Web and PeopleSoft virtual users, to drive an application with real transactions, while measuring response times, network delays and overall application performance.
When used together with comprehensive test management, automated functional, regression and load testing can help predict system performance, verify functionality, interoperability and application security on any combination of integrated applications.
Deploy with Confidence
Automated testing is the only way to maximize software’s opportunity and minimize the risk associated with deploying a new application.
Using best-of-breed technologies for automated testing can help you avoid any unexpected performance problems associated with application integration, added system functionality or increased user load. A company’s initial investment in the testing tools can help create a well-proven testing model that can be reused for future testing and a warehouse of repeatable tests for future system enhancements.
Jonathan Rende is Vice President of Marketing – Testing Tools at Mercury Interactive. He can be reached a firstname.lastname@example.org.