TY - GEN
T1 - Flota
T2 - 4th Linking Aspect Technology and Evolution Workshop, LATE'08 - Held at the 7th International Conference on Aspect-Oriented Software Development, AOSD 2008
AU - Zhang, Sai
AU - Gu, Zhongxian
AU - Lin, Yu
AU - Zhao, Jianjun
PY - 2008
Y1 - 2008
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=65249153496&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=65249153496&partnerID=8YFLogxK
U2 - 10.1145/1404953.1404959
DO - 10.1145/1404953.1404959
M3 - Conference contribution
AN - SCOPUS:65249153496
SN - 9781605581477
T3 - Proceedings of the 4th Linking Aspect Technology and Evolution Workshop, LATE'08 - held at the 7th International Conference on Aspect-Oriented Software Development
BT - Proceedings of the 4th Linking Aspect Technology and Evolution Workshop, LATE'08 - held at the 7th International Conference on Aspect-Oriented Software Development
Y2 - 31 March 2008 through 4 April 2008
ER -