想写出没有bug的软件太难。
而Bug可能只是网站上的字母的错误,也可能是宇宙飞船爆炸,甚至是核电厂发生故障的严重事故。有时仅仅是影响人们的体验,有时确实严重威胁人类的生命安全。
有人参与,就可能犯错,错误会来源于团队成员对于同一需求的理解不同,每个人对技术的掌握程度不同,人有情绪,有疲惫,都可能造成错误,引入Bug。虽然软件技术的发展,使得软件开发人员使用高度分装的框架,被广泛证明成功的程序库,极大减少自己写软件时犯的错误。典型的如Ruby On Rails的使用,很大程度上提升开发人员开发高安全标准的网站。然而,抽象漏洞定律指出,“所有不证自明的抽象,在某种程度上,都是有漏洞的。” 并不是说,我们在这些高级的框架和之上写程序就完事大吉了,而是,我们在利用这些高级抽象工具时,并没有时间深入理解里面的细节,从而,可能导致更为严重的设计错误。
而上一篇什么是软件测试已经讲到,软件测试的重要内容就是发现错误,找bug,因此,软件测试与软件开发就想人和人的影子,有软件开发的地方就需要测试。
不过,往深了讲,软件测试的力度可大可小,就像影子,人一样,影子的长短却可能不一样长。相对应,软件的复杂度不变,需要的软件测试的程度也是不同的,因为软件产品所服务的对象与所做的事情不同。如果这个软件仅仅是一个demo程序,或者一个实验,而且程序的使用者仅仅是为了看看效果,对质量要求不高,我们很可能简单验证一下。但是对于医疗,航天,核电等领域的软件产品,无论如何,我们都必须全力以赴进行测试。
总之,软件测试对于软件开发的重要性取决于,出现bug时对软件产品造成的影响的严重程度。
网友评论