技术开发 频道

软件质量需求提高 小Bug蕴含测试大市场

【IT168 技术文章】

   软件中的Bug 是指操作系统或应用软件程序的错误或缺陷。随着软件规模的扩大,软件的复杂程度也不断提高,软件Bug 的数量也成比例增加,由此产生的危害日益加剧。

   因此,从某种程度上说,软件产品的竞争已经不是技术的先进与否,而是软件的质量是否稳定,是否含有更少的Bug 的竞争。随着对软件质量需求的不断增强,研究软件Bug 的产生原因,从而有效地发现、修正和预防Bug 成为软件行业日益重视的课题。

   有一个美丽的传说

   IT界流传着关于软件Bug 的名称起源的多个版本,其中流传最广的是Grace Hopper在计算机的继电器中发现一只“飞蛾”导致计算机死机的传说。

   故事发生在1945年9月9日,下午3点。一个炎热的夏天,房间没有空调,所有窗户都敞开散热。Grace Hopper中尉正领着她的小组构造一个称为“MARK II”的计算机。这还不是一个完全的电子计算机,它使用了大量的继电器(一种电子机械装置)。Hopper的小组日以继夜地工作,机房是一间第一次世界大战时建造的老建筑。

   突然,MARK II死机了。技术人员试了很多办法,最后定位到板子F第70号继电器出错。Grace Hopper观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她小心地用摄子将蛾子夹出来,用透明胶布帖到“事件记录本”中,并注明“第一个发现虫子的实例。”,然后计算机又恢复了正常。从此以后,人们将计算机错误戏称为虫子(Bug)或臭虫,而把找寻错误的工作称为“找臭虫”(Debug)。Grace Hopper的事件记录本,连同那个飞蛾,现在陈列在美国历史博物馆中。

   这个流传最广的版本,故事的真实性尚有待于进一步考证,但是Bug这一术语本身的简洁和恰当远比这个故事深刻。
  
    Bug 一词一般用来指代昆虫以及节肢动物,特别是指一些有害臭虫。在自然界,它们经常是人类的主要竞争者。科学家推测,如果人类灭绝,Bug将成为这个星球的主宰生命。据《圣经》所言,上帝降临埃及将犹太人从奴隶制度中解放出来时,带来了10种灾难。其中3种都是Bug,包括臭名昭著的蚊子、苍蝇和蝗虫,这些Bug叮咬我们的肉体,毁坏我们的房屋,吞噬我们的庄稼,并且将很多疾病传染给我们。

   与自然界的Bug具有特别类似特征的是软件中的Bug,从人类第一次开发软件开始,软件中的Bug一直以极其相似的方式折磨着人们。软件中的Bug如同自然界的Bug,它们无处不在,几乎所有的软件都有Bug。当我们遇到这些Bug时,它们同自然界中的Bug一样使我们惶惶不安,甚至陷入深深的痛苦之中。

   因此,如同自然界的害虫带来对人们的深深伤害一样,称软件的错误或缺陷为Bug,已经成为软件界倍感棘手的老大难问题,这可作为软件Bug名称来源的另一个版本。

   都是Bug惹的祸

   人们对软件Bug的心态是既敬畏又憎恨,主要是因为软件Bug经常潜藏于无形之中,而一旦发作轻则引起数据丢失,重则物毁人亡,造成生命和财产的巨大损失。且看一组近期发生的与软件Bug有关的真实事例。

   软件大佬比尔·盖茨遭遇软件Bug尴尬。大名鼎鼎的比尔·盖茨是何等显赫的人物,但是软件Bug从来六亲不认,根本不买他的账,使得软件大佬在演讲现场遭遇软件Bug引起计算机死机,真是“华佗无奈小虫何”。据外电报道,在CES 2005展会第一天,比尔介绍了微软的“无缝计算”战略,但就在演示的时候,可爱的Windows又出现了蓝屏,引起观众的哄笑。接下来在90分钟的演示中,一名产品经理演示了一款看起来属于用户友好的视频游戏Forza Motor Sport,游戏没有按照用户设置的要求进入赛车游戏,而是电脑显示器显示蓝屏死机和“系统内存溢出”的警告。实际上,硬件故障和软件Bug,已经在很大程度上浇灭了用户追求数字生活的激情。

   软件Bug引起北美地区大面积停电事故。著名安全机构SecurityFocus的数据表明,2003年8月14日发生的美国及加拿大部分地区史上最大停电事故是由软件错误所导致。SecurityFocus的数据表明,位于美国俄亥俄州的第一能源(FirstEnergy)公司下属的电力监测与控制管理系统“XA/21”出现软件错误,是北美大停电的罪魁祸首。根据第一能源公司发言人提供的数据,由于系统中重要的预警部分出现严重故障,负责预警服务的主服务器与备份服务器接连失控,使得错误没有得到及时通报和处理,最终多个重要设备出现故障导致大规模停电。

   导航软件Bug使俄罗斯飞船偏离降落地。2003年5月4日,搭乘俄罗斯“联盟—TMA1”载人飞船的国际空间站第七长期考察团的宇航员们返回了地球,但在返回途中,飞船偏离了降落目标地点约460公里。据来自美国国家航空航天局的消息称,这是由飞船的导航计算机软件设计中的错误引起的。

   其实,软件Bug造成重大事故的例子不胜枚举,由此造成的损失每年接近600亿美元。2002年6月28日,美国商务部的国立标准技术研究所(NIST:National Institute of Standards and Technology)发表了有关软件缺陷的损失调查报告。报告表示,“据推测,由于软件缺陷而引起的损失额每年高达595亿美元。这一数字相当于美国国内生产总值的0.6%”。
   
    软件Bug虽然仅是一只“小虫”,但说软件Bug猛于虎,确实千真万确。随着软件在社会生活中的不断渗透,特别是各种嵌入式软件在各种智能电器的应用,软件Bug造成的损失将会更大,对此,应该引起人们足够的警惕并采取一个可能措施,将损失降低到最小程度。警惕呀,软件Bug!

0
相关文章