-
测试的目标不是为了更多的发现错误, 而是提高代码能按照预期方式工作的可信度
-
(1) 代码审查CodeReview
(2) 静态分析工具: 它们不需要运行代码, 是在分析代码中是否存在常见的错误模式, 例如FindBugs软件
常见的能被静态分析出来的问题
1° 不一致的同步
使用了不同的锁
2° 调用了Thread.run()
3° 显示锁没有被释放
4° 空的同步块
5° 双重检查加锁
6° 在构造函数中启动一个线程
this引用逸出
7° notify和notifyAll通知了错误的对象
8° 条件等待(Object.wait(), Condition.wait())了错误的对象
9° 对Lock和Condition的误用
10° 在休眠或者等待的同时持有一个锁
11° 自旋循环
通过忙等待的方式检查某个域的值而不做任何事情, 会浪费CPU时钟周期
(3) 面向切面AOP测试
chapter12_并发程序的测试_4_其他的测试方法
最新推荐文章于 2023-02-03 20:17:21 发布