我强烈的意识到,生命中剩下的好日子,都将耗费在给自己的程序找错误上头。
Bug的定义
Bug一词的英文原意是“臭虫”或“虫子”。但对程序员来讲,Bug意味着错误、缺陷、问题、漏洞、未按需求实现、不符合需求预期或延伸等等等……那么,Bug究竟是什么呢?
我媳妇是搞测试的,软件测试这块最著名的一本书就叫做《Software Testing(软件测试)》,它里面是这么描述BUG的:
“The software doesn't do something that the product specification says it should do.
The software does something that the product specification says it shouldn't do.
The software does something that the product specification doesn't mention.
The software doesn't do something that the product specification doesn't mention but should.
The software is difficult to understand, hard to use, slow, or in the software tester's eyes will be vIEwed by the end user as just plain not right.”
作为开发人员,当然要看得懂E文了……
其实还有一个粗暴点儿的说法:BUG就是错误。
Bug是怎么来的
《圣经》中有“义人”这个说法,我们有“人无完人,金无足赤”的说法……
人是妈妈生出来的(女娲造人时除外)——你看我总是加各种说明以便堵住漏洞,这样写文章真是很累……这实在是和我的开发习惯有关:我总是习惯防御性编程,预先考虑各种错误,在编码期间就努力消除它们发生的条件……
我们说,人是人他妈生的,妖是妖他妈生的,而软件是程序员生的。
爸爸妈妈在备孕时,很多爸爸会戒烟戒酒戒加班,所谓封山育林也。妈妈会补叶酸测排卵期计算最佳受孕时间……总之一句话,优生优育。可是,孩子出生后依然会有毛病,随着孩子长大,各种毛病都会显现出来。有的孩子有先天缺陷,比如原发性高血压、先天性心脏病、兔唇、痴呆、智障……有的孩子长着长着有毛病了,近视、斜视、小儿麻痹、跛脚、自闭症……作为父母,这都是我们很难接受的事实,可是必须面对和接受。
软件是程序员的孩子,在生它之前,你可曾封山育林、可曾熟悉自己的生理周期?哇哈哈哈哈,太扯淡了不是!包不同(《天龙八部》中慕容复四大家臣之一,非常有趣)摇摇头说,非也非也。然也!开发软件其实也要经历这些过程,更重要的是,我们一定要意识到:
程序员在生产软件,也在生产BUG!
再牛逼的程序员,写出来的软件也有BUG。BUG就是软件与生俱来、不可脱逃的好基友,就在那场说走就走的旅行的一开始,它们就情根深种难分难舍了……
So,Bug是程序员写出来的……
不管你愿不愿意承认,事实就是这么令人沮丧。连Maurice Wikes都承认了这一点,你就别倔犟了吧亲。
程序员对Bug的态度
每个程序员都是不同的……
绝对不可能……
测试MM对阿猿说发现了一个Bug。
阿猿矢口否认:不可能,绝对不可能!
MM:真的有Bug,你过来看一下!
阿猿:我都不用看,在我这儿好好儿的。
MM:你来看一下嘛……
阿猿:看什么看,我都测过的,绝对没问题。
伴随着凳子响,阿猿不情愿的起身,脸上不耐烦的表情,心理却嘀咕着怎么回事儿呢这是……
过了一阵儿,阿猿不好意思的声音响起:真没想到是这儿的问题……你怎么测的……一般用户都不会这么用的……
耶,你找到Bug啦
测试MM袅袅婷婷地走到阿猿跟前,小声说:你来我这里看个现象。
阿猿:好,马上来。
阿猿立马起身跟MM走了,过了一会儿,响起阿猿的声音:哇,你太厉害了,这种问题都被你发现了,我测了很长时间都没测出来,太好啦!
然后大家看见阿猿脚步轻快地走回工位,边走边频频点头,两只手像得了帕金森一样来回划拉,嘴里神神叨叨的念念有词……
结果到工位上时,阿猿一拍额头,小声说:知道啦,原来是这样。
过了两分钟,阿猿找MM说:问题解决了,是这么这么回事儿……
MM一脸崇拜的看着阿猿:你太厉害了,这么快就解决了!然后小声说:大家都像你就好啦……
阿猿说:有什么问题立即叫我看。
我很忙,没空管Bug
测试MM想在jira上提个Bug,先在QQ上对阿猿说:有个Bug,你过来看下?
阿猿:忙着呢,焦头烂额的。
MM:一分钟都用不了,你来看下吧。
阿猿:思路一打断就不好恢复了,等会儿!
MM:你不看我提到jira上了啊。
阿猿:随便,你不就是爱提Bug嘛。
……
One day,团队revIEw Bug,TL问阿猿:这个Bug怎么回事儿?
阿猿挠挠头:我也不知道啊。转身问MM:咋回事儿,提Bug也不通知我一声儿,我都不知道怎么回事儿。
MM:当时给你说你没时间看,后来……
阿猿:行啦行啦,我待会就看,以后提Bug要通知我一声。
MM无话可说,只能用满含幽怨的眼睛锁定阿猿,直到阿猿别过头去……
都是需求的错?
阿猿收到了来自jira的邮件,他被告知有一个Major级的Bug,看了之后,黎叔很生气,后果很严重——阿猿转身就喊:MM,怎么回事啊你,给我提了个Major级的Bug,明明是需求问题啊!
MM赶紧过来确认:哪个Bug?
阿猿气呼呼地一指电脑屏幕:就这个,需求问题,你仔细看看,别老给我整这种Bug。
MM:咱们找需求文档看看……
……
MM:你看,需求是这样描述的……
阿猿:需求描述有问题,实现起来太复杂了,也没意义,谁会这么用啊。
MM:我是按需求写的用例……要不咱们和产品经理一起讨论一下?
阿猿:算啦算啦,麻烦,先不管啦,到时再说!
……
还没好,怎么会!
关注天下网吧微信,了解网吧网咖经营管理,安装维护:
本文来源:不详 作者:佚名