LABORATOIRE D INFORMATIQUE DE NANTES-ATLANTIQUE UMR 6241 ÉCOLE DOCTORALE STIM, N. 503 «Sciences et technologies de l information et des mathématiques» Sujet de thèse pour 2013 Une approche dirigée par les modèles pour la génération de tests pour des systèmes de traitement de données complexes et réparties. Directeur de thèse NOM, Prénom : ATTIOGBE, Christian Équipe d accueil : AeLoS Unité de recherche : LINA (UMR 6241) Unité de rattachement : Univ. Nantes Courriel : christian.attiogbe (at) univ-nantes.fr Taux d encadrement : 40 % Nombre de thèses en cours : 2 Co-encadrant NOM, Prénom : MOTTU, Jean-Marie Équipe d accueil : AeLoS Courriel : jean-marie.mottu (at) univ-nantes.fr Téléphone : (+33/0) 2 51 12 58 50 Taux d encadrement : 30 % Nombre de thèses en cours : 1 Co-encadrant NOM, Prénom : SUNYE, Gerson Équipe d accueil : AtlanMod Courriel : gerson.sunye (at) univ-nantes.fr Taux d encadrement : 30 % Nombre de thèses en cours : 2 Financement prévu : MESR
Sujet de thèse pour 2013 Une approche dirigée par les modèles pour la génération de tests pour des systèmes de traitement de données complexes et réparties. Résumé. Au cours de la dernière décennie, les systèmes répartis à large échelle ont connu une popularité importante en raison de leurs caractéristiques particulières, comme le passage à l échelle et la tolérance aux fautes. Certains systèmes orientés données (BigData), comme les systèmes Pair-à-Pairs et MapReduce, ont atteint des millions d utilisateurs et des pétaoctets de données traitées : Hadoop, Skype, Bittorrent, Gnutella etc. Le test de validité, robustesse et fiabilité des systèmes répartis à large échelle est une activité difficile. L état de l art montre que les techniques de test existantes souffrent de la gestion des aspects tels que : l échelle du système, le dynamisme des noeuds et la quantité importante de données. En général, ces techniques de tests reposent sur des tests unitaires exécutés par un pilote de test qui cache les aspects répartis et ne conviennent pas à la détection d erreurs qui se manifestent à large échelle. L objectif de cette thèse est d appliquer des techniques d ingénierie des modèles pour générer et stocker des cas de test distribués, adaptés aux systèmes de traitement orientés données à grande échelle. Mots clés. Systèmes BigData, Ingénierie dirigée par les modèles, Test logiciel. Ph. D. Proposal for 2013 A Model-Based Approach for Generating Test Cases for BigData Systems Abstract. Over the last decade, large-scale systems drew much attention due to scalability and resiliency features. Many popular large-scale data-oriented systems (i.e., BigData), including, Peer-to-peer (P2P) and MapReduce, reached millions of users and processed petabytes of data, such as: Hadoop, Skype, Bittorrent, and Gnutella. Testing robustness and reliability of cloud computing services is a hard activity, the state of the art shows that the existing testing techniques suffer to handle aspects, such as: the scale of the cloud, the dynamism of the nodes, and the amount of data and load. In general, these testing techniques rely on a combination of unit tests with some "mocking" approach that may hide the cloud aspects and may not be suited for large-scale testing. The goal of this thesis is to apply model-based engineering techniques for generating and storing distributed test cases that are adapted for large-scale data-oriented systems. Keywords. BigData Systems, Model-Based Engineering, Software Testing. 2
Introduction Contexte et problématique Les systèmes Big Data [1,2] qui traitent des quantités massives de données en les transformant ou en les faisant circuler sur des réseaux ont besoin de contrôler la correction de ces données. Elles risquent d avoir subi des modifications qu il faut prévenir si les systèmes les recevant ne peuvent plus s en servir (changement de structure, de sémantique, perte ou ajout d information, etc.). Cette tâche est rendue difficile quand les données sont complexes tant par leur taille que par leur structure et que leur stockage et/ou traitement sont réparties (Cloud, SAAS). De surcroît, ces systèmes évoluent rapidement pour être adaptés aux évolutions des réseaux, des plates-formes de déploiement (systèmes d exploitation, mobiles ou non), etc. Avec de tels systèmes, on ne dispose pas forcément de données pouvant être entièrement contrôlées ou de connaissances complètes de la correction attendue d une donnée. Or il est important de pouvoir faire le contrôle le plus tôt possible pour éviter, par exemple, la propagation sur le réseau de données erronées. De plus, on veut contrôler la correction des données même quand l information sur les données et/ou traitements est partielle. Le contrôle peut aussi être fait dès que possible pour localiser rapidement de possibles défaillances des systèmes (noeuds mal configurés, migration de plate-forme non compatibles, etc.). Plusieurs approches de contrôle de la correction sont possibles dont le test que nous étudions dans cette thèse. Problèmes et opportunités La génération de cas de test pour des systèmes de traitement massif de données pose plusieurs problèmes qui devront être considérés dans cette thèse : 1. La génération efficace de données de test pour ces systèmes doit les mettre à l épreuve à large échelle. 2. Le stockage des données de test complexes doit être réparti pour simuler les conditions d exploitation réelles des systèmes considérés. 3. L analyse des données complexes obtenues après traitement doit assurer leur correction. Cette analyse doit être possible : (a) à grande échelle (Big Data) ; (b) si les traitements réalisées ou les données elles-mêmes sont partiellement connues ; et (c) quand les contrôles doivent être réparties (Distributed). Nous proposons d aborder la problématique de cette thèse en exploitant l Ingénierie Dirigée par les Modèles afin de : 3
modéliser les données pour en isoler les parties dont on veut/peut contrôler la correction (non impactées par des évolutions, parties de donnée ayant transitées, traitement partiel sur des données) ; modéliser les fautes potentielles pour générer des données mettant spécifiquement à l épreuve des défauts. Cette partie exploite l analyse de mutation qui n est pas encore étudiée dans ce contexte [15] ; contrôler (correction de données / oracle de test) des propriétés sur des modèles de données. Bien que plusieurs architectures de test de systèmes Big Data aient été proposées [3-11], aucune de ces propositions ne résout la génération de cas de test d une part. D autre part, il existe des approches pour la génération de cas de test exploitant la modélisation [12], mais elles ne permettent pas de produire des cas de test utilisant des données complexes et réparties. Travail demandé Objectifs Les objectifs de cette thèse sont : 1. Étudier les techniques existantes de génération de données de test et de modélisation de fautes [13]. 2. Proposer un méthode de génération de données de test adaptés aux systèmes de traitement massif de données réparties à grande échelle, à partir de modèles. 3. Adapter aux caractéristiques des systèmes considérés les approches de comparaison (totale ou partielle) de données [14]. Dans cette thèse, nous nous intéressons aux deux usages principaux de systèmes Big Data : (i) les services de traitement de transactions, qui sont généralement traitées audessus d un système de gestion de données (SGBD), et (ii) les services de traitement de données qui se basent sur des systèmes répartis, comme : MapReduce ou pair-à-pair (P2P). Nous utiliserons des techniques et des outils d ingénierie dirigée par les modèles proposés par l équipe AtlanMod pour modéliser les fautes et pour implémenter les algorithmes de génération et de comparaison de données de test. Plan de travail prévisionnel de l étude 1. Étude des techniques de génération de données de test. Analyse et évaluation de leur applicabilité aux données complexes. 2. Étude des techniques de comparaison de données pour l implémentation d oracles de test et analyse de leurs limitations quand elles sont appliquées aux données complexes. 4
3. Étude des techniques de modélisation de fautes. 4. Proposition et implémentation d algorithmes de génération de données complexes, à grande échelle. 5. Évaluation des algorithmes. Candidats Compétences Le candidat doit avoir des compétences en Génie Logiciel et en particulier dans le domaine de la Vérification & Validation et de l Ingénierie Dirigée par les Modèles. Déclarations de candidature et résultats universitaires connus Un étudiant du parcours GL du M2 Alma de Nantes, Thomas Degueule, s est montré intéressé par ce sujet. Il effectue son stage de M2 Alma dans nos équipes sur la première partie du sujet. En M1, il s est classé 4ème sur sa promotion de 40 étudiants. Il a déjà eu une première expérience de la recherche en mettant en oeuvre des expérimentations de travaux de thèse comme ingénieur d étude au L3I (Université de La Rochelle). 1. Stonebraker, M. et al. (2007). The End of an Architectural Era (It s Time for a Complete Rewrite). Proceedings of the 33rd International Conference on Very Large Data Bases (VLDB), 1150-1160. 2. Jeffrey Dean and Sanjay Ghemawat (2004). MapReduce : Simplified Data Processing on Large Clusters. 6th Symposium on OS Design and Implementation (OSDI). 137-150. 3. Gunawi, H. S. et al. (2011). Failure as a Service (FaaS) : A Cloud Service for Large- Scale, Online Failure Drills. EECS Department, University of California, Berkeley. 4. Yuetang Deng ; Phyllis G. Frankl ; David Chays (2005). Testing database transactions with AGENDA. 27th International Conference on Software Engineering (ICSE), 78-87. 5. Brad Long and Paul A. Strooper (2001). A Case Study in Testing Distributed Systems. 3rd International Symposium on Distributed Objects and Applications (DOA), 1-10. 6. Ion Stoica ; Robert Morris ; David R. Karger ; M. Frans Kaashoek ; Hari Balakrishnan (2001). Chord : A scalable peer-to-peer lookup service for internet applications. ACM SIGCOMM. 149-160. 7. Kristen R. Walcott and Mary Lou Soffa and Gregory M. Kapfhammer and Robert S. Roos. TimeAware test suite prioritization. ISSTA 2006. 1-12. 5
8. Andreas Ulrich and Hartmut Konig. Architectures for Testing Distributed Systems. IFIP TC6 1999. 93?108. 9. Thomas Walter and Ina Schieferdecker and Jens Grabowski. Test Architectures for Distributed Systems : State of the Art and Beyond. IWTCS 1999. 149?174. 10. Eduardo Cunha de Almeida ; Gerson Sunyé ; Yves Le Traon ; Patrick Valduriez (2010). Testing peer-to-peer systems. Empirical Software Engineering. 346-379. 11. Eduardo Cunha de Almeida ; João E. Marynowski ; Gerson Sunyé ; Patrick Valduriez (2010). PeerUnit : a framework for testing peer-to-peer systems. 25th IEEE/ACM International Conference on Automated Software Engineering (ASE). 169-170. 12. Jean-Marie Mottu, Sagar Sen, Massimo Tisi, Jordi Cabot. Static Analysis of Model Transformations for Effective Test Generation, In proceedings of IEEE International Symposium on Software Reliability Engineering, ISSRE 2012, Dallas, USA, 2012. 13. Vincent Aranega, Jean-Marie Mottu, Anne Etien, Jean-Luc Dekeyser. Traceability for Mutation Analysis in Model Transformation, LNCS : Models in Software Engineering, Workshops and Symposia at MODELS 2010, Volume 6627/2011, pp. 259-273, 2011. 14. M. Stephan and J.R. Cordy, "A Survey of Model Comparison Approaches and Applications", Proc. Modelsward 2013, 1st International Conference on Model-Driven Engineering and Software Development, Barcelona, Spain, 10 pp., February 2013. 15. G. Fraser, A. Zeller. Mutation-Driven Generation of Unit Tests and Oracles. In IEEE Transactions on Software Engineering, pages 278? 292, 38(2), 2012. 6
CV du directeur de thèse Christian Attiogbe Titres Docteur en Informatique de l Université Paul Sabatier, Toulouse III, 1992 Maître de conférences, Université de Nantes, 1994-2008 Habilitation à diriger des recherches, Septembre 2007 Professeur des Universités, Septembre 2008 Thème de Recherche Correction prouvée des logiciels Langages, modèles et sémantiques Méthodes et spécifications formelles des systèmes hétérogènes Systèmes interactifs Ateliers de développement logiciel Activités Responsable de l équipe Architectures et Logiciels Sûrs (AeLoS) Lina UMR 6241 Chef du département Informatique IUT 7
CV du co-encadrant Jean-Marie Mottu Titres Docteur en Informatique de l Université de Rennes 1, Rennes, 2008 Maître de conférences, Université de Nantes, 2009 Thème de Recherche Vérification et Validation des logiciels Test Logiciel Ingénierie Dirigée par les Modèles Ateliers de développement logiciel Activités de recherche De 2005 à 2008, doctorant dans l équipe INRIA Triskell, Rennes De 2008 à 2009, post-doctorant dans l équipe INRIA Dart, Lille Depuis 2009, chercheur dans l équipe AeLoS, Nantes Depuis 2011, membre du conseil du laboratoire du LINA (UMR CNRS 6241) 8
CV du co-encadrant Gerson Sunye Titres Docteur en Informatique de l Université Pierre et Marie Curie, Paris, 1999 Maître de conférences, Université de Nantes, 2002 Thème de Recherche Vérification et Validation des logiciels Test Logiciel Systèmes répartis, pair-à-pair Activités de recherche De sept. 2002 à avril 2004 : Chercheur dans l équipe Lina MOC, Nantes. De oct. 2005 à août 2010 : Chercheur dans l équipe INRIA Atlas, Nantes. De sept. 2010 à août 2012 : Chercheur dans l équipe INRIA Triskell, Rennes. Depuis janvier 2013 : Chercheur dans l équipe INRIA AtlanMod, Nantes. 9