Automated Testing of Aspect-Oriented Programs Tao Xie Abstract The behavior of an aspect in aspect-oriented programs (such as AspectJ programs) can be categorized into two types: aspectual behavior (behavior implemented in pieces of advice) and aspectual composition behavior (behavior implemented in pointcuts for composition between base and aspectual behavior). To reduce the manual effort of testing aspects in AspectJ programs, we have developed a framework, called Aspectra, that automates generation of test inputs for testing aspectual behavior. To test aspects, developers construct base classes into which the aspects are woven to form woven classes. Our approach leverages existing test-generation tools to generate test inputs for the woven classes; these test inputs indirectly exercise the aspects. To enable aspects to be exercised during test generation, Aspectra automatically synthesizes appropriate wrapper classes for woven classes. We have also developed another framework called Raspect for detecting redundant tests for aspects. To reduce the manual efforts in testing pointcuts, we have developed another framework that uses mutation testing of pointcuts to define coverage criteria and automates test generation, mutatant generation, and test selection. The selected tests together with the corresponding killed mutants can be inspected by testers for verifying the ponitcut under test. Bio: Tao Xie is an Assistant Professor in the Department of Computer Science at North Carolina State University. He received his Ph.D. in Computer Science from the University of Washington in 2005, advised by David Notkin, an M.S. in Computer Science from Peking University in 2000, advised by Hong Mei, and a B.S. in Computer Science from Fudan University in 1997. His research interests are in software engineering, with an emphasis on automated software testing and verification, mining software engineering data, software security testing and analysis, testing and analysis of aspect-oriented programs, testing and analysis of web services and applications, software evolution, and program comprehension. He has served on program committees of ASE 2006/2007, ISSRE 2006, and AOSD 2007 as well as a number of international conferences and workshops. Besides doing research, he has contributed to understanding the software engineering research community. Home page: http://www.csc.ncsu.edu/faculty/xie/