Model Transformation Test Oracles
Oracles du test de transformations de modèles
Résumé
With Model Driven Engineering models are the heart of software development. These
models evolve through transformations. In this thesis our interest was the validation
for these model transformations by testing, and more precisely the test oracles. We
propose two approaches to assist the tester to create these oracles. With the first approach
this assistance is passive; we provide the tester with a new oracle function.
The test oracles created with this new oracle function control only part of the model
produced by the transformation under test. We defined the notion of partial verdict,
described the situations where having a partial verdict is beneficial for the tester and
how to test a transformation in this context. We developed a tool implementing this
proposal, and ran experiments with it. With the second approach, we provide a more
active assistance about test oracles’ quality. We study the quality of a set of model
transformation test oracles. We consider that the quality of a set of oracles is linked
to its ability to detect faults in the transformation under test. We show the limits of
mutation analysis which is used for this purpose, then we propose a new approach that
corrects part of these drawbacks. We measure the coverage of the output meta-model
by the set of oracles we consider. Our approach does not depend on the language used
for the transformation under test’s implementation. It also provides the tester with
hints on how to improve her oracles. We defined a process to evaluate meta-model
coverage and qualify test oracles. We developed a tool implementing our approach to
validate it through experimentations.
L’Ingénierie Dirigée par les Modèles place les modèles au coeur du cycle de développement
logiciel. Ces modèles évoluent par le biais de diverses transformations. Dans cette thèse nous
nous sommes intéressés à la validation de ces transformations de modèles par le test, et en
particulier à l’oracle de ce test. Nous proposons deux approches pour assister le testeur dans
la création de ces oracles. Tout d’abord, nous offrons une assistance passive en fournissant
au testeur une nouvelle fonction d’oracle. Cette dernière lui permet de créer des oracles qui
ne contrôlent qu’une partie des modèles obtenus. Nous avons défini la notion de verdict partiel,
explicité les situations où un verdict partiel est plus avantageux et proposé un protocole
global du test de transformations dans ce contexte. Nous avons mis en oeuvre cette première
proposition dans un outillage avec lequel nous l’avons expérimentée. Ensuite, nous offrons au
testeur une assistance active en étudiant la qualité d’un ensemble d’oracles. Nous considérons
la qualité d’un ensemble d’oracles selon sa capacité à détecter des fautes dans la transformation
sous test. Nous proposons une méthode qui corrige en partie les insuffisances de l’analyse
de mutation, utilisée dans ce contexte ; nous mesurons la couverture du méta-modèle de sortie
par l’ensemble d’oracles considéré. Nous montrons que notre approche est indépendante du
langage utilisé pour la mise en oeuvre de la transformation sous test, et fournit au testeur des
informations pour l’amélioration des oracles. Nous avons défini une démarche pour mesurer la
couverture et qualifier des oracles. Nous avons développé un outil pour expérimenter et valider
notre proposition.
Loading...