2010-08-09 92 views
2

您将使用什么方法与静态代码分析工具?静态代码分析方法

何时何地运行分析?多频繁?

如何在日常构建中将其集成到持续构建环境?只有每晚?

+0

一个静态分析工具做什么?检测单词“foo”的用法?目标种类不重要吗? – Borealid 2010-08-09 05:52:03

+0

不,不需要检测单词“foo”:)需要什么(或者至少我的部门认为是这样)是一个工具,它运行在源代码上并对其进行分析,以发现在运行时可以找到的错误,像空指针去引用,C++中的双删除,等' – 2010-08-09 05:55:40

回答

3

如果我在新的代码库上使用,那么我将它们设置为我想要的。如果我在现有代码库上使用它们,我会分阶段启用消息,以便报告特定类别的问题。一旦清除了特定类型的消息,我添加下一个类别。

我把静态分析工具看作是编译器的一部分。每个开发人员在每次构建时都会运行它们。如果可能的话,我也会把它们当作编译器警告来对待 - 就像错误一样。这样,带警告的代码根本不会将其放到构建服务器上。如果您在特定情况下无法关闭警告,则会出现问题......并且只能通过协议关闭警告。

+0

在我的情况下,他们决定留下在测试代码中发现的所有问题,以便代码不需要再次测试(它已经发布)并解决问题下一个代码在某个问题的区域发生变化。但我喜欢你的方法,我想我会建议。谢谢:) – 2010-08-09 07:17:51

3

我的经验是,一般来说,静态分析应该在开发过程早期使用,最好(或理想情况下)在单元测试和代码签入之前使用。代码审查过程中也可以使用来自静态分析的报告。这使软件开发人员能够开发出健壮的代码,并且在某些情况下编写可以通过静态分析工具更加准确地分析的代码。

早期使用的挑战是软件开发人员必须接受充分的培训以使用静态分析工具并能够有效地对获得的结果进行分类。这样,他们可以采取具体步骤来提高软件的质量。否则,使用该工具减少或标记的问题将被忽略,静态分析的使用会随着时间的推移而减少。

实际上大多数开发组织在开发过程的后期使用静态分析。在这些阶段,质量或测试工程师使用静态分析工具。在许多情况下,它与构建系统相结合,以产生质量指标并提供有关软件安全性和可靠性的指导。但是,如果识别的问题累积并跨越多个代码组件,则所有问题将被修复的可能性将会降低。因此,一般来说后期使用静态分析可能需要更多的时间和资源来解决已确定的问题。

+0

谢谢,我非常同意并亲眼目睹了您在后期使用静态分析时所描述的确切现象。 – 2011-08-14 19:51:40

0

在检查服务器中的源代码之前,同时使用静态分析工具建立代码审查任务(由另一个开发人员进行同行代码审查)也可能是一个好主意。所以这将有助于提高代码质量并防止无用代码行成为一天无用的代码。