Analyses Automatiques pour le Test de Programmes Orientés Aspect
Résumé
Aspect-oriented programming is a new paradigm that separates the different concerns to improve the modularity. This paradigm introduces new challenges for the validation. To offer effective solutions to these problems, we have studied the use of Aspect in 38 open source projects. These observations have shown that the aspects are rarely used, and with great caution, and that aspect-oriented programming reduces the testability by increasing the coupling. We have developed a static analysis of the impact of aspects on the test cases. The objective is to statically determine which test cases are impacted by the aspects and should be modified to take the changes into account. This analysis, supported by a tool, aims at reducing the execution time of the test cases and allows the tester to focus on the test cases that need to be modified. We propose an approach, implemented in a tool, AdviceTracer, to test test the pointcut descriptors separately from the advices. This tool allows the definition of oracles that are specific to the detection of faults in the pointcut descriptors. This allows the oracle to test if an advice has been correctly woven without depending on the behavior of the advice. In the context of this thesis, we have developed different analysis tools. AjMetrics is a tool which measures different metrics on aspect-oriented programs, using a formalism. AjMutator is a tool for the mutation analysis of aspect-oriented programs, which is able to insert faults in the poincut descriptors.
La programmation orientée aspects sépare les différentes préoccupations pour améliorer la modularité. Ce paradigme introduit de nouveaux défis pour le test. Afin de proposer des solutions efficaces à ces problèmes, nous avons étudié l'utilisation d'AspectJ dans 38 projets libres. Ces observations ont révélé que les aspects sont peu utilisé, et avec précaution, et que la programmation orientée aspect diminue la testabilité en augmentant le couplage. Nous avons développé une analyse statique de l'impact des aspects sur les cas de test. Le but est de déterminer statiquement quels sont les cas de test qui sont impactés par l'introduction d'un aspect et qui doivent être modifiés pour prendre en compte les changements. Cette analyse outillée, vise à limiter le temps d'exécution des cas de test et permet au testeur de se concentrer sur les cas de test qui doivent être modifiés. Nous proposons une approche, implémentée dans un outil nommé AdviceTracer, pour tester les expressions de point de coupe séparément des greffons. Cet outil permet la définition d'un oracle spécifiquement adapté à la détection d'erreurs dans un point de coupe. Ceci permet à l'oracle de tester si un greffon a été correctement tissé, sans dépendre du comportement du greffon. Dans le cadre de cette thèse nous avons eu besoin de différents outils d'analyse. AjMetrics est un outil qui mesure diverses métriques sur les programmes orientés aspect en utilisant un formalisme. AjMutator est un outil d'analyse de mutations de programmes orientés aspect, qui est capable d'insérer des erreurs dans les expressions de point de coupe.
Domaines
Génie logiciel [cs.SE]
Loading...