问题
我想这是一个很常见的问题。添加新代码会转化为回归——现有的测试用例会过时。代码中的依赖意味着即使你知道如何修复这个特定的回归,在两个方向上的 n 多个地方也可能存在间接回归 - 传入和传出。
要求
我有一家运行 SVN、Maven+Nexus、Sonar、Jenkins 和 JIRA、QC、QTP 的商店。总而言之,一个良好的 CI 环境。
随着每一个新的构建,我都会有新的回归案例。我想在两个方向上找到 Java 包依赖关系并正确更新测试用例,以涵盖所有类型的回归——直接和间接。这更是一个问题,因为我的单元测试覆盖率甚至没有接近 50%,而且集成测试的自动化跟不上开发的步伐。
我的选择
- 声纳
- 谷歌代码Pro
- 建筑师
- Jtest(与供应商 Parasoft 进行了讨论。他们没有用于此的工具)
- 利用我现有的环境,比如说,一个Atlassian插件
- Kalisitck(供应商演示 - 不错的工具 - 涉及学习曲线和成本)
- Coverity(像 Kalistick - 学习曲线和复杂的安装。非常昂贵的许可证。
- 任何其他开源/付费?
JArchitect、SONAR 和 CodePro 将为您提供一个类似this或this的简单矩阵。通过告诉我哪些用户和使用的类受到影响,这满足了我的一半要求。我想要的是更进一步,让工具告诉我哪些相应的测试用例受到影响,以及我是否需要更新和/或执行它们以覆盖我的回归风险。
Kalistick、Coverity 和其他人可能会做我想做的事 - 它们的设置和配置很繁重,随着您的系统缓慢增长,因此不能立即产生生产力,需要成本并且需要学习曲线。
简短的问题
考虑到安装、学习曲线、成本、可用性或任何其他参数等所有因素,在我的设置中使用哪些工具。
我已经阅读了关于静态分析的常见问题解答部分,像Java 的静态分析工具推荐这样的线程很少?, https://stackoverflow.com/questions/3716203/automatic-code-quality-and-architecture-quality-static-code-analysis和 代码度量的魅力是什么? 和许多相关的,但他们没有回答我的具体问题。