Flota: A programmer assistant for locating faulty changes in AspectJ software evolution

Sai Zhang, Zhongxian Gu, Yu Lin, Jianjun Zhao

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

As Aspect-Oriented Programming (AOP) wins more and more popularity, there is increasing interest in using aspects to implement crosscutting concerns in object-oriented software. During software evolution, source code editing and testing are interleaved activities to assure code quality. If regression tests fail unexpectedly after a long session of editing, it may be difficult for programmers to find out the failure causes. In this paper, we present Flota, a fault localization tool for AspectJ programs. When a regression test fails unexpectedly after a session of source changes, Flota first decomposes the differences between two program versions into a set of atomic changes, and then identifies a subset of affecting changes which is responsible for the failure. Programmers are allowed to select (and apply) suspected changes to the original program, constructing compliable intermediate versions. Thus, programmers can re-execute the failed test against these intermediate program versions to locate the exact faulty changes by iteratively selecting, applying and narrowing down the set of affecting changes. Flota is implemented on top of the ajc compiler and designed as an eclipse plugin. Our preliminary empirical study shows that Flota can assist programmers effectively to find a small set of faulty changes and provide valuable debugging support.

Original languageEnglish
Title of host publicationProceedings of the 4th Linking Aspect Technology and Evolution Workshop, LATE'08 - held at the 7th International Conference on Aspect-Oriented Software Development
DOIs
Publication statusPublished - Dec 1 2008
Event4th Linking Aspect Technology and Evolution Workshop, LATE'08 - Held at the 7th International Conference on Aspect-Oriented Software Development, AOSD 2008 - Brussels, Belgium
Duration: Mar 31 2008Apr 4 2008

Publication series

NameProceedings of the 4th Linking Aspect Technology and Evolution Workshop, LATE'08 - held at the 7th International Conference on Aspect-Oriented Software Development

Other

Other4th Linking Aspect Technology and Evolution Workshop, LATE'08 - Held at the 7th International Conference on Aspect-Oriented Software Development, AOSD 2008
CountryBelgium
CityBrussels
Period3/31/084/4/08

    Fingerprint

All Science Journal Classification (ASJC) codes

  • Computational Theory and Mathematics
  • Software

Cite this

Zhang, S., Gu, Z., Lin, Y., & Zhao, J. (2008). Flota: A programmer assistant for locating faulty changes in AspectJ software evolution. In Proceedings of the 4th Linking Aspect Technology and Evolution Workshop, LATE'08 - held at the 7th International Conference on Aspect-Oriented Software Development [6] (Proceedings of the 4th Linking Aspect Technology and Evolution Workshop, LATE'08 - held at the 7th International Conference on Aspect-Oriented Software Development). https://doi.org/10.1145/1404953.1404959