如今的软件开发公司经常陷入相互冲突的业务优先级之间。一方面,他们需要帮助各自的组织比竞争对手更快地将创新产品和服务推向市场。另一方面,他们负责交付高质量、高度安全的代码,帮助他们提高客户满意度,并降低风险。最重要的是,开发和质量保证(QA)职能都面临着越来越大的压力,需要降低成本并进一步提高效率。所有这些因素构成了软件开发的完美风暴。展示了Coverity公司确定的软件供应链管理中最受关注的问题。
在Forrester Consulting和Coverity最近的一项调查中,90%的受访者确认他们使用来自商业供应商、外包团队或开源提供商的第三方提供的代码。而且这种趋势似乎在增加:今天的许多组织都依赖于来自多个来源的软件代码。
未经充分测试的第三方代码可能会导致产品延迟或召回、安全漏洞以及产品和服务的开发时间增加。所有这些都可能对您的收入和品牌产生严重的负面影响。在ForresterConsulting最近的一项调查中,只有44%的被调查公司在第三方代码的开发过程中进行自动化代码测试,而69%的公司对内部开发的软件使用自动化代码测试。只有35%的公司对第三方代码进行风险、安全或漏洞评估,而70%的公司在其内部开发的软件上部署这些方法。并且只有35%的公司对第三方提供的软件进行手动代码审查,而68%的公司对内部开发的代码进行手动代码审查。简而言之,第三方代码的测试方式与内部代码不同。
如今的软件开发项目的特点是优先级冲突的完美风暴,并且通常包含来自多个来源的代码混合物。这导致软件开发生态系统中风险和回报的分配不均。在同一份报告中,Forrester发现,在几乎每两个案例中,买方对第三方代码中发现的质量和安全问题负有100%的责任,而第三方供应商则为十分之一。被追究100%的责任。该研究还证实,开发人员正在承担额外的责任,超过74%的受访者表示,与一年前相比,开发人员对质量和安全目标的责任更大。
前面的观点并不意味着开发团队没有做好他们的工作。相反,这些结果强调需要在所有内部和外部供应商之间扩展软件完整性标准。开发人员测试,包括静态分析等技术,可以通过让供应商控制每行代码的最大缺陷数量来确保这些标准。