如何去度量软件的质量,是一个很难回答的问题,你到底是通过什么标准去承诺这个软件的质量好呢?牛奶,只要含有一定量的营养成分,而有害成分不超过某一标准,那么我们就说这牛奶的质量是合格的。软件的质量合格怎么体现呢?
我们先来看看什么是软件的质量,软件质量是对明确陈述的功能和性能需求,明确记录的开发标准及对所有专业化开发应具备的隐性特征的符合度。它强调了以下三重意思:
1.软件的需求是质量的基础,不符合需求的就是没有质量。
2.软件过程必须遵循一些开发标准和行业标准。
3.软件必须满足隐含需求。
符合这三点的,我们就可以说是有质量的。
有一点可以肯定,我们不能直接来测量软件的质量,我们只能通过软件的一些具体的质量特性来测量。然后给我们这些质量特性规定标准,于是就建立起来了具体的质量度量标准。质量度量的标准也可以叫做质量模型,它是质量管理过程中的核心部分。介绍两种常用的质量度量模型。
(一)Mccall质量度量模型
McCall等人的质量特性定义如下:
McCall软件质量模型
(二)ISO9126质量度量模型
该模型将质量特性划分为六个方面:
1.功能性:适合性、准确性、互操作性、依从性和安全性;
2.可靠性:成熟性、容错性和易恢复性;
3.易使用性:易理解性、易学习性和易操作性;
4.效率:时间特性和资源特性;
5.可维护性:易分析性、易更改性、稳定性和易测试性;
6.可移植性:适应性、易安装性、一致性和易替换性。
总而言之,这些质量特性可划分为两类,可直接测试的和间接测试的。对于功能,性能等我们可直接测试;对易用性,可靠性等,需要我们通过一定得途径寻找一条准则,这也是我们目前测试的盲点,当然也是我们质量人员需要解决的问题。(不包含需求管理都没做好的公司,连明确的质量特性都不做,就没必要来探求其它的)。
那么我们在软件过程的那个阶段提出这些质量特性的预期呢?也就是什么时期来制定测试目标。这也是一个颇有争议的问题。一方面认为,应该在早期建立质量特性的预期,但反对者认为早期的很多质量特性不明显且不稳定,而后期建立质量热性的话,又难免有先入为主的弊端。
鉴于现在国内的质量管理很不规范,还有根本没有形成固定的标准。我觉得应该在后期建立这些质量特性。也就是在需求稳定以后建立。这些质量特性由质量人员制定,这就排除了测试人员自己给自己制定目标的弊端。也就是说,质量人员在明确了需求后,给软件制定了一套质量因素,来说明只要软件实现了这些质量因素,那么它就是质量合格的,而测试者只负责运用具体的测试方法来验证实际与目标是符合关系。
其实测试人员可以更轻松地工作,而不会自己给自己制定目标的折磨自己;
其实质量人员应该发挥更大的作用,而不是现在单纯的跟踪进度和检验缺陷…… |