来自我的其他的blog
最近一直再改bug,Bugzilla有个笑话供大家参考,如果虫子可以当药材卖,高价,而且又要保证在短期内保证棉花地离没有虫子,延期罚款,你希望怎样?虫多还是虫少?
程序员在开发软件的同时,也制造了bug,这些bug靠测试人员发现,正常的是测试员的开发人员的两倍,目前的公司恐怕只有开发人员二分之一不到,人手严重不足,测试人员的水平要高于开发人员,现在的测试人员一般是才毕业的漂亮MM,水平跟不上。
一般来说中国做软件分为两类:
一是做项目,这类公司一般是项目紧,任务急,十一,七一献礼的比较多,造成项目的需求不明确,就开始编码,然后大家一直忙忙碌碌的编码,没有时间进行代码的审核。由于需求的不明确,造成后期一边定需求,一边做开发,需求的更改造成业务流程的变动,业务流程的变动造成软件架构的变动,软件架构的变动造成代码的大面积修改,也就出现了bug的不断。测试人员难以有时间测试,bug很难得到及时的处理,更有甚者,以前修改的bug,在项目本版本的升级中又会reopen。最后大家开始学习微软,这个版本没有实现的需求,下个版本实现,如果打算使用,请使用下一个版本,结果下一个版本又开始一个循环,周而复始,这样的话一个项目可以做几年,换了一拨有一拨的程序员和项目经理,其实就是中国足球,是"年年岁岁花相似,岁岁年年人不同",成“烂尾工程”。
另一种是产品,bug也是不少,不过这种公司大概有两类,
一种是程序员要保留足够的bug,由于产品做完之后,处于一定时间的稳定期,这时不需要大量的开发人员,只需要维护人员,而且由于产品做完之后,还要给奖金什么的,公司划不来,为了降低开发成本,公司开始鸟尽弓藏,兔死狗烹,卸磨杀驴,一个部门一条生产线的开除。处于弱势的程序员,昼夜加班眼睛的血丝还没有褪去,为了不让眼睛再次流泪,就要保留一部分难以处理的bug,此时只有bug才是他们的衣食父母,debug是他们的稻米钱粮。这样他们才能生存。
后面的一种为了抢占市场,时间很紧急,加上软件开发的项目一般会延期,这就占了测试的时间,产品不可能延期上市。造成了很多情况不能全部测试,例如硬盘没有空间数据库的反应,内存不能分配,程序的问题,cpu100%接收网络数据包的状态等等,这造成了产品的bug。
一般来说,程序的80/20准则,20%的代码处理正常情况,80%的代码处理异常情况。如果实现一个功能有40行代码,处理各种情况,理论没有bug的代码是200行,一般的程序员就写40-60行,测试人员一测发现bug,再加上20行到40行,好的测试人员测试,代码可以写到100多行,这就不错了,但是里面的交流和开发的成本是较高的,如果是一个资深程序员,可能一次就写到180行,测试人员难以发现bug。如果测试人员认为一个熟练程序员和一个新手写的程序都没有bug,以后的情况可能会不相同,注意一个程序在测试的时候bug最多,作为产品发布后还是它的bug最多。
举个M$的例子,微软在90年代后期,有两只team开发人员确实很厉害,一个是vc的开发,在windows开发不断推迟发布的时候,vc可以实现提前预定,vc team的素质确属一流,其中也有borland的功劳,据说当时40%都是borland过去的人。还有一个是IE开发组,由于bill的失误,netscape的网景抢了先机,但是bill召集微软最顶级的精英组成了这个team,这个team没有给MS丢人,成了windows和Office最强的辅助工具,直到5.5之前,很少有bug。总而言之,启明星辰10多年的经验,告诉我们,“好的产品是写出来的,不是测出来的。”
有个这样个比喻:完全指望测试去保证项目质量,就好像靠砖头敲墙来保证大楼的质量。
阅读(489) | 评论(0) | 转发(0) |