2006/01/12 | 什么是BUG及其来源
类别(My Life) | 评论(0) | 阅读(563) | 发表于 21:43
什么是BUG及其来源
所谓"(Bug)",是指电脑系统的硬件、系统软件(如操作系统)或应用软件(如文字处理软件)出错。硬件的出错有两个原因,一是设计错误,一是硬件部件老化失效等。软件的错误全是厂家设计错误。那种说用户执行了非法操作的提示,是软件厂商不负责的胡说八道。用户可能会执行不正确的操作,比如本来是做加法但按了减法键。这样用户会得到一个不正确的结果,但不会引起bug发作。软件厂商在设计产品时的一个基本要求,就是不允许用户做非法的操作。只要允许用户做的,都是合法的。用户根本就没有办法知道厂家心里是怎么想的,哪些操作序列是非法的。

从电脑诞生之日起,就有了电脑BUG。第一个有记载的bug是美国海军的编程员,编译器的发明者格蕾斯·哈珀(Grace Hopper)发现的。哈珀后来成了美国海军的一个将军,领导了著名计算机语言Cobol的开发。

1945年9月9日,下午三点。哈珀中尉正领着她的小组构造一个称为"马克二型"的计算机。这还不是一个完全的电子计算机,它使用了大量的继电器,一种电子机械装置。第二次世界大战还没有结束。哈珀的小组日以继夜地工作。机房是一间第一次世界大战时建造的老建筑。那是一个炎热的夏天,房间没有空调,所有窗户都敞开散热。

突然,马克二型死机了。技术人员试了很多办法,最后定位到第70号继电器出错。哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她小心地用摄子将蛾子夹出来,用透明胶布帖到"事件记录本"中,并注明"第一个发现虫子的实例。"[1]

从此以后,人们将计算机错误戏称为虫子(bug),而把找寻错误的工作称为(debug)。

哈珀的事件记录本,连同那个飞蛾,现在陈列在美国历史博物馆中。

今天的电脑BUG之多,是难以令人置信的。据电脑业界媒体报道,微软视窗98操作系统改正了视窗95里面5000多个bug。也就是说,当几年前视窗95软件推向市场时,每套里都含有5000个bug!全世界有数千亿个bug在我们的微机中飞来爬去,这就难怪我们的微机应用老会出问题了。

电脑含有这么多bug有一个技术原因,就是软件越来越庞大复杂。在任何复杂的大系统中,错误是难以避免的。大型软件尤其难以按时按预算完成。1995年,国外的一个大规模的研究调查了17万个软件开发项目(总投资达2500亿美元)。结果发现,只有6%按时按预算完成,31%的项目被中途取消。其余53%的项目最终完成,但都超出了预算和进度。这些项目中,一大半项目的实际花费超出预算达189%。

电脑程序是由语句组成的。据报道,视窗95含有1500万行代码。假设每行代码包含一个语句,那么视窗95的潜在臭虫就会有200多万个(见下页规则4)。在出厂之前,微软做了大量测试。根据琼斯规则5,需要做18次测试才能把臭虫数降低到5000个。假设测试一次耗时一个月(实际上常常不止一个月),那也需要一年半的时间。如果要把bug个数降到1,总共需要做42次测试,或三年半还多的时间。当然,微软的视窗95建筑在视窗3.1版多年的开发和使用基础上,并不是完全从头做起,用不了这么多时间。但不论怎么算,测试和纠正bug的成本都是很大的。
0

评论Comments

日志分类
首页[116]
Flash&AS2[56]
FMS[3]
Flex&AS3[5]
Asp[5]
My Works[13]
My Life[34]