加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何处理静态分析仪输出

发布时间:2020-12-16 10:45:14 所属栏目:百科 来源:网络整理
导读:我们已开始在代码库中使用静态分析器(Coverity).我们收到了大量的警告(数十万),我们很快就被惊呆了,整个团队需要几个月才能清除所有这些警告(一点也不可能). 我们到目前为止讨论的选项是 1)雇用承包商来整理警告并修复它们 – 他的缺点是:我们可能需要非常
我们已开始在代码库中使用静态分析器(Coverity).我们收到了大量的警告(数十万),我们很快就被惊呆了,整个团队需要几个月才能清除所有这些警告(一点也不可能).

我们到目前为止讨论的选项是

1)雇用承包商来整理警告并修复它们 – 他的缺点是:我们可能需要非常经验的人来做所有这些修改,并且没有承包商需要了解代码.

2)过滤掉警告并仅处理危险警告 – 这里的问题是我们的静态分析输出总是被警告混乱,使我们难以隔离问题.过滤警告也是一项重大努力.

无论哪种方式,将我们的代码带到一个状态,当静态分析器对我们来说是一个有用的工具似乎是一个巨大的任务.

那么如何才能使用静态分析仪,而无需将当前的开发工作纳入完整的支架?

解决方法

首先要做的是调整分析设置; Coverity支持可能会给你一个相当通用的配置.

>对缺陷的代表性样本进行分类,如果检查器似乎没有产生比噪声更多的信号,请暂时将其关闭. (Coverity的大多数跳棋都很好,但是没有人是完美的,听起来你需要做一些无情的优先排序.)

>从长远来看,将其中一些检查器重新打开,但在报告中将它们标记为低优先级. (这比它应该更难;我一直认为Coverity需要阅读一些关于缺陷排名的文章,名叫道森恩格勒.:-)
>在更长的运行中,尝试默认禁用的检查器;其中一些人发现了令人印象深刻的错虽然你确实需要关闭一些虚假的警告,但解析警告却非常有用.

>对于您实际上即将修复的代码库的哪个部分,请保持冷嘲热讽.使用组件跳过对您不会修复缺陷的代码的分析,至少目前是这样. (例如,从理论上讲,如果您的产品包含第三方代码,那么您应对其质量负责,并且应修补其中的错误.在实践中,此类错误很少得到修复.如果它是成熟的第三方代码,则为假积极率会很高.)

>设置组件和排除是很棘手的,但一旦完成,它们运行良好 – 我的一个负面的前瞻性正则表达式有超过一百个析取.
>组件还有助于为缺陷分配个人责任,我发现这对于修复缺陷至关重要.

>仅为新缺陷设置报告,让人们观看该URL.新的缺陷存在于活动代码中,并且更容易开始使用“无新警告”策略.

让我以几个免责声明结束:

>您可能想在Coverity支持论坛(http://forums.coverity.com/)中重新提出这个问题,该论坛不是非常活跃,但我们不必担心违反NDA.我有一个我认为值得启用的跳棋列表.
>我这样做是为了谋生,也许你想雇用我们(http://codeintegritysolutions.com/);我今天在斯坦福大学就这个问题发表演讲.聘请顾问进行调整很有意义;在公司外面有人做分类是比较棘手的.有一个局外人做修复工作仍然比较棘手;从错误中吸取教训比修复错误更重要.

>我的公司博客:http://codeintegrity.blogspot.com/2010/01/handling-embarrassment-of-riches.html,我对斯坦福大学的一些演讲进行了一些扩展.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读