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

LATE@AOSD Pub Date : 2008-03-31 DOI:10.1145/1404953.1404959
Sai Zhang, Zhongxian Gu, Yu Lin, Jianjun Zhao
{"title":"Flota: a programmer assistant for locating faulty changes in AspectJ software evolution","authors":"Sai Zhang, Zhongxian Gu, Yu Lin, Jianjun Zhao","doi":"10.1145/1404953.1404959","DOIUrl":null,"url":null,"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.","PeriodicalId":210171,"journal":{"name":"LATE@AOSD","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2008-03-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"LATE@AOSD","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1404953.1404959","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

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.
Flota:在AspectJ软件发展过程中定位错误变更的程序员助手
随着面向方面编程(AOP)越来越流行,人们对在面向对象软件中使用方面来实现横切关注点越来越感兴趣。在软件发展过程中,源代码编辑和测试是相互交织的活动,以保证代码质量。如果在长时间的编辑后回归测试意外失败,程序员可能很难找出失败的原因。在本文中,我们提出了Flota,一个针对AspectJ程序的故障定位工具。当一个回归测试在一个源更改会话之后意外失败时,Flota首先将两个程序版本之间的差异分解为一组原子更改,然后确定导致失败的影响更改的子集。程序员可以选择(并应用)对原始程序的可疑更改,构建可编译的中间版本。因此,程序员可以针对这些中间程序版本重新执行失败的测试,通过迭代地选择、应用和缩小影响更改的集合来定位准确的错误更改。Flota是在ajc编译器之上实现的,并被设计为一个eclipse插件。我们的初步实证研究表明,Flota可以帮助程序员有效地找到一小部分有缺陷的更改,并提供有价值的调试支持。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信