c The British Computer Society 2014. All rights reserved. For Permissions, please email: journals.permissions@oup.com Advance Access publication on 2 December 2014 doi:10.1093/comjnl/bxu140 Study on the Limitations of WS-BPEL Compositions Under Load Conditions Afef Jmal Maâlej ∗ and Moez Krichen Research Laboratory on Development and Control of Distributed Applications, National School of Engineers of Sfax, University of Sfax, BP 1173, 3038 Sfax, Tunisia ∗ Corresponding author: jemal.afef@gmail.com Web services compositions are still considered as a major player in the implementation of distributed architectures. Such applications must provide services to hundreds of users simultaneously. In this context, load testing of these applications seems an important task in order to detect problems under elevated loads. For this purpose, we proposed a distributed test architecture aiming to study the behavior of WS-BPEL compositions considering load conditions. The developed test approach is performed based on two steps. The first one is to run a load test during which the composition under test is monitored and performance data are recorded. The second step is to analyze the resulting test logs in order to identify problems under load. For that, we proposed a classification of these problems according to both their natures and causes. Finally, we concretized our solution by implementing a testing tool (WSCLim) and we evaluated it in the context of a Travel Agency case study. Keywords: web services composition; timed automata; distributed load testing; log analysis; performance monitoring Received 7 October 2013; revised 16 October 2014 Handling editor: Mohamed Jmaiel 1. INTRODUCTION Nowadays, Web services compositions (particularly WS- BPEL 1 [1] (or BPEL) compositions) provide different utilities to hundreds even thousands of users instantaneously. An important challenge of testing these applications is load or stress testing [2], which is frequently performed in order to ensure that a system satisfies a particular performance requirement under a heavy load (we highlight that in our context, load refers to the rate of incoming requests to a given system during a period of time). In addition to conventional functional testing procedures (such as unit and integration testing), load testing is a required procedure that reveals programming errors, which would not appear if the composition is executed with a small workload or for a short time. Such errors are called load sensitive faults. They emerge when the system is executed under a heavy load or over a long period of time. On the other hand, a given process under test may be correctly implemented but fails under some particular load conditions because of external causes (e.g. misconfiguration, hardware failures, buggy load 1 Web Services-Business Process Execution Language. generator, etc.). Hence, it is important to identify and remedy these different problems. In this context, we investigated in [3] the opportunities as well as the general challenges of load testing. A classification of existing related works was also reported. Furthermore, several criteria were introduced in order to evaluate and compare the different approaches. Finally, a summary of both comparison and evaluation of the approaches were presented and the results were also discussed. In brief, recognizing problems under load is a challenging and time-consuming task due to the large amount of generated data and the long running time of load tests. Thus, the motivation of our work is to help practitioners to study intensely the limitations of BPEL compositions, in particular under various load conditions. In other words, we provide a complete tooled approach, dedicated to BPEL-based Web service compositions, that combines both functional and load testing. For that, we base our study on conformance testing concept which verifies that a system implementation performs according to its specified requirements. Particularly, we aim to check this conformance under load and to provide information about both nature and cause of these applications failures. In this context, we highlight that functional load test Section C: Computational Intelligence, Machine Learning and Data Analytics The Computer Journal, Vol. 58 No. 3, 2015