University of Helsinki Department of Computer Science

Department of Computer Science

Department information


ASTA - Aspect Software Testing Assistant

Most software systems offer services whose implementation cannot easily be modularized into a single class or package. Such services can be related to system wide functionality (e.g. logging) or global quality requirements (e.g. security). If there are many of these cross-cutting concerns in a system they can clutter the system's basic architecture.

In aspect-oriented software development, the cross-cutting concerns are defined separately from the system's core concern (e.g. the domain model). Typically the core concern is modeled in the system's main class hierarchy and the cross-cutting concerns are given separately as aspects using an aspect-oriented programming language. The aspect programming environment usually includes a weaver that automatically binds the aspect code (defined as method-like structures called advice) together with the main classes according to the pointcut designators (i.e. patterns that select certain elements that appear in the methods of the main classes) defined in the aspects.

Aspect-orientation with its support for clear separation of concerns promotes the modularity, understandability, and maintainability of software systems. For instance, the automatic weaving makes it possible to add a new aspect (e.g. a new logging mechanism) to an existing system without any modifications to its core classes. However, aspect-orientation also brings along new challenges for software engineering. Especially testing of aspect software is more complicated than that of traditional object-oriented software. The typical questions related to testing, such as do we test what we intend to test and when should we stop testing, become more difficult to answer in the presence of aspects because the execution context of an aspect depends on the (internal implementation of the) class it is woven to. Also relating a failure to the fault that causes it is difficult since the control and data flows are not explicit and even modifying the aspect weave order can cause changes in the system's overall behavior.

The aim of the ASTA project is to develop tools and methodology to facilitate systematic testing of aspect-oriented software. The project builds on the results of the previous RITA project that developed an environment for testing framework-based software product lines. ASTA is a project of the ROOSA group.

Links and material

Project group members