什么是游戏BUG??在仙侣奇缘2里.有
英文bug既指臭虫,也泛指所有虫类。
意指电脑系统的硬件、系统软件(如操作系统)或应用软件(如文字处理软件)出错。
来源嘛,参考这个
什么是bug?
臭虫的故事
有人曾这样比喻过摩尔定律造成的电脑技术的飞速发展:如果汽车工业像电脑工业那样高速发展的话,现在的汽车每小时可以跑一千公里,售价只有一元钱。 作者有一个反面的回应:幸好汽车工业没有像电脑那样发展。如果汽车像微机一样的不安全不可靠的话,地球上活着的驾驶员和乘客大概就不多了。试想一下,如果你在高速公路上行驶,突然方向盘、油门、刹车全部失灵,仪表上显示一条信息:
“你执行了非法操作,系统关机。 ”
这种可怕的景象,正是日常发生在我们每...全部
英文bug既指臭虫,也泛指所有虫类。
意指电脑系统的硬件、系统软件(如操作系统)或应用软件(如文字处理软件)出错。
来源嘛,参考这个
什么是bug?
臭虫的故事
有人曾这样比喻过摩尔定律造成的电脑技术的飞速发展:如果汽车工业像电脑工业那样高速发展的话,现在的汽车每小时可以跑一千公里,售价只有一元钱。
作者有一个反面的回应:幸好汽车工业没有像电脑那样发展。如果汽车像微机一样的不安全不可靠的话,地球上活着的驾驶员和乘客大概就不多了。试想一下,如果你在高速公路上行驶,突然方向盘、油门、刹车全部失灵,仪表上显示一条信息:
“你执行了非法操作,系统关机。
”
这种可怕的景象,正是日常发生在我们每一个微机用户身边的事。这种情形的出现是如此频繁,我们已经习以为常了。我们对“死机”这个名词已毫不陌生,并且知道要随时“存”一下自己的工作,比如正在编写的一个文件,正在计算的一个报表,正在输入的一个客户名录,正在创建的一个网页等等
但是,当一个新用户第一次用电脑时,恐怕会被这个情形吓一大跳。
作者曾亲身经历过一件事。有一天晚上,作者去看一个朋友,他正在试用新买回来的一台个人电脑。他按了一个键,系统突然死机,隔壁的楼房也在同时停电。朋友吓出了一身冷汗。他以为是他搞死了电脑,拖累得隔壁楼房也掉了电
其实,这些现象根本不是用户的错,是系统的“臭虫”发作。
如果要怪谁的话,应该怪电脑的硬件或软件厂商。
所谓“臭虫(Bug)”,是指电脑系统的硬件、系统软件(如操作系统)或应用软件(如文字处理软件)出错。硬件的出错有两个原因,一是设计错误,一是硬件部件老化失效等。
软件的错误全是厂家设计错误。那种说用户执行了非法操作的提示,是软件厂商不负责的胡说八道。用户可能会执行不正确的操作,比如本来是做加法但按了减法键。这样用户会得到一个不正确的结果,但不会引起臭虫发作。
软件厂商在设计产品时的一个基本要求,就是不允许用户做非法的操作。只要允许用户做的,都是合法的。用户根本就没有办法知道厂家心里是怎么想的,哪些操作序列是非法的。
从电脑诞生之日起,就有了电脑臭虫。
第一个有记载的臭虫是美国海军的编程员,编译器的发明者格蕾斯·哈珀(Grace Hopper)发现的。哈珀后来成了美国海军的一个将军,领导了著名计算机语言Cobol的开发。
1945年9月9日,下午三点。
哈珀中尉正领着她的小组构造一个称为“马克二型”的计算机。这还不是一个完全的电子计算机,它使用了大量的继电器,一种电子机械装置。第二次世界大战还没有结束。哈珀的小组日以继夜地工作。机房是一间第一次世界大战时建造的老建筑。
那是一个炎热的夏天,房间没有空调,所有窗户都敞开散热。
突然,马克二型死机了。技术人员试了很多办法,最后定位到第70号继电器出错。哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。
她小心地用摄子将蛾子夹出来,用透明胶布帖到“事件记录本”中,并注明“第一个发现虫子的实例。”[
从此以后,人们将计算机错误戏称为虫子(bug)或臭虫,而把找寻错误的工作称为“找臭虫”(debug)。
哈珀的事件记录本,连同那个飞蛾,现在陈列在美国历史博物馆中。
今天的电脑臭虫之多,是难以令人置信的。据电脑业界媒体报道,微软视窗98操作系统改正了视窗95里面5000多个臭虫。也就是说,当几年前视窗95软件推向市场时,每套里都含有5000个臭虫!全世界有数千亿个臭虫在我们的微机中飞来爬去,这就难怪我们的微机应用老会出问题了。
电脑含有这么多臭虫有一个技术原因,就是软件越来越庞大复杂。在任何复杂的大系统中,错误是难以避免的。大型软件尤其难以按时按预算完成。1995年,国外的一个大规模的研究调查了17万个软件开发项目(总投资达2500亿美元)。
结果发现,只有6%按时按预算完成,31%的项目被中途取消。其余53%的项目最终完成,但都超出了预算和进度。这些项目中,一大半项目的实际花费超出预算达189%
电脑程序是由语句组成的。据报道,视窗95含有1500万行代码。
假设每行代码包含一个语句,那么视窗95的潜在臭虫就会有200多万个(见下页规则4)。在出厂之前,微软做了大量测试。根据琼斯规则5,需要做18次测试才能把臭虫数降低到5000个。假设测试一次耗时一个月(实际上常常不止一个月),那也需要一年半的时间。
如果要把臭虫个数降到1,总共需要做42次测试,或三年半还多的时间。当然,微软的视窗95建筑在视窗3。1版多年的开发和使用基础上,并不是完全从头做起,用不了这么多时间。但不论怎么算,测试和纠正臭虫的成本都是很大的。
琼斯先生(Capers Jones)评价软件项目的简单规则发表在《IEEE Computer》杂志上(1996年第3期)。琼斯先生申明这些简单的规则难以精确地评估现实的软件开发项目,仅供参考。
函数点=语句数/100
规则1 文档页数 = 函数点1。15
规则2 需求规范的改变不宜超过每月1%的速度
规则3 测试用例数 = 函数点1。2
规则4 潜在臭虫数=函数点1。25
规则5 每次查错工作(检查或测试)能发现并修正30%的现有臭虫。
规则6 开发所需月数 = 函数点0。4
规则7 开发所需人数 = 函数点 / 150
规则8 维护所需人数 = 函数点 / 500N`
规则9 预计软件使用年数 = 函数点0。25
规则10 一个人月的实际工作小时数=每月22天×每天6小时,即一个人月实际工作时间=每月132小时
其实,人们并不是不可以更好地对付臭虫。
斯坦福大学的唐纳德·克鲁思教授(Donald Knuth,他自己取的中文名字是“高纳德”)就是创造高质量软件产品的典范人物。他在80年代初开发的计算机排版软件TeX在世界范围内广泛使用,而且非常稳定。
作者曾多年使用TeX,从来没有遇到过臭虫。高纳德教授的TeX软件还有一个创举:他在发布这个自由软件时明确宣布,他将对软件负责。对每一个臭虫,他将奖励第一个发现者1美元。
我们可以说,世界上像高纳德教授这样的人不多。
他毕竟是一个超级程序员,一个图灵奖获得者,一个天才,又有非常优秀的科学训练和素养。而且,他的程序是开放源码的自由软件,全世界都在帮他找错。但是,我们能不能学习他那种科技人员的敬业精神,学习他那种敢于为自己的产品负责的气魄呢?就是高纳德教授这样的人也是会犯错误的。
"
1999年12月,《美国科学家》杂志评选出“塑造20世纪科学的100本书”,高纳德教授的著作也榜上有名。他在1968年出版的《计算机程序设计的艺术》一书,与爱因斯坦的《相对论》、维纳的《控制论》、狄拉克的《量子力学》等被列为20世纪最有影响的12部科学专著。
高纳德教授对这部600多页的专著采取了同样的奖励方法。每一个错误的第一个发现者将获得2。56美元的奖励。不断有人给他写信报告错误。到了1981年,高纳德教授忙于开发TeX, 实在没有时间回信。
于是他向所有报告者发了一封标准信,称以后会给他们联系。高纳德教授说,“我可能很慢,但我信守我的承诺。”到了1999年,高纳德教授终于腾出时间回了所有信件,并汇出125张支票。由于时过境迁,有几封信被退回来了,其中有一封是从中国上海发出的。
如果你的名字是Du Xiao Wei,在1982年6月10日向高纳德教授发信指正过他书中的错误,高纳德教授还有一张支票等着寄给你!高纳德教授的网址是:
下面是作者与高纳德教授的一次通信
克鲁思教授,
我是中科院计算所的一名研究员,正在写一本有关电脑的科普书。
我知道您在推出TeX软件时,曾悬赏1美元给第一个发现任何臭虫的人士。不知二十年下来,人们发现了多少TeX的臭虫?
谢谢。
徐志伟
徐先生,
事实上,我的悬赏是每个错误2。56美元,每年翻一番,直到327。
68美元,然后就保持在这个水平。这个悬赏今天还存在。但是,这么多人已经检查过我的程序了,它可能是同等规模软件中错误检查做得最彻底的程序。
我的记忆是大概有四、五个人在327。68美元的水平找到了错误。
TeX软件的全部错误记录已经发表在《软件实践与经验》杂志中。在20多年的时间内,我记录了总共1276个臭虫的纠正和功能改进。我总共开出了大约4000美元的支票,但是很多人都没有把寄给他们的支票兑现。
我实际付出的赏金大约是2000元左右。
我也悬赏在我出版的任何书中发现错误的人,奖金为每个错误2。56美元。这样可以帮助我在每一次印刷时改进质量。
如果软件公司愿意奖赏为它们的软件找到臭虫的人,那该多好啊。
尤其是如果软件是开放源码的……
诚挚的,
唐·克鲁思
。收起