依赖关系分析工具 - 更新回归测试用例 [已关闭]

问题

我想这是一个非常普遍的问题。添加新代码会转化为回归 - 现有的测试用例会过时。代码中的依赖关系意味着即使您知道如何修复此特定回归,也可能在两个方向上的n个以上位置(Afferent和Efferent)存在间接回归。

要求

我有一家经营SVN,Maven + Nexus,Sonar,Jenkins和JIRA,QC,QTP的商店。总而言之,一个良好的CI环境。

对于每个新版本,我都会有新的回归案例。我想在两个方向上找到Java包依赖关系,并正确更新测试用例,以便涵盖所有类型的回归 - 直接和间接。这更像是一个问题,因为我的单元测试覆盖率甚至没有接近50%,集成测试的自动化也没有跟上开发的步伐。

我的选择

  1. 声纳
  2. 谷歌代码PRo
  3. JArchitect
  4. Jtest(与供应商Parasoft进行了讨论。他们没有这方面的工具)
  5. 利用我现有的环境,比如说,一个Atlassian插件
  6. Kalisitck(供应商演示 - 不错的工具 - 涉及学习曲线和成本)
  7. Coverity(如Kalistick - 学习曲线和复杂的安装。非常昂贵的许可证。
  8. 任何其他开源/付费?

JArchitect,SONAR和CodePro将为您提供一个像这样的简单矩阵。它通过告诉我哪些用户被使用的类受到影响来满足我的一半要求。我想要的是更进一步,让工具告诉我哪些相应的测试用例受到影响,以及我是否需要更新和/或执行它们以覆盖我的回归风险。

Kalistick,Coverity和其他人可能会做我想做的事 - 它们设置和配置很重,随着你的系统缓慢增长,所以不能立即生产,需要成本并需要学习曲线。

简短的问题

在我的设置中使用哪些工具,考虑所有因素,如安装,学习曲线,成本,可用性或任何其他参数。



我已经阅读了关于的FAQ部分,一些线程,如Java的静态分析工具推荐?https://stackoverflow.com/questions/3716203/automatic-code-quality-and-architecture-quality-static-code-analysis 和对代码指标的迷恋是什么?以及许多链接的线程,但它们没有回答我的具体问题。


答案 1

使用JDepend,您可以分析包之间的依赖关系,甚至可以创建单元测试以确保依赖关系,或者将其与Fitite集成以获得一个很好的依赖关系表测试。如果您的测试位于特定包中,这可能会有所帮助...


答案 2

我自己就是Sonar的忠实粉丝,因为你已经运行了它,并且在你的CI环境中工作,这将是我的建议。我不太确定Sonar的依赖周期矩阵如何还没有做你想做的事情,或者更确切地说,除此之外你想要什么。