爱问知识人 爱问教育 医院库

什么是bug?

首页

什么是bug?


        

提交回答
好评回答
  • 2007-03-27 18:32:29
    程序错误,即英文的Bug,也称为缺陷、臭虫,是指在软件运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象。
    早期的计算机由于体积非常庞大,有些小虫子可能会钻入机器内部,造成计算机工作失灵。史上的第一只 "Bug" ,真的是因为一只飞蛾意外走入一电脑而引致故障(如图所示),因此Bug从原意为臭虫引申为程序错误。
    一些有趣的Bug有时也会成为一种乐趣。在电脑游戏中,一些Bug,假如不令游戏出现大错误的话,经常会变成一种玩游戏时的秘技。
    

    b***

    2007-03-27 18:32:29

其他答案

    2007-03-27 18:30:28
  • 通常说就是 问题,漏洞
    比如软件调试、测试中出现bug,就是指出了问题,或漏洞的意思

    1***

    2007-03-27 18:30:28

  • 2007-03-27 18:30:04
  •   英文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美元。这样可以帮助我在每一次印刷时改进质量。 如果软件公司愿意奖赏为它们的软件找到臭虫的人,那该多好啊。
      尤其是如果软件是开放源码的…… 。

    有***

    2007-03-27 18:30:04

  • 2007-03-27 18:29:34
  •   ■什么叫bug
    所谓“(Bug)”,是指电脑系统的硬件、系统软件(如操作系统)或应用软件(如文字处理软件)出错。一般意义上的理解bug是问题、错误、缺陷、漏洞的同义词!Bug在英文里,原意是指虫子;在中文里面,至今仍没有与“Bug”准确对应的词汇,于是只能直接引用“Bug”一词。
      虽然也有人使用“臭虫”一词替代“Bug”,但容易产生歧义,所以推广不开。 硬件的出错有两个原因,一是设计错误,一是硬件部件老化失效等。软件的错误全是厂家设计错误。那种说用户执行了非法操作的提示,是软件厂商不负责的胡说八道。用户可能会执行不正确的操作,比如本来是做加法但按了减法键。
      这样用户会得到一个不正确的结果,但不会引起bug发作。软件厂商在设计产品时的一个基本要求,就是不允许用户做非法的操作。只要允许用户做的,都是合法的。用户根本就没有办法知道厂家心里是怎么想的,哪些操作序列是非法的。 ■bug的来历 从电脑诞生之日起,就有了电脑BUG。
      第一个有记载的bug是美国海军的编程员,编译器的发明者格蕾斯·哈珀(Grace Hopper)发现的。哈珀后来成了美国海军的一个将军,领导了著名计算机语言Cobol的开发。 1945年9月9日,下午三点。哈珀中尉正领着她的小组构造一个称为“马克二型”的计算机。
      这还不是一个完全的电子计算机,它使用了大量的继电器,一种电子机械装置。第二次世界大战还没有结束。哈珀的小组日以继夜地工作。机房是一间第一次世界大战时建造的老建筑。那是一个炎热的夏天,房间没有空调,所有窗户都敞开散热。 突然,马克二型死机了。
      技术人员试了很多办法,最后定位到第70号继电器出错。哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她小心地用摄子将蛾子夹出来,用透明胶布帖到“事件记录本”中,并注明“第一个发现虫子的实例。”[1] 从此以后,人们将计算机错误戏称为虫子(bug),而把找寻错误的工作称为(debug)。
       。

    1***

    2007-03-27 18:29:34

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):