软件质量深度防御
在本文中,我们将讨论罗马军事策略和现代安全实践与保护用户免受软件缺陷的影响之间的关系。
什么是纵深防御?
纵深防御最初是用来描述罗马军队进行有意战略撤退以便在自己的领土上重组并反击入侵军队的做法。
纵深防御应用于软件质量,涉及在代码投入生产之前设置一系列检查,旨在预防或检测质量问题。每个步骤检测或预防缺陷的可能性都有限,但这些措施结合起来,可以大幅降低缺陷进入生产环境的可能性。
这与纵深防御的安全概念不同,后者通常指在网络和应用程序设计中设置冗余的安全层。然而,您可以清楚地看到两者在理念上的相似之处——我们并非通过分层安全措施来试图降低攻击者攻破所有安全层的可能性,而是在整个流程中添加检查,以降低缺陷躲过所有安全层的可能性。
关于有效性的警告
为了使纵深防御发挥作用,缺陷的检测必须能够阻止其进一步扩散。这似乎显而易见,但值得探讨。
如果您的重点是不惜一切代价将代码投入生产,那么发现缺陷只能告诉您已经投入生产的一些缺陷是什么。
此外,您可以说您想进行彻底的测试,但如果明显急于生产并且有强大的力量来实现这一目标(通常在最后期限前发生),确认偏差将完全发挥作用,并且您所做的检查将偏向于批准事情。
为了使纵深防御有效,您的团队和整个组织必须真正投入其中并愿意发现漏洞。
系列概述
在本系列文章中,我们将了解如何使用多种检查来降低缺陷在进入公众视野之前逃脱检测的可能性,从而提高软件质量。
我们将主要关注以下几个主要领域:
- 设计与开发
- 审查和正式测试
- 部署与监控
每个领域都包含多个主题,每个主题都值得写一篇文章,我的目标是每周至少发布一篇该系列的文章,可能在 2020 年第一季度结束。
这个系列应该具有广泛的吸引力,因此我将尝试将示例代码保持在最低限度,并在示例中使用 JavaScript 和 .NET 技术,因为我的读者往往属于这两个阵营中的一个或两个。
如果您希望我在本系列中解决软件质量的某个特定方面或问题,请告诉我- 这可能也会使其他人受益。
软件质量深度防御一文首先出现在Kill All Defects上。
封面照片由Reuben Farrugia在Unsplash上拍摄
文章来源:https://dev.to/integerman/software-quality-defense-in-deep-pg