关键字:软件质量 质量管理
7.3.4 软件质量度量
软件产品的度量主要针对作为软件开发活动成果的工作产品质量,独立于其开发过程。软件的质量是由一系列质量要素组成的,每一个质量要素又由一些衡量标准构成,这些衡量标准是通过度量元加以刻画而得到的。
质量度量贯穿于软件工程的全过程以及软件交付之后,在软件交付之前的度量主要包括程序的复杂性、模块的有效性和总的程序规模,在软件交付之后的度量则主要包括残存的缺陷数和系统的可维护性等方面内容。
通过将软件质量要素进行分层定义,勃姆(Barry W. Boehm)在《软件风险管理》(Software Risk Management)中第一次提出了软件质量度量的层次模型,麦考尔(McCall)等人又进一步将软件质量分解到能够度量的程度,提出FCM 模型(参见表7-5),该模型指出几个最主要的比较高层的因素影响着软件的质量,分为软件质量要素(factor)、衡量标准(criteria)和量度标准(metrics)3个层次,这几个因素又是由一些比较低层的如模块化、数据通用性等标准决定的,实际的度量是针对这些标准而言的。该模型描述了因素和它们所依赖的标准之间的一致性。
表7-5 软件质量度量FCM模型
层级 | 名称 | 内容 |
第一层 | 质量要素:描述和评价软件质量的一组属性 | 功能性、可靠性、易用性、效率性、可维护性、可移植性等质量特性,以及将质量特性细化产生的副特性 |
第二层 | 衡量标准:衡量标准的组合,反映某一软件质量要素 | 精确性、稳健性、安全性、通信有效性、处理有效性、设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件系统无关性、软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、结构性、文件完备性等 |
第三层 | 量度标准:可由各使用单位自定义 | 根据软件的需求分析、概要设计、详细设计、编码、测试、确认、维护与使用等阶段,针对每一个阶段制定问卷表,以此实现软件开发过程的质量度量 |
其中,可以简单地描述使用缺陷密度(缺陷数量/软件规模)、缺陷检出率(某阶段当时发现的缺陷/该阶段的全部缺陷 ´ 100%)、发布前缺陷去除率(发布前发现的缺陷/(发布前发现的缺陷 + 软件运行的前3个月发现的缺陷)´ 100%)、潜在缺陷数((100% - 发布前缺陷去除率) ´ 缺陷密度)、平均失效时间(软件持续运行时间/缺陷数量)、平均修复时间(∑缺陷修复时间/缺陷数量)等作为产品质量的指标。
在软件质量度量活动中,同样需要建立一条性能基线,作为软件产品的质量、软件测试性能评估的起点,并作为对系统评估是否通过的标准。缺陷评测的基线是对某一类或某一组织的结果的一种度量,这种结果可能是常见的或典型的,如10 000行源程序(LOC)是程序规模的一个基准,每一千行代码有3个错误是测试中错误发现率的基准。基准对期望值的管理有很大帮助,目标就是相对基准而存在,也就是定义可接受行为的基准,如表7-6所示。
表7-6 某个软件项目质量的基准和目标
条目 | 目标 | 低水平 |
缺陷清除效率 | >95% | <70% |
缺陷密度 | 每个功能点 <4 | 每个功能点 >7 |
超出风险之外的成本 | 0% | ≥10% |
全部需求功能点 | <1% 每个月平均值 | ≥50% |
全部程序文档 | 每个功能点页数 <3 | 每个功能点页数 >6 |
关于质量度量的内容,在本书7.6节“缺陷度量”中将进一步展开。
相关阅读:
版权声明:51Testing软件测试网获电子工业出版社授权连载《软件质量管理实践》部分章节,其他个人或单位未经许可,不得对本内容复制、转载或进行镜像。51Testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。