The behavior of composed Web services depends on the results of the invoked services; unexpected behavior of one of the invoked services can threat the correct execution of an entire composition. This paper proposes an event-based approach to black-box testing of Web service compositions based on event sequence graphs, which are extended by facilities to deal not only with service behavior under regular circumstances (i.e., where cooperating services are working as expected) but also with their behavior in undesirable situations (i.e., where cooperating services are not working as expected). Furthermore, the approach can be used independently of artifacts (e.g., Business Process Execution Language) or type of composition (orchestration/choreography). A large case study, based on a commercial Web application, demonstrates the feasibility of the approach and analyzes its characteristics. Test generation and execution are supported by dedicated tools. Especially, the use of an enterprise service bus for test execution is noteworthy and differs from other approaches. The results of the case study encourage to suggest that the new approach has the power to detect faults systematically, performing properly even with complex and large compositions.To assure the delivery of high quality and robust service-oriented applications, SOA testing has received much attention [4]. In this context, WSC testing plays an important role [5][6][7][8][9][10][11] because the behavior of the composite services now depends not only on the WSC itself but also on the integrated services, complicating the testing process. The WSC can present complex communications among the integrated services in which missing or unexpected messages can lead to a failure. Furthermore, the composition may fail because of undesirable behavior of partner services, such as corrupted messages, unavailable servers, and long timeouts.A common problem in testing any kind of application is to automatically generate meaningful test cases. The strategy of using models for test case generation is known as model-based testing (MBT). In MBT, a tester uses his or her knowledge of a given system under consideration (SUC) § to develop a model for generating test cases. MBT can be applied in initial development phases because the modeling and test generation do not require an executable system. The appropriate application of MBT in software projects brings several benefits, such as high fault detection rate, reduced cost and time for testing, requirement evolution, and high level of automation (see, e.g., a detailed evaluation of MBT in [12]).Test models are more productive when specific features of the system can be described using an appropriate modeling technique. Event-based models have been used to support verification and testing [13][14][15] because events are essential for many different classes of systems, for example, Web applications or embedded systems. Event sequence graphs (ESGs), originally introduced for testing graphical user interfaces [14], were also used t...