软件开发人员也是人,这就是说,高级的应用程序代码也可能包含错误和漏洞。因此,每个软件开发过程都应该对新应用程序代码进行漏洞扫描。但并不是所有开发人员都采取相同的方式来发现漏洞,并且很少有开发人员能够捕捉所有代码漏洞。
编码错误的影响非常严重。在2013年,通用电气公司监控软件中的一个漏洞导致电源被切断,估计影响了5千万用户。最近,Knight Capital的计算机错误地执行了一系列自动股票订单,导致该公司面临破产。而HTC美国公司在修改其Android上的软件后,面临着美国联邦贸易委员会的民事诉讼,另外,Windows手机也带来了很多安全漏洞。
向市场推出新产品的压力让开发人员不得不加速应用程序开发,而这导致了更多的错误。例如,在***发布时,苹果的地图应用充满了错误,损害了苹果的声誉,让苹果***执行官Tim Cook不得不公开道歉。
然而,虽然复杂的应用程序中的漏洞问题是严重问题,但这并不意味着我们不能解决这些问题。企业可能永远无法达到完全没有错误的境界,但他们可以将这作为其目标。而实现这一目标的关键之意就是在应用程序开发过程整合漏洞管理。
根据剑桥大学的***研究现实,调试软件的全球成本已经上升到每年3120亿美元,软件开发人员平均花费50%的时间来讨论、发现、解决和调试软件漏洞问题。另外,与修复软件相关的不太明显的成本是:错过和不可靠的截止日期、加班和重复工作、客户心怀不满、声誉受损,甚至法律诉讼。
微软等公司的研究和经验表明,想要避免这些问题,并且控制所有开发时间和成本,最有效的方法就是减少在开发期间的编码错误数量,并尽早发现在应用开发生命周期出现的问题。要知道,在应用程序发布后发现漏洞的成本是开发期间的30倍。