在软件方面,对完整性的含义有几种解释。在一些场景下,完整性是安全的同义词 - 即对黑客和隐私侵犯的抵御能力。对于其他人而言,高完整性意味着未对所交付的软件进行未经授权的更改。

在这篇博文中,我们将软件完整性称为软件源代码的质量。

根据每个项目的需要选择代码质量测量。评估代码质量需要您测量潜在的安全和安全相关缺陷的数量和严重性。您还需要评估代码的可维护性和可测试性。实现高代码完整性可能是一项复杂而艰巨的任务。

软件完整性的重要性

软件完整性非常重要,因为它证明了代码的安全性,保障性和可维护性。此外,确保代码具有高完整性对于需要符合编码标准和行业法规的软件尤为重要。

高软件完整性与低软件完整性

重要的是要考虑在任何开发项目开始时将采用哪些完整性措施和标准。这些可能因最终应用而异。

简单地说,高完整性意味着代码:

运作良好

能经受测试

有安全功能

规避安全漏洞

易于理解并遵循逻辑

易于修改和扩展而不会引入新的错误

软件完整性的好处

尽管实现这一目标可能是一项挑战,但代码的高度软件完整性的好处是深远的。因为软件完整性可确保:

可以更快地识别和解决编码缺陷

代码保持灵活,模块化和可维护性

网络威胁得到缓解

代码开发有充分的文档记录和组织

符合法规和行业标准

分析清晰,详细且易于访问

软件完整性是每个人的责任

确保代码的安全性,保障性和质量是每个人的责任。在整个开发过程中,开发人员,测试人员和管理人员应该实现高度软件完整性的目标。

如何提高软件完整性

实现高软件完整性似乎是一项艰巨的任务。但是,通过实现安全性,保障性和可维护性的正确实践,挑战更易于管理。

软件完整性最佳实践:使用编码标准

编码标准是编码规则,指南和最佳实践的集合。通过将标准纳入您的开发过程,它可以确保您的软件是:

使用安全

抵御网络威胁

可靠,可以按预期运行 - 任何时刻

可测试以确保识别缺陷

即使代码库增长,也可以维护

便携式,使其在每个环境中都能正常工作
如何做到
为了有效地将编码标准用于您的开发过程,您应该为您的团队提供有关编码标准是什么以及如何最好地遵循它们的培训。您还可以使用
静态代码分析器,它在程序运行之前检查源代码,以帮助实施编码标准。

软件完整性最佳实践:测试

测试对于确保您的软件安全,可靠和安全至关重要。虽然您可以运行数百种不同类型的软件测试,但通常有两个主要类别:功能测试 - 验证软件的功能 - 以及非功能测试 - 验证软件的性能。

如何做到
为了充分测试您的软件,您需要遵循
软件测试方法,以确保测试是彻底的,并可以识别所有潜在的缺陷和错误。此外,您可以使用测试管理工具(例如Helix ALM)为您提供所有测试工作的更好的可见性和可跟踪性。

软件完整性最佳实践:分析代码

代码分析有助于确保代码有效,正常运行,并且在编写代码时不会出错。这种做法应该在创建阶段完成,因为它将使解决错误更快,更容易,更便宜。

如何做到实现和实施代码分析
的最有效方法是使用静态分析器来监控关键质量指标。

软件完整性最佳实践:遵循代码审查最佳实践

手动代码审查 - 如果做得好 - 有助于提高代码质量,帮助稳定代码库,并帮助您的团队更有效地工作。

如何做到
为确保您的团队进行有效的代码审查,请为他们提供
最佳实践培训。此外,由于可能会遗漏错误或缺陷,您还应该使用自动化工具来确保审核过程中没有空白。

软件完整性最佳实践:重构旧代码(必要时)

遗留代码可以指由未编写代码的人管理代码,也可以代表难以理解和更改的代码。无论哪种方式,重构都可以帮助改变代码的结构而不改变其功能。这种做法有助于清理代码库并降低其复杂性。

如何做
重构应该逐步完成,以确保您的软件不会变得混乱。最有效的方法是遵循
使用遗留代码最佳实践

使用正确的工具实现软件完整性

确保您的代码具有高度的软件完整性可能是一个复杂且耗时的过程,因为需要考虑多个因素。但是,有一些有益的实践和工具可以帮助您有效地管理每个因素,以帮助您实现高度的软件完整性。

使用正确的代码质量工具对于实现高度的软件完整性至关重要。高软件完整性可能需要更多时间才能实现,但确保您的代码在早期安全,可靠和高质量有助于降低维护成本并减少技术债务。 

选择合适的工具:静态分析器

Helix QAC是一种C / C ++静态分析器,可以轻松确保您的代码安全,可靠和高质量。您将能够通过以下方式实现高度的软件完整性:

应用编码标准,如MISRA,AUTOSAR和CERT

遵循编码最佳实践

识别编码错误,包括未定义或未指定的C / C ++使用

消除安全漏洞

通过测量,跟踪和报告质量指标(例如圈复杂度)来管理代码质量

原文链接: https://www.perforce.com/blog/qac/what-is-software-integrity