The Last Day Of Summer

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

公告

细节-质量-态度

Posted on 2006-01-18 17:05 Cure 阅读(...) 评论(...) 编辑 收藏
    常常看到有言论说国内的项目质量差,不好用,很失败。是框架不成熟?技术不先进?管理人员素质差?开发方法落后?都不是,是细节导致了失败,是细节导致的低质量,可用性差。
来看看一个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的程序是不存在的,但是在关注各种架构,可复用,可配置等等方面之后,请多留点精力给这些细节。在这里需要的不是高超的技术,先进的框架,新潮的名词,只需要态度。