On Oct 29, 8:07*am, ssubbarayan <ssu...@gmail.com> wrote:
> Dear all,
> Whats the general norm people use to evaluate static code *analysis
> and dynamic code analysis tools in your experience.I am confused on
> the best tool to choose from,given that so many tools are available
> over the net.I believe
> following are the criteria to test the usefullness of these tools:
> 1)User friendliness
> 2)Ability to detect bugs
> 3)Ability to enforce coding guidelines
> 4)Ability to generate userfriendly reports
> 5)Speed of detection
> 6)Should not be providing lot of false defects.
> 7)Easily customisable
>
> Are there any test suites available to evaluate these analysis tools?
> How do people who use them evaluate?Are there any test programs
> available for eg a sample C code which can be run with analysis tool
> to see how it reports?
>
> Please let me know your thoughts.Advance thanks for all your inputs.
> Are there any bench marks available for these analysis tools?
>
> Looking farward for your inputs and advanced thanks,
> Regards,
> s.subbarayan
In regards of static analysis tools:
NIST SAMATE project has some test suites for C, C++, Java...
You can reach it here:
http://samate.nist.gov/SRD
These are syntactic test cases, so they do not represent properly the
result of a tool on your code base. It just gives you an idea of the
weaknesses coverage of the tool (tools should also provide a list of
weaknesses they support, you can make sense of it with the CWE -
http://cwe.mitre.org)
As criteria to select a tool, I think it depends on lot on how you
plan to use to tool.
For example, if only few people (software security folks) use the
tool, then usability shouldn't be such a big deal; it is if many
developers will use the tool.
Otherwise, I would recommend few things:
- proper detection with few false-positive rate on selected test cases
- take some of your code (restrict the scope of the scan), and compare
tool results and look for false-negative/false-positive on your
code... (tools are sensitive to the code constructs/API used in the
code)
- customization (especially if you see an important FP/FN rate) might
be considered as important too; I suppose it depends on how you want
to use the tool...
Romain