Towards a Practical Approach to Testing Pointcut Descriptors With JQuati 1 LA-WASP 2009.

Slides:



Advertisements
Similar presentations
AspectWerkz 2 - and the road to AspectJ 5 Jonas Bonér Senior Software Engineer BEA Systems.
Advertisements

Presentation by Prabhjot Singh
Validating the Evaluation of Adaptive Systems by User Profile Simulation Javier Bravo and Alvaro Ortigosa {javier.bravo, Universidad.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
© 2007 ATLAS Nantes 1 Atlas Model Weaver Use Case: Aspect Oriented Modeling Marcos Didonet Del Fabro Atlas Group (INRIA & LINA), Université de Nantes,
T-FLEX DOCs PLM, Document and Workflow Management.
Copyright  2005 Symbian Software Ltd. 1 Lars Kurth Technology Architect, Core Toolchain The Template Engine CDT Developer Conference, Oct 2005.
A. Bucchiarone / Pisa/ 30 Jan 2007 Dynamic Software Architectures for Global Computing Antonio Bucchiarone PhD Student – IMT Graduate School Piazza S.
Object-Oriented Analysis and Design
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Presenter : Shih-Tung Huang Tsung-Cheng Lin Kuan-Fu Kuo 2015/6/15 EICE team Model-Level Debugging of Embedded Real-Time Systems Wolfgang Haberl, Markus.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Regression Test Selection for AspectJ Software Guoqing Xu and Atanas.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
Institute of Computing Jaca: a Reflective Fault Injection Tool based on Patterns Eliane Martins Cecilia Rubira Nelson Leme Institute of Computing State.
SE-565 Software System Requirements More UML Diagrams.
Using Microsoft SharePoint to Develop Workflow and Business Process Automation Ted Perrotte National Practice Manager, Quilogy, Microsoft Office SharePoint.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
Computer Systems & Architecture Lesson Software Product Lines.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Introduction to AOP.
Towards Executable Aspect-Oriented UML Models 10th Int. Workshop on Aspect-Oriented Modeling (AOM), 6th Int. Conf. on Aspect-Oriented Software Development.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
Designing For Testability. Incorporate design features that facilitate testing Include features to: –Support test automation at all levels (unit, integration,
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
JUnit in Action SECOND EDITION PETAR TAHCHIEV FELIPE LEME VINCENT MASSOL GARY GREGORY ©2011 by Manning Publications Co. All rights reserved. Slides Prepared.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Winrunner Usage - Best Practices S.A.Christopher.
Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao Shanghai Jiao Tong University.
Formal Analysis of Problem Domain Workflows Uldis Donins Riga Technical University Baltic DB & IS 2012, July 8-11, Vilnius, Lithuania This work.
VERIFICATION OF ASPECT ORIENTED MODELS BY DON MARTIN JAYASHREE VENKIPURAM PATHANGI PIYUSH SRIVASTAVA REFERENCES F. Mostefaoui and J. Vachon,” Design level.
Sadegh Aliakbary Sharif University of Technology Spring 2012.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Cohesive Design of Personalized Web Applications Presented by Yinghua Hu Schwabe, D. Mattos Guimaraes, R. Rossi, G. Pontificia Univ. Catolica do Rio de.
Aspect Mining Eclipse Plug-in Provide the integrated aspect mining environment in the Eclipse IDE. Consists of the following functional components –Flexible.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
A Static Approach to Consistency Verification of UML Models Andrea Baruzzo Department of Computer Science University of Udine MoDeV.
A Distributed Aspect-Oriented System for J2EE Applications Muga Nishizawa and Shigeru Chiba (Tokyo Institute of Technology, Japan) Background - As benefits.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
CCC: An Aspect-Oriented Intermediate Language on.Net Platform Yingfei Xiong and Feng Wan University of Electronic Science and Technology of China, China.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
TTCN-3 MOST Challenges Maria Teodorescu
Virtual Support for Dynamic Join Points C. Bockisch, M. Haupt, M. Mezini, K. Ostermann Presented by Itai Sharon
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer, Progress Sonic.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
Toward a Semantic Anchoring Infrastructure for Domain-Specific Modeling Languages Kai Chen Janos Sztipanovits Sandeep Neema Matthew Emerson Sherif Abdelwahed.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
JUnit in Action SECOND EDITION PETAR TAHCHIEV FELIPE LEME VINCENT MASSOL GARY GREGORY ©2011 by Manning Publications Co. All rights reserved.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Inspections on Testing Aspect-Oriented Programs Rodrigo Manuel Lopes de Matos Moreira 4 th Doctoral Symposium on Informatics Engineering Porto, 6 th February.
What is Wrong with Models?
Extending Model-Driven Engineering in Tango
Chengyu Sun California State University, Los Angeles
Automated Testing and Integration with CI Tool
More Object-Oriented Programming
CS520 Web Programming Spring – Aspect Oriented Programming
Presentation transcript:

Towards a Practical Approach to Testing Pointcut Descriptors With JQuati 1 LA-WASP 2009

By The Authors 2  Sandro Hiroki Tanaka  Emmanuel de Castro Santana  Eduardo Martins Guerra  Clovis Fernandez Torres  Fábio Fagundes Silveira

Agenda 3  Quick Conceptualization  The Problem  Causes  Task  Objectives  Using JQuati  Architecture and Components  Most Related Tools  Conclusion, Limitations and Future Developments  Source Code and Constribution

Testing on Aspect Orientation 4  Aspect Behavior Testing  Does it do what it proposes itself to do ?  Several approaches (data flow-based, machine state- based, petri nets-based, and UML model-based)

Testing on Aspect Orientation 5  Pointcut Descriptor Testing  Is this behavior being executed where and when it should ?  Three kinds of faults: too strong PCD, to weak PCD and both too strong and too weak PCD

The Problem 6  How to offer developers a practical and productive way to write test code to identify faults in pointcut descriptors, in a way to separate PCD testing and aspect behavior testing ?

Some Causes 7  Lack of ways to automatically trigger an advice and identify if a join point has been matched by a PCD.  In a test case that tests aspect behavior, usually it is not possible to conclude that a fault is due to an incorrectness in the PCDs.

Objectives 8  Allow the developer to define expectations regarding the execution of advices in a given test case and then identify faults from checking them against the actual executions.  Provide a intuitive syntax for developers to write test code specifically for PCD testing

Task 9  By using a new tool  Simulate execution contexts, i.e. join points to be matched by a group of PCDs.  Intercept advice executions.  Define and verify expectations related to advice execution given a set o join points.  By using additional metadata to test cases, integrate with existing testing tools

JQuati 10  A simple tool for testing PCDs integrated with jUnit  has it’s own Test Runner which controls the execution of each test case.  Allows the developer to generates classes in runtime using ClassMock for simulating execution contexts simply by adding metadata to the test class.  Allows the developer to define which advices should and which should not be executed in a test case through metadata added to the test method.

The tested Advice public aspect FooBarAspect after() : execution(* *.foo(..)) { after() : execution(* *.bar(..)) { after() : execution(* *.fooBar(..)) { } } The annotation AdviceName should be added to the tested advice

JQuati - Simulating Execution Contexts classNames={“Foo",“Bar”}, methods={ "void foo()", "void bar(Integer)" } public class AspectXTest ClassExecutionContext cec;.... Defining which classes will be used for testing. These classes are created in runtime. The methods will be replicated to all classes on the classNames list. Methods can also receive parameters. JQuati Runner controlling the test cycle Element through which method in the generated classes will be called

JQuati - @MustNotExecute({“interceptFooBar“}) public void shouldNotFooBarButFooAndBar() throws Exception { cec.executeMethodOnAll(“foo"); cec.executeMethodOnAll(“bar“, 0); cec.executeMethodOnClass("Foo", “bar", 0); }.... Expectations are defined by using the annotations MustExecute and MustNotExecute Every call to methods on the created classes should meet the expectations defined for the test method. The developer can make calls to one specific method of one specific Class or in all available Classes. Developers can use BDD naming conventions and better describe their intentions for where aspectual behavior should be inserted into.

JQuati – lets play !! 14

Architecture 15

Most Related Tools 16  AdviceTracer (Delamare et al, 2009)  APTE (Anbalagan e Xie, 2006)  AJTE (Yamazaki et al, 2005)

Contributions 17  A new tool to help developers describe their intentions for better addressing the business rules.  Path to new researches towards developing aspect oriented software with a test driven approach.

Some limitations 18  Triggering of advices not affected by reflection calls. In this case it is still possible to use real stub classes.

Future Developments 19  Improvements in JQuati  Automatic creation of aop-ajc.xml for the tests  Additional features in execution context creation  A way to choose which aspects to be woven in each test case  Ways to make the configuration easier  Additional research on JQuati  Solution of other problems on aspect orientation.  Case studies in industry.

Source Code and Colaboration 20  JQuati under LGPL and GPL  Shared on sourceforge:  Evolution plan  Testing

Thank you all !!! Questions ? 21