提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:郑恭琳|2021-03-12 13:41:39.027|阅读 90 次
概述:静态分析是软件质量/安全性库中最有价值的工具之一。正确执行将带来巨大的价值,但是错误执行可能会使组织中的新一代编码人员注定要使用过时的过时质量和安全流程。如果您有任何疑问,请在下面的评论中让我知道——很乐意就如何使静态分析发挥作用进行讨论。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
作为有关成功程序员的7种习惯的系列文章的一部分,今天,我将讨论确保静态分析有效且可持续的几种方法。
首先,最好从静态分析策略开始。有些人想知道为什么这很重要,但这实际上对于成功的静态分析计划至关重要。您的策略将涵盖诸如应运行哪些规则,什么时候可以忽略它们,何时必须修复它们,如何执行抑制等等之类的事情。您还需要确定需要分析哪些代码,即通过所有遗留代码来进行分析。您只是坐在那里,我们将在稍后讨论。
如果没有一致的策略,静态分析将迅速演变为偶尔执行的错误查找程序,从而缩小了您从中获得的价值。如果您从事医疗或汽车等合规性业务,则无论如何都必须进行静态分析,这样一来,您就可以正确地进行分析并获得一定的价值。
获得正确的工具很重要。该工具需要在您使用的操作系统上的代码编辑器(IDE)中使用您所使用的语言进行工作。该工具应支持服务器和in-IDE执行,in-IDE(对于开发人员)和基于Web的报告(对于管理人员)。您需要能够将工具配置为仅执行所需的规则(而不仅仅是工具供应商希望您运行的规则)。成熟的工具具有开箱即用的启动配置,可让您采用MISRA,OWASP,CWE和PCI等行业计划。
能够使用自己的规则,想法和最佳实践来扩展该工具对您的长期成功也很重要。而且不要忘了技术支持–有人可以查看有关嘈杂规则的问题并帮助您解决这些问题吗?您要使用开源并自己进行修复吗?通常,您是否使用供应商服务来帮助您快速启动项目并朝正确的方向前进?
这些以及更多是选择工具时要考虑的所有事情。不要陷入困境——它提供了关于工具是否真正能够满足您的需要的有用信息,而静态分析工具的工作方式却有所不同。
如上所述,很容易陷入陷阱,只需打开静态分析工具中的任何规则即可。一些供应商积极鼓励这样做,另一些甚至要求!每个人的软件测试需求都不同。默认配置可以帮助您入门,但是要成功,您必须自己进行配置。
需要做的一些事情包括关闭嘈杂的规则并设置严重性级别以符合您自己的实际做法(您不希望工具在您认为严重性较低时就说出一些关键内容)。一个不明显的提示是关闭您喜欢但不打算立即解决的规则。如果您有时间解决违规问题,请先打开规则,而不要先打开规则。当告知开发人员并非所有规则都重要时,在报告它们时忽略它们只会导致沮丧和不良习惯。
您正在运行的规则应与您在现场遇到的问题,您可能会合理预期的问题,安全性问题,在代码检查过程中发现的问题以及任何合规性项目有关-您必须运行的规则。
即使您拥有正确的规则,有时上下文也会使特定的静态分析在代码的一部分中显得不重要,而在另一部分中仍然至关重要。您这里有一些选择,其中最有价值的就是挫败并关闭规则。如果您知道该规则可以在某些领域提供价值,那么这是一个错误的选择。如果您的工具无法正确配置和抑制,则您选择了错误的工具,返回上述步骤2。
一些陷入的陷阱是对结果进行一些手动管理并散发出重要的结果。这是劳动密集型的,不可伸缩的,不可维护的,您将最终解决不那么重要的事情,而错过了更重要的事情。您需要一个以数据为依据的流程,以帮助您评估哪些违规问题需要解决,哪些违规问题可以安全地忽略,然后提供一种标记这些违规情况的方法,以免再次发生。理想情况下,这可以由开发人员直接在代码所在的IDE中以及由管理人员,架构师等在基于Web的UI中完成。
有些人将这些抑制作用放在单独的系统中。这样的好处是从不更改代码,但是冒着在分支或重构或存在某些同步问题时要求进行返工的风险。其他人则以特殊注释的形式对代码进行了更改。尽管这确实需要进行代码更改,但它是持久且准确的,并且还记录了禁止的内容-如果您经过审核,那就很棒。考虑您的需求,并选择最适合您的环境的方法。如果您的工具不支持这两种工具,请返回步骤2。
旧版代码与禁止相关。决定要如何处理旧代码很重要。同样,这取决于您的需求,但是我在下面介绍了几种方法。
一些组织选择仅在存在涉及这些代码行的未解决的现场错误报告的情况下,才修复遗留代码中的静态分析违规问题——文件中的其他内容都不应被触及。如果您的代码确实很旧,或者更改的风险很高,那么这是一个完全合理的策略。它将风险最小化。
另一个想法是,无论如何,都可以修复文件中的所有内容。这带来了变更的风险,但是如果您有一个好的单元测试套件(我们将在下一次讨论),那么您不必担心太多。从积极的方面来说,您触摸的任何代码都将具有最新的必需代码标准和最佳实践。过时的代码将比以前少过时了。
您也可以执行混合方法,或者只是在某个日期之前忽略所有旧代码,而仅使用静态分析。找出可以实现的目标并以这种方式做到。首先,请考虑一下您提出的策略的风险和收益。
静态分析是软件质量/安全性库中最有价值的工具之一。正确执行将带来巨大的价值,但是错误执行可能会使组织中的新一代编码人员注定要使用过时的过时质量和安全流程。如果您有任何疑问,请在下面的评论中让我知道——很乐意就如何使静态分析发挥作用进行讨论。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
CEETRON Envision是一款功能强大的CAE数据分析与可视化工具包,凭借其卓越的数据提取、分析、渲染能力,能够帮助工程师和开发人员提升分析效率、改善工作流程,并通过高效的数据共享报告和生成功能,进一步优化团队协作与决策过程。
Burp Suite是一款专业的Web应用安全测试工具,集成了Proxy、Scanner、Intruder等功能,帮助渗透测试人员识别和修复Web应用中的安全漏洞,是提升Web应用安全性和防护能力的必备利器。
2024年对于FastReport来说是充满挑战和收获的一年。FastReport在多个领域取得了重要突破和创新成果,不仅不断优化现有产品,
通过提供强大的3D CAD数据访问工具并适用于桌面、移动和Web的高级环境3D可视化发动机,HOOPS在提升造船设计和制造流程的效率方面发挥了重要作用。
针对 C/C++ 软件开发提供统一、完全集成的测试解决方案。
Parasoft Jtest用于应用软件开发的集成Java测试工具
Parasoft SOAtest人工智能和机器学习赋能 API 和 Web 服务测试
Parasoft Virtualize用于创建、部署和管理模拟的开发与测试环境的虚拟解决方案
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢