A service-oriented architecture enables composite applications that support business processes to be defined and built dynamically from loosely coupled and interoperable web services. The testing and debugging of such applications presents special challenges in terms of localizing faults within the architecture, as well as addressing distributed, multiuser interactions. In this paper we define an integration test framework for composite applications based on defining test cases of expected behavior for composite applications and the web services used. The test framework is implemented in TTCN-3 using a test agent architecture that supports coordinated "greybox" testing of application behavior and web service interaction. The essential issues that must be addressed in implementing such a framework are identified, and we illustrate how TTCN-3 support for s, abstraction levels, set operations, and pattern matching allow one to address these issues efficiently and effectively.