Test-based pointcuts: a robust pointcut mechanism based on unit test cases for software evolution

LATE@AOSD Pub Date : 2007-03-12 DOI:10.1145/1275672.1275677
K. Sakurai, H. Masuhara
{"title":"Test-based pointcuts: a robust pointcut mechanism based on unit test cases for software evolution","authors":"K. Sakurai, H. Masuhara","doi":"10.1145/1275672.1275677","DOIUrl":null,"url":null,"abstract":"This paper proposes test-based pointcuts, a new aspect-oriented programming language construct that uses unit test cases as interface of crosscutting concerns. A test-based pointcut primarily specifies a set of test cases associated to a program. At execution time, it matches the join points that have the same execution history to the one of the specified test cases. The test-based approach improves pointcut definitions in two respects. First, test-based pointcuts are less fragile with respect to program changes because rather than directly relying on type and operation names in a program, they indirectly specify join points through unit test cases, which are easier to be kept up-to-date. Second, test-based pointcuts can discriminate execution histories without requiring to specify detailed execution steps, as they use test cases as abstractions of execution histories. With the abstractions, the second respect contributes to the first respect. We designed and implemented the test-based pointcuts as an extension to AspectJ, and confirmed, through an case study, test-based pointcuts are more robust against evolution when used for a practical application program.","PeriodicalId":210171,"journal":{"name":"LATE@AOSD","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2007-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"LATE@AOSD","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1275672.1275677","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 9

Abstract

This paper proposes test-based pointcuts, a new aspect-oriented programming language construct that uses unit test cases as interface of crosscutting concerns. A test-based pointcut primarily specifies a set of test cases associated to a program. At execution time, it matches the join points that have the same execution history to the one of the specified test cases. The test-based approach improves pointcut definitions in two respects. First, test-based pointcuts are less fragile with respect to program changes because rather than directly relying on type and operation names in a program, they indirectly specify join points through unit test cases, which are easier to be kept up-to-date. Second, test-based pointcuts can discriminate execution histories without requiring to specify detailed execution steps, as they use test cases as abstractions of execution histories. With the abstractions, the second respect contributes to the first respect. We designed and implemented the test-based pointcuts as an extension to AspectJ, and confirmed, through an case study, test-based pointcuts are more robust against evolution when used for a practical application program.
基于测试的切入点:基于软件演进的单元测试用例的健壮的切入点机制
本文提出了基于测试的切入点,这是一种新的面向方面的编程语言结构,它使用单元测试用例作为横切关注点的接口。基于测试的切入点主要指定与程序相关的一组测试用例。在执行时,它将具有相同执行历史的连接点与指定的测试用例之一相匹配。基于测试的方法在两个方面改进了切入点定义。首先,基于测试的切入点相对于程序更改而言不那么脆弱,因为它们不是直接依赖于程序中的类型和操作名称,而是通过单元测试用例间接指定连接点,这更容易保持最新状态。其次,基于测试的切入点可以区分执行历史,而不需要指定详细的执行步骤,因为它们使用测试用例作为执行历史的抽象。对于抽象,第二个方面有助于第一个方面。我们设计并实现了基于测试的切入点作为AspectJ的扩展,并且通过一个案例研究证实,当用于实际应用程序时,基于测试的切入点对于发展更加健壮。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信