jeudi 25 novembre 2010
« Symbolic Test Case Generation for Testing Orchestrators in Context« .
La soutenance aura lieu le jeudi 25 novembre 2010 à 10h30 à l’institut Télécom Sud-Paris dans la salle A07.01
Composition du jury:
Vlad Rusu, Inria Lille, Président
Rob Hierons, Brunel University, Rapporteur
Richard Castanet, LaBRI Bordeaux, Rapporteur
Ana Cavalli, Télécom SudParis, co-directrice de thèse
Pascale Le Gall, Université d’Evry, co-directrice de thèse
Christophe Gaston, CEA LIST DILS, Examinateur
Abstract
In the last years, the Service-Oriented Architecture (SOA) has gained popularity in the industry due to the advantages it offers: independence (low coupling), reusability, and sharing of services. Web services are an example of SOA, which
are pieces of software offering functionalities trough the Internet. Due to their acceptance, new ways of using Web services have also emerged. The most popular is the one known as Web service Orchestration. Orchestrations are the result of combining different Web services in order to create new, more complete and complex ones. In this type of systems, there is a central Web service guiding the whole process: the orchestrator.
In this thesis, we focus on conformance testing of orchestrators in context: that is, orchestrators interacting with Web services in the orchestration during the testing phase. Moreover, we restrict to cases where only the speci cation of the orchestrator
is known. That is a usual practical case, since Web services are often developed by companies that do not publish their speci cations. Our objective is to determine if, when an error is detected in the orchestration at the testing in context phase, the error is due to a non conformance of the orchestrator. A rst contribution of this thesis is to de ne conformance relations (based on the conformance relation
ioco) allowing us to characterize conformance in context. Moreover, we provide a classi cation of the different situations when testing the orchestrator, depending on the nature of the testing architecture. The usage of our conformance relations is strongly coupled to those testing architectures. For the different testing architectures, we state theorems allowing us to relate conformance in context and usual unit conformance in the ioco framework. We then show how to put the formal work in practice by means of symbolic techniques and of a rule-based online testing algorithm, allowing us to detect non conformance of orchestrators while interacting with orchestrators in context. The main symbolic technique we use is the symbolic execution, whose basic idea is to execute programs using symbols instead of concrete data as input values, and to derive tree-like structures in order to describe all possible computations in a symbolic way.
A directly derived and complementary work is to de ne Web service testing techniques which allow one to determine if a given Web service can be used together with an orchestrator without leading the resulting orchestration into deadlock situations. Since we only take into account the speci cation of the orchestrator, this is done only according to the the Web service behaviors expected from the orchestrator.
A final contribution of this thesis is the implementation of a prototype which allows us to test implementations of orchestrators in their context of usage. This prototype implements the rule-based online testing algorithm, as well as the rest of technical operations to apply it in a testing architecture aiming at performing this kind of tests with this kind of systems.
Keywords: ioco, SOA, test in context, orchestrators, symbolic testing, test case generation.
Résumé
Les Architectures Orientées (SOA) se sont imposées depuis quelques années dans la plupart des entreprises par les nombreux avantages qu’elles procurent: faible couplage, réutilisation et le partage des services. Puisqu’ils constituent des logiciels offrant des fonctionnalités via Internet, les Services Web s’inscrivent clairement comme une instance de l’architecture SOA. Afin de faciliter encore leur usage, de nouvelles façons d’utiliser les services Web ont émergé. La plus connue d’entre elles est celle connue sous le nom d’orchestration de services Web qui consiste à combiner différents services Web afin d’en créer de nouveau par le biais d’un service central Web, l’orchestrateur, guidant l’ensemble du processus.
Dans cette thèse, nous nous intéressons au test de conformité des orchestrateurs testés dans leur contexte, cest-à-dire interagissant avec des services Web. De plus, nous considérons le cas de figure où seule la spécification de l’orchestrateur est connue. En effet, les services Web sont souvent développés par des sociétés tiers ne publiant pas nécessairement leurs spécifications. Notre objectif est de déterminer si une erreur détectée dans l’orchestration, i.e. l’orchestrateur dans le contexte des services Web invoqués, peut s’expliquer par une non-conformité de l’orchestrateur. Dans le cadre de la relation de conformité connue sous le nom de ioco, nous avons précisé quels sont les liens rigoureux entre la conformité de l’orchestrateur au sens ioco, et la conformité de l’orchestrateur en contexte. Nous avons effectué cette étude en tenant compte des différentes situations en lien avec l’architecture de test. Ces différentes situations sont reliées aux facilités d’accès et/ou de contrôle des communications échangées entre l’orchestrateur et les services Web. Nous adaptons ensuite ce travail dans le cas où les spécifications des orchestrateurs sont donnés sous la forme de systèmes de transitions symboliques à entrées/sorties. Nous fournissons un algorithme de génération de séquences de test sous la forme d’un ensemble de règle: sous l’hypothèse que le système sous test est constitué de l’orchestrateur et des services Web invoqués au sein de l’orchestration, des verdicts de non-conformité des orchestrateurs sont émis.
Nous avons aussi tiré parti de la donnée de la spécification de l’orchestrateur pour inférer les comportements des services Web tels qu’attendus par l’orchestrateur. Les comportements inférés peuvent servir d’objectifs de test de telle sorte qu’une erreur de conformité mise à jour sur les services Web en question révèlerait alors une situation de blocage (dead-lock) dans une orchestration constitué d’un orchestrateur conforme et des implémentations sous test des services Web.
Nous avons implémenté un prototype de génération de séquences de test des implémentations des orchestrateurs considérés dans leur contexte d’utilisation constitué des services Web. A l’aide de techniques d’exécution symbolique et de résolution de contraintes, ce prototype met en oeuvre des opérations de transformations des arbres d’exécution symbolique des spécifications afin de se placer du point de vue de l’orchestrateur en contexte, et implémente l’algorithme à base de règles.