The Last Day Of Summer

.NET技术 C# ASP.net ActiveReport SICP 代码生成 报表应用 RDLC
posts - 306, comments - 2046, trackbacks - 78, articles - 3
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

细节-质量-态度

Posted on 2006-01-18 17:05 Cure 阅读(2641) 评论(14) 编辑 收藏
    常常看到有言论说国内的项目质量差,不好用,很失败。是框架不成熟?技术不先进?管理人员素质差?开发方法落后?都不是,是细节导致了失败,是细节导致的低质量,可用性差。
来看看一个TextBox可能涉及到的测试项,下面所列出的测试项,在实际项目中数目还会有更多,有几条也可以合为一个,但一般的项目都会涉及到:
1.      是否必输
2.      输入长度限制是否正确
3.      特殊输入类型的检查是否正确
  
l         数字 :位数正确吗?
  
l         Email:是否有效
  
l         货币:小数位,四舍五入正确吗?货币类型?
  
l         电话:格式化正确吗?
  
l         小数:小数位数正确吗?
  
l         名字:如果是老外的名字,首字母大写
4.      Tab键顺序正确吗?
5.      颜色表示正确吗?(有可能分为必输项,非必输项,当前输入项)
6.      文本框长度和数据库中长度对应吗?
7.      输入的长度不足时是否自动补位?
8.      初始化时焦点的设置正确吗?
9.      初始化时Enable属性设置正确吗?
10.  初始化时的内容正确吗?
11.  当界面上进行其他操作时,文本的Enable属性设置
12.  文本框命名
13.  如果有回车替换Tab,是否正确
14.  是否可以多行
15.  字体设置正确吗?
16.  Text属性时对空格的控制(Trim)正确吗?

我们来模拟一个简单的工资管理系统,人员信息录入界面,有以下录入项:
姓名:(中国人是汉字,老外是英文,首字母大写)
年龄:(数字)
Email
电话:月薪:货币

    可以看到,第三项里提到的几种特殊类型的文本框基本都涉及到了。
    现在不看设置Enabled属性和初始化设置这几项,因为是要其他动作来触发的,再去除文本框命名和Trim,这两项也可以归到Review项里,留下十项。
    现在再假定用户的输入全部是规范的,不包括任何非法,不合理数据,如果进行保存的话,保存部分的代码不会出现任何错误,不出任何异常,数据成功保存到数据库。但是大家可以算算这样一个界面,只有5TextBox,但是在TextBox处理上隐含了多少个bug50个?太多了,取一半,25个。现在把添,删,查,改加上,再算算,这样一个简单的单表维护界面上就隐含了多少个bug,保守点也30个!要达到50也不是没有可能的。如果我们再加上一些其他的CheckBoxComboBoxListBox什么的,编辑查看附件,发送什么的附加功能,测试点会膨胀到什么程度?
    以上是假定不作任何其他处理,只是单纯的录入,保存。实际项目中肯定是不会这么夸张的。程序员不会让这样一个“赤裸裸”的程序运行在客户那里的
    举这样一个例子就是为了说明细节对软件产品质量的重要。不要说这些都是菜鸟才会犯的错误,不要说我现在已经是XX师了,这些问题不值一提。上面所说的相信很多人都知道,工作中也很注意,要实现更是不在话下,但是也有很多人虽然经常在作,但是从来不去作更多的关注。上面所提到的每个点都有可能因为程序员或测试人员的一个小疏忽,一个大意,一个想当然而遗漏,而产品的质量很大一部分就体现在这样的小细节里,我们的有很多项目,架构很先进,业务能走通,但是就是到了实际部署的时候错误百出,客户用不起来,其实原因就在我们的软件就只差那么一步,那么10%的东西,但是却导致了整体的失败。而这10%就是各种琐碎的细节所堆积起来的。

    没有bug的程序是不存在的,但是在关注各种架构,可复用,可配置等等方面之后,请多留点精力给这些细节。在这里需要的不是高超的技术,先进的框架,新潮的名词,只需要态度。

Feedback

#1楼  回复 引用 查看   

2006-01-18 18:23 by omnislash      
程序员都是懒惰的,诉诸技术手段,10%可以变成只有5%,甚至1%

#2楼[楼主]  回复 引用 查看   

2006-01-18 18:27 by Cure      
我们可用通过各种封装来使编写代码更简单,快捷,但是却不能不关注这些

#3楼  回复 引用 查看   

2006-01-18 22:18 by 7798.cn      
国内的项目质量差,不好用,很失败。是框架不成熟?技术不先进?管理人员素质差?开发方法落后?

没错,国内很多软件失败就是因为这些!!!


很多公司还是用OOPL写面向过程的程序,太多太多,软件质量能上去才怪。

#4楼  回复 引用 查看   

2006-01-19 08:20 by Allen Zhang      
是否面向过程写程序不是项目失败的原因,有些地方也不一定非得用面向对象,我支持Cure的观点,细节很重要。

#5楼  回复 引用 查看   

2006-01-19 08:58 by shootingstars      
面向过程的就一定比面向对象落后?不一定吧。。。

不过很多细节问题不是完全应该由程序员负责,而是应该有完善的管理制度和测试规则,不符合规则的都要求重写。
呵呵,很少有程序员会在写一个TextBox去考虑上面的16条规则。但是,如果测试员每次都去检查这16条规则,然后如果有问题都要求重新修改,那么程序员过不了多久就会自觉检查的。

#6楼[楼主]  回复 引用 查看   

2006-01-19 09:19 by Cure      
@7788.cn
国内有很多项目是因为技术,框架,管理等方面的原因失败的,但是同时有很多项目在这些地方作的不错,但是软件最后还是差了一口气,在细节上不行。
@shootingstars
确实,要程序员来检查这些有些难为人了,我们可以自己封装一个TextBox,让这些编码更简单,但是测试必须来认真检查这些点,这样对测试的压力可就是很大的了。其实这样的测试点对测试人员来说已经是简单的了,要是再有复杂的统计报表,要对数据,造数据,可就看测试的功力了:)

#7楼  回复 引用   

2006-01-19 09:55 by alang[未注册用户]
一个很好的、行之有效的解决办法,就是“验证控件”。把原来程序员要单独的、一个一个去检查的控件,封装成一套完整的、带验证方法的控件,把保贵的程序员的精力解放出来。

比如,我们可以做字符串控件,有个最长值的属性;可以做数值控件,只能录入数值,这样程序员取得的值直接是数值而不用再手工转换;数值控件也有很多种,整数的,小数的等等;email控件、phone控件、日期控件等等。

做控件的时间是可控的、很少的;而在有繁杂界面的企业应用中,一套这样的控件可以节省的测试人工成本、避免出错的带来的经济损失是非常有用的,收益是永久的。一套控件可以用在其它的案例中,收益更是长久的。
来自:http://blog.donews.com/alang/archive/2006/01/19/700969.aspx

#8楼  回复 引用 查看   

2006-01-19 10:06 by xiao_p      
注意细节确实很重要,而我认为在注意细节的同时养成良好的习惯也同样重要……

比如上面的16条16条规则,如果有个良好的习惯,就会自觉地遵守,我始终认为,单纯的注意不如良好的习惯……

#9楼  回复 引用   

2006-01-19 11:00 by Tim Zhao[未注册用户]
其实,用户最关新的是软件的可靠性和软件的易操作性,至于软件用什么技术去实现其实并不重用!技术的先进性只应该在软件供应商内部来讨论!Cure的观点我也赞同,如果Windows不是用鼠标代替了键盘的输入,那可能也就不会有人知道盖次了!

#10楼  回复 引用 查看   

2006-01-19 13:24 by SW515      
细节成就未来!

  非常同意楼主的观点,一定要把细节做好,一个好软件从第一眼就能看出来。不是说界面要有多花哨,而是看上去非常紧齐细腻。这就好比 BMW 和 夏利车,两者摆在一起,不用打开发动机盖就能看出来谁好谁差,这便是做工。在汽车上,或许做工好坏受成本影响很大,但是,在软件开发中,这种影响却几乎可以不计。就好像敲代码的过程中,是否代码紧齐缩进,变量是否命名很规范统一,是否每个界面元素都不差毫厘的摆放紧齐了。

#11楼  回复 引用 查看   

2006-01-19 17:05 by 爬爬      
楼主应该综合考虑质量与成本的问题。
更好的过程会产生更好的质量,管理大师戴明给我们一个PDCA循环,但质量本身是有成本的,并不一定要一味的去追求非常高的质量,因为大多数项目并不是神六上天。
我想更多的是二八原则,20%的精力去解决80%的问题,针对一些对质量要求不是太高的应用软件系统,还有一些缺陷遗留到客户那边是会被允许的。
这就要看你公司关于软件缺陷遗留率的度量情况了,如果你预计还有10%的缺陷没有被发现,维护人员跟上就行了,因为测试要到达逻辑覆盖是非常困难的,或者说是成本非常高的。
软件缺陷遗留率=(软件发布后一年内的缺陷数-发布前测试检查的缺陷数)/发布前测试检查的缺陷数
根据这个数据你可以判断你的测试团队的测试能力(当然你可能需要有50个项目的历史数据才能得到平均值),并可以依据这个数据来判断这个项目将来会产生多少的维护工作。

#12楼  回复 引用   

2006-04-13 10:47 by Angell.in[未注册用户]
质量本身是有成本的。要保证好的质量,就要付出更多的时间。
而目前国内的企业把测试的工作量压得非常大,使得一天中安排测试的功能模块很多或测试内核需要用到的文件数量非常多,完成任务就不容易,细节当然常常被忽略。
另外工作时间常常被延迟到12小时却没有加班薪酬(或只是奖励个别一两个人)。这样的工作条件下产生出来的倦怠情绪是可以理解的

#13楼  回复 引用   

2006-04-18 09:19 by 笑行[未注册用户]
感觉国人做产品规范性不强,总认为实现了就是成功了.这个跟决策者关系最大,首先他要把这种规范的思想贯彻下去,其次,他的执行者应该有执行这种思想的丰富经验.
您好!

我是CSDN网站(www.csdn.net)的网站编辑。

CSDN网站即将推出SD Channel(软件研发频道),主要是关于软件研发的方法、工具和技术的内容。我看到您对这方面的内容比较熟悉,因此希望能够邀请您担任我们这个频道的外围专家。我们有一个专门的blog栏目可以将您在这方面的内容直接聚合到该频道的首页。

软件研发频道链接:http://sd.csdn.net/
此地址尚未对外发布,请各位专家能够提一些建议和意见,谢谢。

如果您接受我们的邀请,请与我联系。
希望能与您有紧密的联系,通过我们共同的努力把这个频道建设好。
我的msn: mj-china@hotmail.com


谢谢。

马京

北京百联美达美数码科技有限公司(CSDN.net &《程序员》)
Beijing CSDN Digital Technology Co., Ltd.
Add :北京市朝阳区酒仙桥路14号兆维工业园A2区1门4层(邮编:100016)
Tel :(86 10)51661202—222
Email: mjj@csdn.net
MSN: mj-china@hotmail.com