c – 如何处理静态分析仪输出
我们已开始在代码库中使用静态分析器(Coverity).我们收到了大量的警告(数十万),我们很快就被惊呆了,整个团队需要几个月才能清除所有这些警告(一点也不可能).
我们到目前为止讨论的选项是 1)雇用承包商来整理警告并修复它们 – 他的缺点是:我们可能需要非常经验的人来做所有这些修改,并且没有承包商需要了解代码. 2)过滤掉警告并仅处理危险警告 – 这里的问题是我们的静态分析输出总是被警告混乱,使我们难以隔离问题.过滤警告也是一项重大努力. 无论哪种方式,将我们的代码带到一个状态,当静态分析器对我们来说是一个有用的工具似乎是一个巨大的任务. 那么如何才能使用静态分析仪,而无需将当前的开发工作纳入完整的支架? 解决方法
首先要做的是调整分析设置; Coverity支持可能会给你一个相当通用的配置.
>对缺陷的代表性样本进行分类,如果检查器似乎没有产生比噪声更多的信号,请暂时将其关闭. (Coverity的大多数跳棋都很好,但是没有人是完美的,听起来你需要做一些无情的优先排序.) >从长远来看,将其中一些检查器重新打开,但在报告中将它们标记为低优先级. (这比它应该更难;我一直认为Coverity需要阅读一些关于缺陷排名的文章,名叫道森恩格勒.:-) >对于您实际上即将修复的代码库的哪个部分,请保持冷嘲热讽.使用组件跳过对您不会修复缺陷的代码的分析,至少目前是这样. (例如,从理论上讲,如果您的产品包含第三方代码,那么您应对其质量负责,并且应修补其中的错误.在实践中,此类错误很少得到修复.如果它是成熟的第三方代码,则为假积极率会很高.) >设置组件和排除是很棘手的,但一旦完成,它们运行良好 – 我的一个负面的前瞻性正则表达式有超过一百个析取. >仅为新缺陷设置报告,让人们观看该URL.新的缺陷存在于活动代码中,并且更容易开始使用“无新警告”策略. 让我以几个免责声明结束: >您可能想在Coverity支持论坛(http://forums.coverity.com/)中重新提出这个问题,该论坛不是非常活跃,但我们不必担心违反NDA.我有一个我认为值得启用的跳棋列表. >我的公司博客:http://codeintegrity.blogspot.com/2010/01/handling-embarrassment-of-riches.html,我对斯坦福大学的一些演讲进行了一些扩展. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |