海归网首页   海归宣言   导航   博客   广告位价格  
海归论坛首页
会员列表 
收 藏 夹 
论坛帮助 
登录 | 登录并检查站内短信 | 个人设置 论坛首页 |  排行榜  |  在线私聊 |  专题 | 版规 | 搜索  | RSS  | 注册 | 活动日历
主题: [原创]创业日记-227 (软件的零缺陷,网络及非连续系统)
回复主题   printer-friendly view    海归论坛首页 -> 海归商务           焦点讨论 | 精华区 | 嘉宾沙龙 | 白领丽人沙龙
  阅读上一个主题 :: 阅读下一个主题
作者 [原创]创业日记-227 (软件的零缺陷,网络及非连续系统)   
data_scrubber




头衔: 海归准将

头衔: 海归准将
声望: 讲师

加入时间: 2005/01/15
文章: 1237

海归分: 130921





文章标题: [原创]创业日记-227 (软件的零缺陷,网络及非连续系统) (2084 reads)      时间: 2012-3-27 周二, 15:47   

作者:data_scrubber海归商务 发贴, 来自【海归网】 http://www.haiguinet.com

94年我买了一台电脑除了标准的DOS和Windows系统外,我还用我费劲周折在周末用公司的T1网络下载并拷贝的28张Linux安装软盘安装了Redhat Linux,在那里我接触到了PGP
(Pretty Good Privacy),由Philip Zimmerman开发并在网络上公开的一种加密算法及软件。我这样的菜鸟程序员也很快就发现了这个软件的一些Bug,我忍不住给Zimmerman写了一封邮件报告这些问题,他没有回复,但在其后的一个版本中,其中一个问题不见了。当时的开源软件中Linux是核心,但是Bug非常多,我为了搭建自己的邮件服务器,买了一本O'Reily的《Sendmail》一书,整整800多页,很小的字体。花了我几个星期的时间才架好,免费提供给大学学生使用。我白天通过网络在公司里管理家里的这台邮件及Web服务器,晚上回家还要花几个小时Fix Bug,清理垃圾和日志。难用之极。


96年我在开发基于Windows CE的WebServer时碰到一个非常棘手的问题,查来查去,发现是Windows CE的Socket Write API存在内存泄露。我在温哥华,微软就在隔一条边境线的南边。有同事去微软出差谈商务,我编写了一个小程序可以演示Windows CE是如何泄露内存的给了同事带去。半年后的一个新Windows CE版本,这个问题消失了。这是非常严重的问题,还 Take Microsoft So long to fix.


一个在微软做Intern的朋友正好在Windows NT项目组做测试。他说NT的每一次Release都有3000多个Bug Outstanding (没有被Fix就这么出来了)。软件越复杂,Bug就越多。这是铁率。


那么Fix Bug就那么难吗?日本人不是能做到零缺陷吗?


我讲一个我自己Fix我自己的一个Bug的例子。我曾经写过一个Log服务器,专门用来在内存循环存储日志的服务,是跨平台的(同样代码可以在Windows NT和Unix平台上用)。写完后,我编写了自动测试程序对它进行压力测试(功能测试已经完成,一切OK)。程序跑了半小时后,服务器就崩溃了。而且是Windows平台下的没事,只有Unix平台下的崩溃。重新测试,结果一样 - 每次都是半小时后。找这个Bug证明是一件非常艰苦的事,Unix平台的Debug工具要比Windows平台的难用。这是多线程的服务器程序,Debug也因此更难。还有就是Bug要半小时后才出来,我有几个半小时可等啊?我花了整整一个星期,绞尽脑汁解决这个问题。代码一遍遍地看也找不出错在哪里。直到有一天,突然灵机一动,将一个计数变量从原来的Int类型重新定义为Unsigned Int,问题解决了!就这么简单。原来是,计数变量从0往上加,最终会达到定义的最大值,这时,Windows NT可以自动处理为回零继续另一轮循环,但是Unix却一下子变成负数了。这下引起内存寻址的混乱,指针越界,程序崩溃了。这是我Fix过的最难的一个Bug,而问题的解决靠的是“灵感”。


如果Fix程序Bug最终靠的是灵感,那这就是创造,不是工程了。你怎么可以要求艺术家零缺陷呢。日本人工程制造零缺陷,但是软件开发,我没有听说哪个国家,哪个公司,哪个程序员可以做到零缺陷。


软件是非线性,非连续系统,网络也是如此。非连续系统相比于连续系统在测试和质量检验方面就要复杂和艰难的多。你无论如何也不可能穷尽非连续系统的测试用例的。软件其实是一个在最大限度内实现较低缺陷率的准标准化产品。也因为如此,软件测试非常重要,是一门科学,也是一门艺术。在微软我招聘软件测试工程师时,出的题目非常简单,但是要看对方能否想出更多的需要测试的点,方法。想象力比经验更重要。输入整数,零,负数,浮点数,不同的顺序,不同版本的操作系统,浏览器,同时操作,减少内存,硬盘满了,同时跑其他程序,应用,拔电源。因为,一个工具,一个产品,只有在质量上乘,当然最好时零缺陷的时候才会有更多的用户使用。用户不懂,也不关心,这个系统是不是异常复杂。质量,没有借口。

作者:data_scrubber海归商务 发贴, 来自【海归网】 http://www.haiguinet.com









相关主题
[原创]创业日记-315 (软和硬) 海归主坛 2012-11-27 周二, 09:07
[原创]创业日记-527 (沪江网) 海归商务 2015-6-11 周四, 10:55
[原创]创业日记-526 (我是精英吗?) 海归商务 2015-6-10 周三, 11:22
[原创]创业日记-525 (终将被遗忘的时代) 海归商务 2015-6-08 周一, 11:47
[原创]创业日记-524 (我就爱传播负能量) 海归商务 2015-6-05 周五, 12:19
[原创]创业日记-523 (老年人的性与爱) 海归商务 2015-5-28 周四, 09:26
[原创]创业日记-522 (邪恶的中国商业及服务) 海归商务 2015-5-28 周四, 09:25
[原创]创业日记-521 (社会的改变) 海归商务 2015-5-28 周四, 09:24

返回顶端
阅读会员资料 data_scrubber离线  发送站内短信
回复主题   printer-friendly view    海归论坛首页 -> 海归商务           焦点讨论 | 精华区 | 嘉宾沙龙 | 白领丽人沙龙 所有的时间均为 北京时间


 
论坛转跳:   
不能在本论坛发表新主题, 不能回复主题, 不能编辑自己的文章, 不能删除自己的文章, 不能发表投票, 您 不可以 发表活动帖子在本论坛, 不能添加附件不能下载文件, 
   热门标签 更多...
   论坛精华荟萃 更多...
   博客热门文章 更多...


海归网二次开发,based on phpbb
Copyright © 2005-2022 Haiguinet.com. All rights reserved.