Detecting Redundant Unit Tests for AspectJ Programs

Size: px
Start display at page:

Download "Detecting Redundant Unit Tests for AspectJ Programs"

Transcription

1 Detecting Redundant Unit Tests for AspectJ Programs Tao Xie 1 Jianjun Zhao 2 Darko Marinov 3 David Notkin 4 1 North Carolina State University 2 Shanghai Jiaotong University 3 University of Illinois at Urbana-Champaign, 4 University of Washington ISSRE 2006 Nov 2006

2 Background Aspect(J): modularization of crosscutting concerns Joinpoint: location of a crosscutting concern Advice: code that should be executed when the executions reach a join point Pointcut: predicate that matches a join point

3 Example class Cell { int data; Cell next; Cell(Cell n, int i) { next = n; data = i; } } public class Stack { Cell head; } public Stack() {head = null;} public boolean push(int i) {...} public int pop() {...} Iterator iterator() {...}

4 Aspect Example I aspect NonNegative { before(stack stack):call(* Stack.*(..)) && target(stack) &&!within(nonnegative) { Iterator it = stack.iterator(); while (it.hasnext()) { int i = it.next(); if (i < 0) throw new RuntimeException("negative"); } } } Check whether stack elements are nonnegative

5 Aspect Example II aspect NonNegativeArg { before() : execution(* Stack.*(..)) {...} Object args[] = thisjoinpoint.getargs(); } for(int i=0; i<args.length; i++) { } if ((args[i] instanceof Integer) && (((Integer)args[i]).intValue() < 0)) System.err.println("Negative argument of " + thisjoinpoint.getsignature().toshortstring()); Check whether method arguments are nonnegative

6 Background (cont.) Aspect weaving (ajc, abc): used to weave aspects with base classes (affected classes) to form woven classes Aspect Class (bytecode) Advice Method (bytecode) Testing Aspect-Oriented Programs Aspectual composition behavior [WTAOP 06, Mutation 06] Aspectual behavior [AOSD 06]

7 Our Previous Aspectra Approach [AOSD 06] Aspect weaving (ajc, abc) Aspect Class (bytecode) Advice Method (bytecode) Straightforward unit testing: feed aspect classes to OO test generation tools based on bytecode Issues: arguments can be thisjoinpoint or AroundClosure objects Aspectra: generate tests for woven classes (i.e., integration testing) but focus on aspectual behavior Feed (wrapper classes) of woven classes to OO test generation tools Base classes == test drivers Leverage existing OO tools for testing AOP programs

8 From Rostra to Raspect OO redundant-test detection and reduction [ASE 04] Traditional OO test generation tools try various method sequence combinations But only distinct inputs to a method under test are needed Safer than traditional structural-coverage test reduction Experimental results showed tests generated by Parasoft Jtest 4.5 contain ~90% redundant tests New Contribution: Raspect - aspect redundant-test detection Only distinct inputs to a piece of advice are needed (for inspection)

9 Example Tests Test 1 (T1): Stack s1 = s1.push(3); s1.push(2); s1.pop(); s1.push(5); Test 2 (T2): Stack s2 = s2.push(3); s2.push(5); Test 3 (T3): Stack s3 = s3.push(3); s3.push(2); s3.pop(); s3.pop(); Each test has a method sequence on the objects of the class.

10 Defining Redundant Tests Test T is redundant w.r.t. the existing tests if T exercises no new method/advice behavior (thus, no new bug) We characterize behavior using input values Difficulties with redundant tests costly to generate, run, and inspect them may provide false confidence

11 Same inputs Same behavior Assumption: deterministic method/advice Input = object + method/advice arguments Method/Advice Execution object + method return Representing object states with rooted heaps

12 Example Tests Object states of s1 head: null Test 1 (T1): Stack s1= s1.push(3); s1.push(2); s1.pop(); s1.push(5); head 3 head 3 2 head 3 head 3 5 Each test has a method sequence on the objects of the class.

13 Example Tests Test 1 (T1): Stack s1= s1.push(3); s1.push(2); s1.pop(); s1.push(5); Object states of s1 head: null head 3 head 3 2 head 3 head 3 5 Method arguments new Stack() push(3) push(2) pop() push(5) Each test has a method sequence on the objects of the class.

14 Example Tests Test 1 (T1): Stack s1 = s1.push(3); s1.push(2); s1.pop(); s1.push(5); Test 2 (T2): Stack s2 = s2.push(3); s2.push(5); Test 3 (T3): Stack s3 = s3.push(3); s3.push(2); s3.pop(); s3.pop(); We remove T2 because T2 is redundant w.r.t. T1 in terms of method execution

15 Inputs for Advice in NonNegative aspect NonNegative { before(stack stack):call(* Stack.*(..)) && target(stack) &&!within(nonnegative) { Iterator it = stack.iterator(); while (it.hasnext()) { int i = it.next(); if (i < 0) throw new RuntimeException("negative"); } } Only Stack object state can affect the advice execution

16 Example Tests Test 1 (T1): Stack s1 = s1.push(3); s1.push(2); s1.pop(); s1.push(5); Test 2 (T2): Stack s2 = s2.push(3); s2.push(5); Test 3 (T3): Stack s3 = s3.push(3); s3.push(2); s3.pop(); s3.pop(); We remove T2 and T3 because T2 and T3 are redundant w.r.t. T1 in terms of Nonnegative advice execution

17 Inputs for Advice in NonNegativeArg aspect NonNegativeArg { before() : execution(* Stack.*(..)) {...} Object args[] = thisjoinpoint.getargs(); } for(int i=0; i<args.length; i++) { } if ((args[i] instanceof Integer) && (((Integer)args[i]).intValue() < 0)) System.err.println("Negative argument of " + thisjoinpoint.getsignature().toshortstring()); Only method argument values + method name/signature can affect the advice execution

18 Example Tests Test 1 (T1): Stack s1 = s1.push(3); s1.push(2); s1.pop(); s1.push(5); Test 2 (T2): Stack s2 = s2.push(3); s2.push(5); Test 3 (T3): Stack s3 = s3.push(3); s3.push(2); s3.pop(); s3.pop(); We remove T2 and T3 because T2 and T3 are redundant w.r.t. T1 in terms of NonNegativeArg advice execution

19 Redundant-Test Detection in AOP Testing Three kinds of units For each affected method (Rostra) woven class class under test affected method method under test For each piece of advice (Raspect) aspect class class under test advice method under test For each intertype method (Raspect) aspect class class under test intertype method method under test

20 Experimental Study Implemented Raspect by modifying Rostra Recognize aspect classes and advice/intertype methods based on naming in bytecode Applied Parasoft Jtest 4.5 on woven classes of 12 AspectJ programs to generate tests Compared three techniques: Rcov technique [Zhou et al. 04] Remove a test if it covers no aspect Rostra technique Raspect technique Hypotheses Raspect can detect a high % of redundant tests % redundant tests of Raspect > Rostra > Rcov

21 Experimental Results Rcov Rostra Raspect High % redundant tests detected by Rostra and Raspect % redundant tests detected by Raspect/Rostra > Rcov

22 Conclusion Redundant tests add cost without any benefit Defined based on method/advice input values Experimental results showed High redundancy among their generated tests Removing them does not decrease aspectual branch coverage (even fault-detection capability shown in Rostra experiments [ASE 04]) Detecting and removing redundant tests before the manual inspection of automatically generated tests

23 Questions?

APTE: Automated Pointcut Testing for AspectJ Programs

APTE: Automated Pointcut Testing for AspectJ Programs APTE: Automated Pointcut Testing for AspectJ Programs Prasanth Anbalagan Department of Computer Science North Carolina State University Raleigh, NC 27695 panbala@ncsu.edu Tao Xie Department of Computer

More information

Automated Software Testing in the Absence of Specifications

Automated Software Testing in the Absence of Specifications Automated Software Testing in the Absence of Specifications Tao Xie North Carolina State University Department of Computer Science Nov 2005 http://www.csc.ncsu.edu/faculty/xie/ Why Automate Testing? Software

More information

Automatic Extraction of Abstract- Object-State Machines Based on Branch Coverage

Automatic Extraction of Abstract- Object-State Machines Based on Branch Coverage Automatic Extraction of Abstract- Object-State Machines Based on Branch Coverage Hai YUAN Tao XIE Department of Computer Science North Carolina State University hyuan3@ncsu.edu xie@csc.ncsu.edu Agenda

More information

Automated Test-Input Generation

Automated Test-Input Generation Automated Test-Input Generation Tao Xie North Carolina State University Department of Computer Science Nov 2005 http://www.csc.ncsu.edu/faculty/xie/ Why Automate Testing? Software testing is important

More information

Evolving Testing and Analysis for Evolving Software Tao Xie Peking University ( ), China North Carolina State University Raleigh, NC, USA

Evolving Testing and Analysis for Evolving Software Tao Xie Peking University ( ), China North Carolina State University Raleigh, NC, USA Evolving Testing and Analysis for Evolving Software Tao Xie Peking University (2011-2012), China North Carolina State University Raleigh, NC, USA In Collaboration with Microsoft Research Redmond/Asia,

More information

A Novel Approach to Unit Testing: The Aspect-Oriented Way

A Novel Approach to Unit Testing: The Aspect-Oriented Way A Novel Approach to Unit Testing: The Aspect-Oriented Way Guoqing Xu and Zongyuan Yang Software Engineering Lab, Department of Computer Science East China Normal University 3663, North Zhongshan Rd., Shanghai

More information

Automatic Extraction of Abstract-Object-State Machines Based on Branch Coverage

Automatic Extraction of Abstract-Object-State Machines Based on Branch Coverage Automatic Extraction of Abstract-Object-State Machines Based on Branch Coverage Hai Yuan Department of Computer Science North Carolina State University Raleigh, NC 27695 hyuan3@ncsu.edu Tao Xie Department

More information

Testing Aspect-Oriented Software

Testing Aspect-Oriented Software Project Report Testing Aspect-Oriented Software Fayezin Islam MSc in Advanced Software Engineering 2006/2007 School of Physical Sciences and Engineering King s College London Supervised by Professor Mark

More information

Efficient Mutant Generation for Mutation Testing of Pointcuts in Aspect-Oriented Programs

Efficient Mutant Generation for Mutation Testing of Pointcuts in Aspect-Oriented Programs Efficient Mutant Generation for Mutation Testing of Pointcuts in Aspect-Oriented Programs Prasanth Anbalagan 1 Tao Xie 2 Department of Computer Science, North Carolina State University, Raleigh, NC 27695,

More information

Automatically Identifying Special and Common Unit Tests for Object-Oriented Programs

Automatically Identifying Special and Common Unit Tests for Object-Oriented Programs Automatically Identifying Special and Common Unit Tests for Object-Oriented Programs Tao Xie North Carolina State University Raleigh, NC David Notkin University of Washington Seattle, WA Automated Testing

More information

Mutually Enhancing Test Generation and Specification Inference

Mutually Enhancing Test Generation and Specification Inference Mutually Enhancing Test Generation and Specification Inference Tao Xie David Notkin Department of Computer Science & Engineering University of Washington August 15th, 2003 Foundations of Software Engineering,

More information

An Empirical Comparison of Automated Generation and Classification Techniques for Object-Oriented Unit Testing

An Empirical Comparison of Automated Generation and Classification Techniques for Object-Oriented Unit Testing An Empirical Comparison of Automated Generation and Classification Techniques for Object-Oriented Unit Testing Marcelo d Amorim (UIUC) Carlos Pacheco (MIT) Tao Xie (NCSU) Darko Marinov (UIUC) Michael D.

More information

Around Weaving in abc

Around Weaving in abc Around Weaving in abc Objectives Avoid heap allocations Inlining not as the general strategy to avoid code duplication Keep code in original classes to avoid visibility problems The starting point Around

More information

Achievements and Challenges

Achievements and Challenges Improving Automation in Developer Testing: Achievements and Challenges Tao Xie Department of Computer Science North Carolina State University http://ase.csc.ncsu.edu/ An up-to-date version of the slides

More information

InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse

InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse Arjan Seesing and Alessandro Orso College of Computing Georgia Institute of Technology a.c.seesing@ewi.tudelft.nl,

More information

Language Oriented Modularity: From Theory to Practice

Language Oriented Modularity: From Theory to Practice Language Oriented Modularity: From Theory to Practice Arik Hadas Dept. of Mathematics and Computer Science The Open University of Israel Joint Work With: David H. Lorenz Language Oriented Modularity (LOM)

More information

Towards Regression Test Selection for AspectJ Programs

Towards Regression Test Selection for AspectJ Programs Towards Regression Test Selection for AspectJ Programs Jianjun Zhao Department of Computer Science and Engineering Shanghai Jiao Tong University 800 Dongchuan Road, Shanghai 200240, China zhao-jj@cs.sjtu.edu.cn

More information

Analysis and Research on the Automated Generation of Unit Test

Analysis and Research on the Automated Generation of Unit Test 1+, 1 1, 1 (, 200062) Analysis and Research on the Automated Generation of Unit Test XU Guo-qing 1+, YANG Zong-yuan 1, HUANG Hai-tao 1 1 (Software Engineering Lab, Department of Computer Science, East

More information

Mutant Generation for Aspect Oriented Programs

Mutant Generation for Aspect Oriented Programs Mutant Generation for Aspect Oriented Programs MAYANK SINGH* Research Scholar Uttarakhand Technical University, Dehradun, India mayanksingh2005@gmail.com SHAILENDRA MISHRA Professor computer science department

More information

Using and Extending AspectJ for Separating Concerns in Parallel Java Code

Using and Extending AspectJ for Separating Concerns in Parallel Java Code Using and Extending AspectJ for Separating Concerns in Parallel Java Code Bruno Harbulot and John Gurd The University of Manchester POOSC 2005 Glasgow, July 2005 1/26 Presentation Outline Problem and Approach

More information

A Classification System and Analysis for Aspect-Oriented Programs

A Classification System and Analysis for Aspect-Oriented Programs A Classiication System and Analysis or Aspect-Oriented Programs Martin Rinard, Alexandru Sălcianu, and Suhabe Bugrara Massachusetts Institute o Technology Cambridge, MA 02139 ABSTRACT We present a new

More information

Copyright IBM Corporation 2004.All rights reserved.

Copyright IBM Corporation 2004.All rights reserved. Copyright IBM Corporation 2004.All rights reserved. http://www-106.ibm.com/developerworks/rational/library/2782.html Search help A look at aspect-oriented programming Gary Pollice Worcester Polytechnic

More information

Unit-Testing Aspectual Behavior

Unit-Testing Aspectual Behavior Unit-Testing Aspectual Behavior [Position Paper] Cristina Videira Lopes and Trung Chi Ngo Donald Bren School of Information and Computer Sciences University of California, Irvine Irvine, CA 92697 {lopes,trungcn}@ics.uci.edu

More information

Using Aspect-Oriented Programming to extend Protégé. Henrik Eriksson Linköping University

Using Aspect-Oriented Programming to extend Protégé. Henrik Eriksson Linköping University Using Aspect-Oriented Programming to extend Protégé Henrik Eriksson Linköping University Questions about MOP and Protégé Original goal: Extending the JessTab plug-in What is the class precedence in Protégé?

More information

Bugdel: An Aspect-Oriented Debugging System

Bugdel: An Aspect-Oriented Debugging System Bugdel: An Aspect-Oriented Debugging System Yoshiyuki Usui and Shigeru Chiba Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology 2-12-1-W8-50 Ohkayama, Meguro-ku Tokyo 152-8552,

More information

XFindBugs: extended FindBugs for AspectJ

XFindBugs: extended FindBugs for AspectJ XFindBugs: extended FindBugs for AspectJ Haihao Shen, Sai Zhang, Jianjun Zhao, Jianhong Fang, Shiyuan Yao Software Theory and Practice Group (STAP) Shanghai Jiao Tong University, China A code Is there

More information

JML and Aspects: The Benefits of

JML and Aspects: The Benefits of JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ Henrique Rebêlo Sérgio Soares Ricardo Lima Paulo Borba Márcio Cornélio Java Modeling Language Formal specification language for

More information

Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs

Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs Prasanth Anbalagan Tao Xie Department of Computer Science, North Carolina State University, NC 27695, USA panbala@ncsu.edu

More information

Aspect-Oriented Programming and AspectJ

Aspect-Oriented Programming and AspectJ What is Aspect-Oriented Programming? Many possible answers: a fad Aspect-Oriented Programming and AspectJ Aspect-oriented programming is a common buzzword lately Papers from ECOOP 1997 (early overview

More information

Chapter 32. Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1

Chapter 32. Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1 Chapter 32 Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1 Objectives To explain the principle of separation of concerns in software development

More information

Aspect Oriented Programming

Aspect Oriented Programming 1 Aspect Oriented Programming Programming Languages Seminar Presenter: Barış Aktemur University of Illinois 18 Feb. 2004 Mostly taken from Bedir Tekinerdogan s slides Outline Introduction Problems Terminology

More information

Rostra: A Framework for Detecting Redundant Object-Oriented Unit Tests

Rostra: A Framework for Detecting Redundant Object-Oriented Unit Tests Appears in Proceedings of the 19th IEEE International Conference on Automated Software Engineering (ASE 2004), Linz, Austria. Rostra: A Framework for Detecting Redundant Object-Oriented Unit Tests Tao

More information

A Unit Testing Framework for Aspects without Weaving

A Unit Testing Framework for Aspects without Weaving A Unit Testing Framework for Aspects without Weaving Yudai Yamazaki l01104@sic.shibaura-it.ac.jp Kouhei Sakurai sakurai@komiya.ise.shibaura-it.ac.jp Saeko Matsuura matsuura@se.shibaura-it.ac.jp Hidehiko

More information

An Aspect-Oriented Approach. Henrique Rebêlo Informatics Center

An Aspect-Oriented Approach. Henrique Rebêlo Informatics Center An Aspect-Oriented Approach to implement JML Features Henrique Rebêlo Informatics Center Federal University of Pernambuco Summary jmlc problems bigger code, slower code, no suppport for Java ME, and bad

More information

Introduction to. Bruno Harbulot. ESNW, the University of Manchester.

Introduction to. Bruno Harbulot. ESNW, the University of Manchester. Introduction to Aspect-Oriented Software Development Bruno Harbulot ESNW, the University of Manchester http://www.cs.man.ac.uk/~harbulob/ ELF Developers' Forum Manchester - October 2005 1/24 Presentation

More information

Course 6 7 November Adrian Iftene

Course 6 7 November Adrian Iftene Course 6 7 November 2016 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 5 BPMN AOP AOP Cross cutting concerns pointcuts advice AspectJ Examples In C#: NKalore 2 BPMN Elements Examples AOP

More information

Tao Xie. Nikolai i Tillmann, Peli de Halleux, Wolfram Schulte hlt. North Carolina State University. Microsoft Research

Tao Xie. Nikolai i Tillmann, Peli de Halleux, Wolfram Schulte hlt. North Carolina State University. Microsoft Research Tao Xie North Carolina State University Nikolai i Tillmann, Peli de Halleux, Wolfram Schulte hlt Microsoft Research Unit Testing Parameterized Unit Testing (PUT) Mutation Analysis for PUT public class

More information

Aspect-Oriented Programming and Aspect-J

Aspect-Oriented Programming and Aspect-J Aspect-Oriented Programming and Aspect-J TDDD05 Ola Leifer Most slides courtesy of Jens Gustafsson and Mikhail Chalabine Outline: Aspect-Oriented Programming New concepts introduced Crosscutting concern

More information

Take Control with AspectJ

Take Control with AspectJ Hermod Opstvedt Chief Architect DnB NOR ITUD Common components Hermod Opstvedt Slide 1 What is AspectJ? Aspect-oriented programming (AOP) is a technique for improving separation of concerns. Crosscutting

More information

Identification of Differences Between Aspect-Oriented Programs. Marija Katic, PhD Student

Identification of Differences Between Aspect-Oriented Programs. Marija Katic, PhD Student Identification of Differences Between Aspect-Oriented Programs Marija Katic, PhD Student University of Zagreb, Faculty of Electrical Engineering and Computing Department of Applied Computing Content Aspect-Oriented

More information

Optimizing AspectJ with abc

Optimizing AspectJ with abc Optimizing AspectJ with abc McGill Oxford Aarhus Laurie Hendren Oege de Moor Aske Simon Jennifer Lhoták Pavel Avgustinov Christensen Ondřej Lhoták Sascha Kuzins Chris Goard Damien Sereni Clark Verbrugge

More information

A short introduction to INF329. Spring AOP

A short introduction to INF329. Spring AOP A short introduction to INF329 Spring AOP Introduction to AOP AOP is an abbreviation for aspectoriented programming Aspect-oriented programming is a new paradigm in programming, seperating functionality

More information

Analyzing Exception Flows of Aspect-Oriented Programs *

Analyzing Exception Flows of Aspect-Oriented Programs * Analyzing Exception Flows of Aspect-Oriented Programs * Roberta Coelho 1, Arndt von Staa 1 (PhD supervisor), Awais Rashid 2 (PhD co-supervisor) 1 Computer Science Department, PUC-Rio, Brazil 2 Computing

More information

An Introduction To Software Agitation

An Introduction To Software Agitation An Introduction To Software Agitation Alberto Savoia Chief Technology Officer Agitar Software Inc. www.agitar.com java.sun.com/javaone/sf Agenda The Developer Testing Revolution Four Types of Tests Software

More information

What is AOP? Business Logic Requirements Concern Identifier Security Logging (Laddad, 2003, p. 9) What is AOP? Non-AOP implementation of crosscutting

What is AOP? Business Logic Requirements Concern Identifier Security Logging (Laddad, 2003, p. 9) What is AOP? Non-AOP implementation of crosscutting Aspect Oriented Programming Todd A. Whittaker Franklin University whittakt@franklin.edu What is AOP? Addresses crosscutting concerns Requirements analysis leads to identification of concerns in a software

More information

Optimized Compilation of Around Advice for Aspect Oriented Programs

Optimized Compilation of Around Advice for Aspect Oriented Programs Journal of Universal Computer Science, vol. 13, no. 6 (2007), 753-766 submitted: 19/1/07, accepted: 22/3/07, appeared: 28/6/07 J.UCS Optimized Compilation of Around Advice for Aspect Oriented Programs

More information

So, What is an Aspect?

So, What is an Aspect? Introduction to AspectJ Aspect-oriented paradigm AspectJ constructs Types of Join Points Primitive Lexical designators Type designators Control flow Types of Advice Before After Around Receptions Join

More information

Exploiting Synergy Between Testing and Inferred Partial Specifications

Exploiting Synergy Between Testing and Inferred Partial Specifications Exploiting Synergy Between Testing and Inferred Partial Specifications Tao Xie David Notkin Department of Computer Science & Engineering, University of Washington {taoxie, notkin}@cs.washington.edu Technical

More information

AOP 101: Intro to Aspect Oriented Programming. Ernest Hill

AOP 101: Intro to Aspect Oriented Programming. Ernest Hill AOP 101: Intro to Aspect Oriented Programming ernesthill@earthlink.net AOP 101-1 AOP 101: Aspect Oriented Programming Goal of Software History of Programming Methodology Remaining Problem AOP to the Rescue

More information

Chapter 21 Aspect-Oriented Software Engineering (AOSE)

Chapter 21 Aspect-Oriented Software Engineering (AOSE) Chapter 21 Aspect-Oriented Software Engineering (AOSE) Chapter 21 Aspect-Oriented Software Engineering Slide 1 Topics covered Introduction and motivation The separation of concerns Core vs. cross-cutting

More information

Information systems modeling. Tomasz Kubik

Information systems modeling. Tomasz Kubik Information systems modeling Tomasz Kubik Aspect-oriented programming, AOP Systems are composed of several components, each responsible for a specific piece of functionality. But often these components

More information

Chapitre 6 Programmation orientée aspect (AOP)

Chapitre 6 Programmation orientée aspect (AOP) 6 Programmation orientée aspect (AOP) 2I1AC3 : Génie logiciel et Patrons de conception Régis Clouard, ENSICAEN - GREYC «L'homme est le meilleur ordinateur que l'on puisse embarquer dans un engin spatial...

More information

VOL. 3, NO. 1, January 2013 ISSN ARPN Journal of Systems and Software AJSS Journal. All rights reserved

VOL. 3, NO. 1, January 2013 ISSN ARPN Journal of Systems and Software AJSS Journal. All rights reserved Model-Based Testing for Contractual Software using Aspects 1 Bouchaib Falah, 2 Farah Boukfal, 3 Basma Iraqi 1 Assistant Professor, School of Science and Engineering, Al Akhawayn University in Ifrane, Ifrane,

More information

SCALA AND ASPECTJ. Approaching Modularizing of Crosscutting. Ramnivas Laddad. Concerns. ramnivas

SCALA AND ASPECTJ. Approaching Modularizing of Crosscutting. Ramnivas Laddad. Concerns. ramnivas SCALA AND ASPECTJ Approaching Modularizing of Crosscutting Concerns Ramnivas Laddad ramnivas ramnivas!com @ramnivas Copyright Ramnivas Laddad. All rights reserved. @ramnivas Spring framework committer

More information

Largest Online Community of VU Students

Largest Online Community of VU Students WWW.VUPages.com http://forum.vupages.com WWW.VUTUBE.EDU.PK Largest Online Community of VU Students MIDTERM EXAMINATION SEMESTER FALL 2003 CS301-DATA STRUCTURE Total Marks:86 Duration: 60min Instructions

More information

Mining Operational Preconditions. Andrzej Wasylkowski Andreas Zeller Saarland University

Mining Operational Preconditions. Andrzej Wasylkowski Andreas Zeller Saarland University Mining Operational Preconditions Andrzej Wasylkowski Andreas Zeller Saarland University @interface A {} bug.aj aspect Test { declare @field : @A int var* : @A; declare @field : int var* : @A; interface

More information

CIS Fall Data Structures Midterm exam 10/16/2012

CIS Fall Data Structures Midterm exam 10/16/2012 CIS 2168 2012 Fall Data Structures Midterm exam 10/16/2012 Name: Problem 1 (30 points) 1. Suppose we have an array implementation of the stack class, with ten items in the stack stored at data[0] through

More information

LogicAJ The Power of Uniformly Generic Aspects

LogicAJ The Power of Uniformly Generic Aspects LogicAJ The Power of Uniformly Generic Aspects Tobias Rho Günter Kniesel ROOTS group Computer Science Department III University of Bonn Germany {rho, gk@cs.uni-bonn.de Adressed Problem: Context dependent

More information

An Approach for Testing Pointcut Descriptors in AspectJ

An Approach for Testing Pointcut Descriptors in AspectJ An Approach for Testing Pointcut Descriptors in AspectJ Romain Delamare, Benoit Baudry, Sudipto Ghosh, Shashank Gupta, Yves Le Traon To cite this version: Romain Delamare, Benoit Baudry, Sudipto Ghosh,

More information

Introduction to Aspect Oriented Programming and Aspect Matlab. AspectMatlab 1 / 30

Introduction to Aspect Oriented Programming and Aspect Matlab. AspectMatlab 1 / 30 Introduction to Aspect Oriented Programming and Aspect Matlab AspectMatlab 1 / 30 Motivation for Aspect Oriented Programming void transfer (Account from, Account to, int amount, User user, Logger logger)

More information

Efficient Solving of Structural Constraints

Efficient Solving of Structural Constraints Efficient Solving of Structural Constraints Bassem Elkarablieh University of Texas at Austin Austin, TX 78712 elkarabl@ece.utexas.edu Darko Marinov University of Illinois at Urbana Urbana, IL 61801 marinov@cs.uiuc.edu

More information

Mobile and Context-aware Interactive Systems

Mobile and Context-aware Interactive Systems Mobile and Context-aware Interactive Systems Gaëlle Calvary Grenoble INP Laboratoire d Informatique de Grenoble (LIG) Core concepts Principles Terminology For more information, see Sara Bouchenak s M1

More information

Advice Weaving in AspectJ

Advice Weaving in AspectJ Erik Hilsdale PARC 3333 Coyote Hill Rd Palo Alto, CA 94085 +1 650 812 4735 hilsdale@parc.com Advice Weaving in AspectJ Jim Hugunin Want of a Nail Software Sunnyvale, CA +1 650 812 4735 jim-aj@hugunin.net

More information

CSCE 2014 Final Exam Spring Version A

CSCE 2014 Final Exam Spring Version A CSCE 2014 Final Exam Spring 2017 Version A Student Name: Student UAID: Instructions: This is a two-hour exam. Students are allowed one 8.5 by 11 page of study notes. Calculators, cell phones and computers

More information

Aspect-Oriented Programming with C++ and AspectC++

Aspect-Oriented Programming with C++ and AspectC++ Aspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial University of Erlangen-Nuremberg Computer Science 4 Presenters Daniel Lohmann dl@aspectc.org University of Erlangen-Nuremberg, Germany

More information

AJDT: Getting started with Aspect-Oriented Programming in Eclipse

AJDT: Getting started with Aspect-Oriented Programming in Eclipse AJDT: Getting started with Aspect-Oriented Programming in Eclipse Matt Chapman IBM Java Technology Hursley, UK AJDT Committer Andy Clement IBM Java Technology Hursley, UK AJDT & AspectJ Committer Mik Kersten

More information

Dynamic Weaving for Building Reconfigurable Software Systems

Dynamic Weaving for Building Reconfigurable Software Systems Dynamic Weaving for Building Reconfigurable Software Systems JAGDISH LAKHANI lakhjag@iitedu Computer Science Dept Illinois Institute of Technology Chicago, IL 60616 FAISAL AKKAWI akkawif@iitedu Computer

More information

Programming Language Concepts: Lecture 1

Programming Language Concepts: Lecture 1 Programming Language Concepts: Lecture 1 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan/courses/pl2009 PLC 2009, Lecture 1, 12 January 2009 Data and datatypes

More information

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming Based on the Example of AspectJ Prof. Harald Gall University of Zurich, Switzerland software evolution & architecture lab AOP is kind of a complicated one for me ( ) the idea

More information

A State-Based Approach to Testing Aspect-Oriented Programs

A State-Based Approach to Testing Aspect-Oriented Programs A State-Based Approach to Testing Aspect-Oriented Programs Dianxiang Xu, Weifeng Xu, and Kendall Nygard Department of Computer Science North Dakota State University Fargo, ND 58105, USA {dianxiang.xu,

More information

ECE 242 Fall 13 Exam I Profs. Wolf and Tessier

ECE 242 Fall 13 Exam I Profs. Wolf and Tessier ECE 242 Fall 13 Exam I Profs. Wolf and Tessier Name: ID Number: Maximum Achieved Question 1 16 Question 2 24 Question 3 18 Question 4 18 Question 5 24 Total 100 This exam is closed book, closed notes.

More information

The abc Group. Optimising AspectJ. abc Technical Report No. abc BRICS. United Kingdom Denmark Montreal, Canada.

The abc Group. Optimising AspectJ. abc Technical Report No. abc BRICS. United Kingdom Denmark Montreal, Canada. The abc Group Optimising AspectJ abc Technical Report No. abc-2004-3 Pavel Avgustinov 1, Aske Simon Christensen 2, Laurie Hendren 3, Sascha Kuzins 1, Jennifer Lhoták 3, Ondřej Lhoták 3, Oege de Moor 1,

More information

Automatic Test Suite Amplification for DevOps

Automatic Test Suite Amplification for DevOps Automatic Test Suite Amplification for DevOps Benoit Baudry KTH, Sweden 1 DevOps 2 DevOps: Automatic software engineering unit perf. UI fuzzing dep. inj. IDEs libraries container CI app Integration logging

More information

CS 211: Methods, Memory, Equality

CS 211: Methods, Memory, Equality CS 211: Methods, Memory, Equality Chris Kauffman Week 2-1 So far... Comments Statements/Expressions Variable Types little types, what about Big types? Assignment Basic Output (Input?) Conditionals (if-else)

More information

Fault, Error, and Failure

Fault, Error, and Failure Fault, Error, and Failure Testing, Quality Assurance, and Maintenance Winter 2018 Prof. Arie Gurfinkel based on slides by Prof. Lin Tan and others Terminology, IEEE 610.12-1990 Fault -- often referred

More information

CS313D: ADVANCED PROGRAMMING LANGUAGE

CS313D: ADVANCED PROGRAMMING LANGUAGE CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science Department Lecture 3: C# language basics Lecture Contents 2 C# basics Conditions Loops Methods Arrays Dr. Amal Khalifa, Spr 2015 3 Conditions and

More information

Flexible Calling Context Reification for Aspect-Oriented Programming

Flexible Calling Context Reification for Aspect-Oriented Programming Flexible Calling Context Reification for Aspect-Oriented Programming Alex Villazón Faculty of Informatics University of Lugano Switzerland alex.villazon@lu.unisi.ch Walter Binder Faculty of Informatics

More information

INFO1x05 Tutorial 6. Exercise 1: Heaps and Priority Queues

INFO1x05 Tutorial 6. Exercise 1: Heaps and Priority Queues INFO1x05 Tutorial 6 Heaps and Priority Queues Exercise 1: 1. How long would it take to remove the log n smallest elements from a heap that contains n entries, using the operation? 2. Suppose you label

More information

A Type System for Functional Traversal-Based Aspects

A Type System for Functional Traversal-Based Aspects A Type System for Functional Traversal-Based Aspects Bryan Chadwick and Karl Lieberherr March 2 nd 2009 1 / 30 Outline Introduction Example (Pure) Semantics Example (Full Dispatch) Type System Soundness

More information

A Model for Software Plans

A Model for Software Plans A Model for Software Plans Robert R. Painter and David Coppit Department of Computer Science The College of William and Mary private static Vector readdata() { BufferedReader stdin = new BufferedReader(

More information

Inner Oracles: Input- Specific Assertions on Internal States

Inner Oracles: Input- Specific Assertions on Internal States Inner Oracles: Input- Specific Assertions on Internal States Yingfei Xiong, Dan Hao, Lu Zhang, Tao Zhu, Muyao Zhu, Tian Lan Peking University, China 2015 How a Test Detects a Bug Test Input Trigger a Bug

More information

We would like guidance on how to write our programs beyond simply knowing correlations between inputs and outputs.

We would like guidance on how to write our programs beyond simply knowing correlations between inputs and outputs. Chapter 3 Correctness One of the most appealing aspects of computer programs is that they have a close connection to mathematics, in particular, logic. We use these connections implicitly every day when

More information

Use Case Level Pointcuts ECOOP 2004 Jonathan Sillito, Christopher Dutchyn, Andrew David Eisenberg and Kris De Volder

Use Case Level Pointcuts ECOOP 2004 Jonathan Sillito, Christopher Dutchyn, Andrew David Eisenberg and Kris De Volder Use Case Level Pointcuts ECOOP 2004 Jonathan Sillito, Christopher Dutchyn, Andrew David Eisenberg and Kris De Volder Software Practices Lab THE UNIVERSITY OF BRITISH COLUMBIA My talk is based on some work

More information

An Advice for Advice Composition in AspectJ

An Advice for Advice Composition in AspectJ An Advice for Advice Composition in AspectJ Fuminobu Takeyama Shigeru Chiba Tokyo Institute of Technology, Japan 2010/07/01 Fuminobu Takeyama, Shigeru Chiba, An Advice for Advice Composition in AspectJ,

More information

Designing Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs)

Designing Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs) Designing Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs) Bahram Zarrin Master Student Bahram.zarrin@gmail.com Rodziah Atan Doctor rodziah@fsktm.upm.edu.my Muhammad Taufik Abdullah

More information

Tool-Assisted Unit Test Selection Based on Operational Violations

Tool-Assisted Unit Test Selection Based on Operational Violations Nominated for the best paper award at ASE 2003. Appears in Proceedings of the 18th IEEE International Conference on Automated Software Engineering (ASE 2003) An extended version is invited for submission

More information

Homework 5: Aspect-Oriented Programming and AspectJ

Homework 5: Aspect-Oriented Programming and AspectJ Com S 541 Programming Languages 1 November 30, 2005 Homework 5: Aspect-Oriented Programming and AspectJ Due: Tuesday, December 6, 2005. This homework should all be done individually. Its purpose is to

More information

Software Testing CS 408. Lecture 6: Dynamic Symbolic Execution and Concolic Testing 1/30/18

Software Testing CS 408. Lecture 6: Dynamic Symbolic Execution and Concolic Testing 1/30/18 Software Testing CS 408 Lecture 6: Dynamic Symbolic Execution and Concolic Testing 1/30/18 Relevant Papers CUTE: A Concolic Unit Testing Engine for C Koushik Sen, Darko Marinov, Gul Agha Department of

More information

Path Testing + Coverage. Chapter 8

Path Testing + Coverage. Chapter 8 Path Testing + Coverage Chapter 8 Structural Testing n Also known as glass/white/open box testing n A software testing technique whereby explicit knowledge of the internal workings of the item being tested

More information

An Introduction to Systematic Software Testing. Robert France CSU

An Introduction to Systematic Software Testing. Robert France CSU An Introduction to Systematic Software Testing Robert France CSU Why do we need to systematically test software? Poor quality products can Inconvenience direct and indirect users Result in severe financial

More information

State Extensions for Java PathFinder

State Extensions for Java PathFinder State Extensions for Java PathFinder Darko Marinov University of Illinois at Urbana-Champaign JPF Workshop May 1, 2008 Broader Context: Work on JPF at UIUC Two lines of work Extend functionality Improve

More information

Applying Aspect Oriented Programming on Security

Applying Aspect Oriented Programming on Security Original Article Applying Aspect Oriented Programming on Security Mohammad Khalid Pandit* 1, Azra Nazir 1 and Arutselvan M 2 1 Department of computer Science and engineering, National institute of technology

More information

Data Structures and Algorithms, Winter term 2018 Practice Assignment 3

Data Structures and Algorithms, Winter term 2018 Practice Assignment 3 German University in Cairo Media Engineering and Technology Prof. Dr. Slim Abdennadher Dr. Wael Abouelsaadat Data Structures and Algorithms, Winter term 2018 Practice Assignment 3 Exercise 3-1 Search in

More information

2/6/2018. ECE 220: Computer Systems & Programming. Function Signature Needed to Call Function. Signature Include Name and Types for Inputs and Outputs

2/6/2018. ECE 220: Computer Systems & Programming. Function Signature Needed to Call Function. Signature Include Name and Types for Inputs and Outputs University of Illinois at Urbana-Champaign Dept. of Electrical and Computer Engineering ECE 220: Computer Systems & Programming C Functions and Examples Signature Include Name and Types for Inputs and

More information

Automatic Identification of Common and Special Object-Oriented Unit Tests

Automatic Identification of Common and Special Object-Oriented Unit Tests Automatic Identification of Common and Special Object-Oriented Unit Tests Tao Xie taoxie@cs.washington.edu ACM Member Number: CR80884 Advisor: David Notkin Department of Computer Science & Engineering

More information

Flota: A Programmer Assistant for Locating Faulty Changes in AspectJ Software Evolution

Flota: A Programmer Assistant for Locating Faulty Changes in AspectJ Software Evolution Flota: A Programmer Assistant for Locating Faulty Changes in AspectJ Software Evolution Sai Zhang, Zhongxian Gu, Yu Lin, Jianjun Zhao School of Software Shanghai Jiao Tong University 800 Dongchuan Road,

More information

An Investigation of Modular Dependencies in Aspects, Features and Classes

An Investigation of Modular Dependencies in Aspects, Features and Classes An Investigation of Modular Dependencies in Aspects, Features and Classes By Shoushen Yang A Thesis Submitted to the Faculty of the WORCESTER POLYTECHNIC INSTITUTE in partial fulfillment of the requirements

More information

Fundamentals of Concern Manipulation

Fundamentals of Concern Manipulation Fundamentals of Concern Manipulation Harold Ossher IBM T. J. Watson Research Center The CME Team (IBM Hursley Park and IBM Watson) William Chung, Andrew Clement, Matthew Chapman, William Harrison, Helen

More information

Programming Languages

Programming Languages TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Programming Languages Aspect Oriented Programming Dr. Michael Petter Winter 2017/18 Aspect Oriented Programming 1 / 34 Is modularity the key principle

More information

Aspect Oriented Programming with AspectJ. Ted Leung Sauria Associates, LLC

Aspect Oriented Programming with AspectJ. Ted Leung Sauria Associates, LLC Aspect Oriented Programming with AspectJ Ted Leung Sauria Associates, LLC twl@sauria.com Overview Why do we need AOP? What is AOP AspectJ Why do we need AOP? Modular designs are not cut and dried Responsibilities

More information