For complex software platforms, composite applications can be a much more efficient solution than the legacy approach involving loosely connected webs of applications, databases, and middleware. However, testing composite applications—which may need to interact successfully with 100, 1000 or more third-party components and the web services that connect them—is more complicated than testing a collection of stand-alone applications individually.
Industry experts often recommend such best practices as better collaboration across project teams, earlier involvement by testers, and adoption of automated and virtualized tools. Before organizations can implement these improvements in an effective, lasting manner, both development and testing teams must understand how and why composite architectures change testing and embrace the mindset shifts composite architectures require.
Complexity Increases: Testers of composite applications must focus on more than functionality and performance of the application itself. They must also incorporate into their process the testing of the application’s architecture, business process integration and execution, and governance systems. If any of these contributors to function and performance are problematic, the application will not respond as the user expects.
Manual Testing Isn’t Sufficient: If developing companies and their testers want to minimize defects in production, then simulation and automation—and potentially, virtualization—are essential. The sheer volume and variability of business and service interactions required for composite application function make manual testing impractical.
Machines Drive Performance: Composite applications rely on machine-to-machine (M2M) interactions, yet most testers are geared toward testing human interfaces. Testing teams should understand testing at the component level and have an appropriate solution for testing M2M connections.
QA Takes the Stage Earlier: Not only do testing teams need to deal with all the technologies and protocols involved in a composite application, but their input is more important earlier in the process. This is partially due to the many stages of integration, each of which should be sufficiently tested before development proceeds. However, testers can also play a valuable role in the design process—and in requirements gathering. Companies that have the most success with composite applications usually treat their testing teams as part of the overall process and not as an afterthought.
Test-Driven Development Is King: For this reason, test-driven development—starting with the business requirements—is a beneficial approach for firms that want to master the complexities of composite applications and drive better end results.
In summary, testing should lead the process, happen earlier and more often, and involve considerable automation if a composite application is to function and perform at its best. With composite applications, there are so many “moving parts” and stages of integration that failing to test sufficiently at every one of them is a recipe for disappointment—if not disaster.