Detecting Redundant Unit Tests for AspectJ Programs

  • Authors:
  • Tao Xie;Jianjun Zhao;Darko Marinov;David Notkin

  • Affiliations:
  • North Carolina State University, USA;Shanghai Jiao Tong University, China;University of Illinois at Urbana-Champaign, USA;University of Washington, USA

  • Venue:
  • ISSRE '06 Proceedings of the 17th International Symposium on Software Reliability Engineering
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Aspect-oriented software development is gaining popularity with the adoption of languages such as AspectJ. Testing is an important part in any software development, including aspect-oriented development. To automate generation of unit tests for AspectJ programs, we can apply the existing tools that automate generation of unit tests for Java programs. However, these tools can generate a large number of test inputs, and manually inspecting the behavior of the software on all these inputs is time consuming. We propose Raspect, a framework for detecting redundant unit tests for AspectJ programs. We introduce three levels of units in AspectJ programs: advised methods, advice, and intertype methods. We show how to detect at each level redundant tests that do not exercise new behavior. Our approach selects only non-redundant tests from the automatically generated test suites, thus allowing the developer to spend less time in inspecting this reduced set of tests. We have implemented Raspect and applied it on 12 subjects taken from a variety of sources; our experience shows that Raspect can effectively reduce the size of generated test suites for inspecting AspectJ programs.