提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:郑恭琳|2021-01-14 14:31:18.980|阅读 169 次
概述:在评估代码库的风险时,这不是单个的魔术数字,也不是简单的像是“通过/不通过”交通信号灯。风险是多维和多变的,对于不同的组织,风险的衡量方法也有所不同。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
在评估代码库的风险时,这不是单个的魔术数字,也不是简单的“通过/不通过”交通信号灯。风险是多维和多变的,对于不同的组织,风险的衡量方法也有所不同。
您可能已经知道代码中高风险或“不良”部分的位置–它们是您经常更改的代码部分,在此处和此处进行了一些小调整,以修复一些看起来无害的小问题,但通常代表分层设计不良的特点。这就是为什么更改现有代码是在应用程序中引入缺陷的主要原因。
但是我们也知道变化是不变的。您永远不会完全实现所有功能或第一次都无法正确执行,但是与此同时,当您在现有代码上分层时,对每个用例和场景的了解就会丢失,复杂性会增加,并且代码的风险也会越来越大。这些变化为将环境应用于风险提供了关键。
与了解风险本身同样重要的是,了解如何应对风险–如何确定补救措施的优先级,以实现“可接受的风险水平”,同时最大程度地降低对团队速度的影响。这篇文章仅着眼于:如何评估代码更改的风险以及如何有效地确定优先级和减轻风险。
风险不是一个单一的数字,也不是项目级别的“交通灯”(尽管我们确实在UI中使用了易于关联的交通灯颜色),而是代码库的分类以及关于实际和潜在存在问题的指导。见下文:
来自Parasoft的Process Intelligence Engine的饼图示例,显示了高,中和低风险代码的比例。
风险的分类既是多维的又是多元的–您必须将静态分析,度量,代码覆盖率和测试等技术中的质量度量汇总在一起,才能真正理解它。这些技术中没有一个能为您提供特定维的值,而是为公式提供了值。例如,代码覆盖率不是一个好用的数字,因为您可以拥有100%的覆盖率,但是只有少量的测试可以做有意义的事情–您需要考虑使用代码覆盖率告诉您的内容(即,“我的代码的测试水平如何?”),并通过添加更多数据来进行更有意义的分析。
风险代码更改气泡图的示例说明了最高风险所在。 (可以扩展气泡以查看驱动分类的指标。)
上面的气泡图说明了基于两个维度的风险分类(也如下图所示):
测试不良的代码(即测试缺陷较高)被归类为高风险(红色),而经过良好测试和结构良好的代码(即较低的维护负担)被归类为低风险(绿色)。
在开发过程中,您的代码库处于不断变化的状态,每行更改的代码都会带来未知的风险。它会破坏基本功能吗?它会引入安全漏洞吗?信息越少,风险越大。在之前的文章中,我们讨论了变更对测试的影响,以及如何智能地使用代码覆盖率来预测测试资源需要集中在哪里。但是,即使覆盖范围和测试范围不断扩大,随着时间的流逝,仍然存在更多的风险。
代码库中的更改为我们提供了第三个也是最重要的风险维度:时间。时间不是传统意义上的时间,而是与构建及其之间的变化相关的时间。专注于代码库在内部版本之间已更改的部分,这使我们能够集中精力处理风险最高且最相关的代码,因为该团队目前正在代码库的这一部分中工作。
重用和遗留代码已经有其自己的负担,特别是对于安全性。如果没有足够的检查来维持或改善质量基准,则每条提交或修改的代码行都会加重债务。要摆脱这种债务,就像任何债务一样,需要关注并致力于减少债务。另外,就像任何债务一样,除非您知道花在哪里,否则怎么会知道如何储蓄?
一旦确定了具有最高风险和最高优先级的代码,就还需要考虑减轻风险所需的工作量。这是第四个也是最后一个方面:质量债务。在上面的气泡图中,质量债务用气泡的大小表示–气泡越大,需要解决的已知问题越多。在我们的示例中,质量债务是高严重性静态分析违例(包括违反代码度量标准的设置阈值)和测试失败的组合,并通过逻辑代码行数进行了标准化(请参见图3)。
这些出色的质量任务的汇总为降低代码风险所需的相对工作量提供了指导。
并非每个组织都将遵循相同的质量实践或在计算尺寸时要考虑哪些因素。您需要能够配置和创建自己的风险定义。
该博客中的示例可供Parasoft市场上的用户使用,使您可以立即使用它,并进行扩展和修改以满足您的特定需求。从示例开始,您可以自定义静态分析,指标阈值和风险分类以适合您的组织。
通过适当的安全措施平衡预算,进度和质量目标,同时满足客户需求,这是一个艰巨的任务,每一个环节都有风险。但是,质量实践和流程智能的自动化可帮助您将资源最佳地用于哪里。了解风险的根源以及每个代码的更改方式如何影响基线质量和安全性,可以减少开发方程式中的许多未知数。正确地关注质量和安全债务是可以克服的。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
针对 C/C++ 软件开发提供统一、完全集成的测试解决方案。
Parasoft Jtest用于应用软件开发的集成Java测试工具
Parasoft dotTEST降低C#和VB.NET开发风险,有效地实现符合C#和.NET开发的测试工具的要求
Parasoft Insure++针对C和C++应用程序的运行时内存泄漏检测和内存调试
Parasoft SOAtest人工智能和机器学习赋能 API 和 Web 服务测试
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢