Vidock:面向切面编织对测试用例影响分析的工具
在软件开发中,面向切面编程(AOP)通过将横切关注点封装到方面(aspects)中,提高了代码的可读性、模块化和可维护性。然而,当方面被织入程序时,会对程序的现有行为产生影响,因此需要确定哪些测试用例受到了方面织入的影响。本文将介绍 Vidock 工具,它可以在不执行任何测试用例的情况下,通过静态分析来选择受方面影响的测试用例。
1. 面向切面编程基础
面向切面编程(AOP)是一种将横切关注点分离的编程范式。在 Java 中,AspectJ 是 AOP 的一种流行且成熟的实现。下面通过一个在线拍卖系统的例子来介绍 AspectJ 的核心概念。
1.1 拍卖系统示例
在这个在线拍卖系统中,用户可以创建拍卖并设置结束日期和最低价格,其他用户可以在拍卖结束前出价。出价最高的用户(如果有)赢得拍卖。系统确保卖家能够收到款项,即出价者在出价前必须向其账户充值,并且系统会检查其总出价不超过账户可用金额。拍卖结束时,资金会立即从买家账户转移到卖家账户。
系统中添加了两个方面:
- Reserve 方面 :允许卖家设置一个秘密保留价格。如果最高出价未达到保留价格,则物品不会出售。
public privileged aspect Reserve {
private int Auction.reservePrice = 0;
pointcut closeOpen(Auction a):
execution(void Open.close(Aucti
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



