关于“软件测试”,近几年来,业内讨论得比较多。但对于“软件质量”却很少人提及!
软件测试只是软件质量保证的一种手段而已。然而我们往往容易把软件测试做为软件质量保证的唯一手段,甚至只做“功能测试/确认测试”或基于用户场景的测试。这样并不能做到比较好的软件质量保证。
那么什么是软件质量呢?关于软件质量的定义,很多书籍都有定义,但到目前为止,还是没有一个标准的定义。不过,我比较赞同TQM的观点:TQM的核心是把过程质量的责任分配给过程的所有者。
面向消费者(最终用户)的是产品,消费者遇到的任何产品使用问题,都将成为产品的质量问题。
然而产品是经过若干工序生产出来的结果。在各个工序环节,都将有可能引出质量问题,而且这些质量问题是由不同技能和领域的从业人员的工作导出来的,质量类型是不同的,如需求问题(不需要的功能或不接受的功能),设计问题(不好的设计不仅有可能影响产品的实际使用效果,还有可能给消费者带来经济损失),实现问题(没有按照设计进行制作)等等……
以上问题,其实我想表述的是:软件产品的质量是分不同类型的,而且这些质量类型往往需要不同技能和知识背景的人来进行确认和保障。
所以,当我们要确保一个即将上市的产品的质量达到某个水平时,就首先需要评估产品究竟有哪些质量类型?是不是这些质量类型都有合适的人员进行确认和测试?
为了方便理解,举个例子:
活动名称-------质量类型-------质保手段
========================================
需求分析-------需求质量-------调研、评审
软件设计-------设计质量-------评审与测试
代码编写-------代码质量-------Review和测试
说明文档的编写-------文档质量-------审阅
版本制作-------发布质量-------确认与测试