Problem
Its quite a common problem I would like to think. Adding new code translates into regression - existing test cases become obsolete. Dependencies within the code mean even if you know how to fix this particular regression, there could be indirect regression at n more places in both directions - Afferent and Efferent.
Requirement
I have a shop running SVN, Maven+Nexus,Sonar,Jenkins and JIRA,QC,QTP. All in all a good CI environment.
With every new build I'll have new cases of regression. I want to find Java package dependencies in both directions and to update the test cases properly so as to cover all types of regression - direct and indirect. This is more of a problem as my unit test coverage is not even approaching 50% and automation of integration tests is not keeping pace with the development.
My options
- SONAR
- Google CodePRo
- JArchitect
- Jtest ( Had a discussion with the vendor Parasoft. They do not have a tool for this)
- Leverage the existing environment I have with, lets say, an Atlassian plugin
- Kalisitck (Vendor demo - Nice tool - involves a learning curve and cost)
- Coverity (Like Kalistick - learning curve and complex installation.Very expensive license.
- Any other open source/paid ?
JArchitect, SONAR and CodePro will give you a simple Matrix like this or this. Which satisfies half of my requirement by telling me which user and used-by classes are impacted. What I want is go 1 step further and have the tool tell me which corresponding test cases are impacted and if I need to update and/or execute them so as to cover my regression risks.
Kalistick, Coverity and maybe others might do what I want - they are heavy to setup and configure, grow with your system slowly so are not productive right away, come with a cost and need a learning curve.
Short question
Which tool(s) from above to use in my setup considering all factors like installation, learning curve, cost, availability or any other parameter.
I have already read the FAQ section on static-analysis, few threads like Static Analysis tool recommendation for Java? , https://stackoverflow.com/questions/3716203/automatic-code-quality-and-architecture-quality-static-code-analysis and What is the fascination with code metrics? and many linked ones, but they don't answer my specific question.