在竞争激烈的数字经济时代,企业要求开发人员既要构建更优质的代码,又要加快速度。软件产品也在加快迭代,开发人员面临很大的压力。开发人员希望能有一款解决方案可以帮助他们以满足业务需求的速度构建可信软件。
Linx Printing Technologies在英国剑桥郡,历史可以追溯到1987年。经过30多年的发展,该公司的喷码与标识设备已经销往全球90多个国家及地区。
挑战:帮助Linx开发人员构建更高质量的代码
Omara Williams是Linx公司软件工程经理,领导嵌入式软件团队,负责Linx产品上运行的软件质量和安全。
Omara Williams介绍到:“我们需要这款嵌入式软件能够实时运行,这面临着许多挑战。例如,需要全天候与生产线保持通信,在几乎所有情况下,Linx打印机和软件都需要不间断地正常运行。停机可能会导致生产线运作中断、产品标签产生错误,最终导致客户蒙受经济损失。”
解决方案:借助Coverity静态应用安全测试制定“零缺陷”策略
Omara Williams的首要任务是通过制定“零缺陷”策略,使团队使用的软件尽可能稳定和安全。在这之前,他们需要先解决掉一些难题。
她指出:“我曾经使用过新思科技的Coverity静态应用安全测试,可以帮忙解决软件安全和质量缺陷问题。但首先,我必须说服Linx管理层,Coverity静态应用安全测试是一项高回报的投资。随即,我向主管重点概述了软件运行的现状以及面临的挑战;这些挑战在未来可能会导致代码稳定性问题;以及如何使用Coverity静态应用安全测试来识别这些问题。最终,他了解到其中的好处,并决定在公司部署Coverity静态应用安全测试。”
同时,还有有一些阻力来自Linx软件开发人员。Omara Williams本身是一名软件开发人员,对此不足为奇。与大多数开发团队一样,Linx团队的重点是快速生成代码,因此他们通常拒绝引入任何可能减缓开发过程的应用。但是Omara Williams深知Coverity静态应用安全测试可以帮助Linx开发人员识别关键的软件质量缺陷,以便在开发周期初期就修复这些缺陷,并仍能达到业务发展所需的速度。
Omara Williams表示:“是的,采用新的应用会产生 ‘这会让我们慢下来’、‘会有太多的误报’的顾虑。但我们都认同这一点:我们的当务之急是Linx打印机需要满足客户生产线的要求,客户应该相信Linx打印机上运行的软件是稳定、安全和准确的。我与开发团队每周召开会议,与他们一起审查Coverity静态应用安全测试对代码的分析。他们了解到Coverity静态应用安全测试是一个有用的工具,可以帮助他们更快地编写更可信的代码。我们的下一步是将代码缺陷降至零。”
效果:编码缺陷显著减少
Omara Williams团队使用Coverity静态应用安全测试发现编码缺陷,并及时进行修复。他们对实现“零缺陷”目标的信心增强了。
Omara Williams 说:“我们将Coverity静态应用安全测试整合到Jenkins CI/CD渠道中。我们每天都运行Coverity静态应用安全测试,每晚都查看扫描结果汇总。Coverity静态应用安全测试还与我们的Jira bug追踪系统集成。当Coverity发现缺陷时,会创建一个相关的Jira票证来追踪其修复进度。”
Omara Williams接着说:“我们基于Feature Branching工作流开展工作。开发人员在开发新功能时会开启代码的一个新分支。在功能分支通过Coverity静态应用安全测试并获得批准之前,我们不会提交给开发分支。只有通过扫描合格后,我们才能将其合并到开发分支中,然后最终投入生产。”
Linx在2019年设定“零缺陷”目标,在2021年将其实现。随着代码的更改或新代码的引入,Coverity静态应用安全测试将继续帮助Linx识别和修复代码缺陷问题。迄今为止,Coverity静态应用安全测试已经帮Linx分析了170万行代码。在部署后第一年,Coverity静态应用安全测试发现的问题中,有97%得到了解决。在接下来的24个月里,Coverity静态应用安全测试帮助Linx将软件风险控制在极低的水平。
Omara Williams赞赏到:“效果很喜人。凭借Coverity静态应用安全测试,开发人员能及时发现编码错误,更高效地编写代码。一开始,大家担心Coverity会降低开发速度或产生大量误报。而现在我们都把Coverity视为软件团队中的一员。得益于此,开发团队在将代码送去进行质量评估之前,就已经发现其中的问题并解决掉。”
Omara Williams总结道:“采用Coverity静态应用安全测试的项目非常成功,我们与新思科技的合作非常愉快。在过去36个月里,Linx取得了斐然的成绩,像是开启了一段令人难忘的软件安全之旅。在安装和维护期间,我们获得了新思科技技术人员和客户服务团队的大力支持。支持团队响应迅速,效率高,在规定的时间内回应了我们所有的请求。”