Skip to content
难度基础(★)
建议时长45分钟

7.9 软件质量保证模型

软件质量不是一句“好用”就能概括。质量模型把“好软件”拆成若干可讨论、可评价的属性。本节主要围绕 ISO/IEC 9126 质量模型:考试通常不深入展开过程,只要求能把质量属性和子属性配对。

质量保证、质量控制与质量模型

概念关注点典型活动
软件质量软件满足明确和隐含需求的能力功能正确、可靠、易用、高效、可维护、可移植
质量保证 SQA过程是否能持续产出合格产品计划、标准、评审、审计、过程改进
质量控制 QC具体产品是否存在缺陷检查、测试、缺陷跟踪
质量模型如何拆解和评价质量ISO/IEC 9126 六大质量属性

质量保证偏“预防”和“过程”,质量控制偏“检查”和“发现问题”。质量模型则提供评价维度,让“质量好不好”不再只靠感觉。

ISO/IEC 9126 六大质量属性

质量属性关注问题常见子属性
功能性功能是否满足需求,是否安全、准确、可互操作适合性、准确性、互操作性、安全保密性、依从性
可靠性软件能否持续正常运行,出错后能否恢复成熟性、容错性、可恢复性、依从性
易用性用户是否容易理解、学习和操作易理解性、易学性、易操作性、吸引性、依从性
效率时间和资源使用是否合理时间特性、资源利用性、依从性
可维护性开发/维护人员是否容易分析、修改、测试易分析性、易改变性、稳定性、易测试性、依从性
可移植性软件能否适应不同环境适应性、易安装性、共存性、易替换性、依从性

字幕里把“易用性”从用户角度讲成“好不好用”:是否容易理解、容易学会、容易操作。要注意它和“可维护性”的易分析性不同:易用性面向用户,可维护性面向开发和维护人员。

功能性

功能性关注软件是否实现了需求中要求的能力。它不是“功能数量越多越好”,而是功能是否适合、准确、安全,并能与其他系统协作。

子属性含义例子
适合性功能是否适合用户任务报名系统提供缴费、准考证下载等必要功能
准确性输出结果是否正确订单金额、税费、库存计算正确
互操作性能否与其他系统交互支持第三方支付、统一认证接口
安全保密性防止未授权访问和信息泄露权限控制、加密、审计日志
依从性符合相关标准、法规或约定符合行业接口规范

考试看到“安全保密性、互操作性、准确性”,优先想到功能性。

可靠性

可靠性关注系统在规定条件下、规定时间内维持规定功能的能力。课程里用“不容易坏、出错能容纳、出错后能恢复”来解释。

子属性含义
成熟性缺陷少,运行中故障频率低
容错性出现错误时仍能保持一定服务能力
可恢复性故障后能恢复数据和服务
依从性符合可靠性相关标准

可靠性和可用性在日常表达中常混用,但软考质量模型里通常按“成熟性、容错性、可恢复性”来识别可靠性。

易用性

易用性站在用户角度。一个系统功能很强,但用户看不懂、学不会、操作困难,也不能算质量好。

子属性用户视角的问题
易理解性用户能否理解系统概念、界面和信息
易学性用户能否较快学会使用
易操作性操作步骤是否自然、可控、少出错
吸引性界面和交互是否让用户愿意使用
依从性是否符合易用性相关规范

“易理解性”属于易用性;“易分析性”属于可维护性。考试很容易用这两个词做干扰。

效率

效率关注资源利用。课程里把它和数据结构算法里的时间、空间联系起来,非常好记。

子属性含义例子
时间特性响应时间、处理时间、吞吐量页面 1 秒内响应
资源利用性CPU、内存、存储、网络等资源占用同样并发下内存占用更低
依从性符合效率相关标准满足性能规范

性能优化、算法优化、资源占用降低,通常都和效率相关。

可维护性

可维护性面向开发和维护人员。它关心系统是否容易被分析、修改、测试,以及修改后是否稳定。

子属性含义
易分析性出问题时容易定位原因
易改变性容易修改和扩展
稳定性修改后不容易引发意外副作用
易测试性修改后容易验证正确性
依从性符合维护相关标准

这里的“稳定性”不是简单的运行可靠性,而是指软件在被修改时不容易产生不可预期影响。

可移植性

可移植性关注环境变化。课程用 Java 虚拟机举例:只要目标系统有虚拟机,Java 程序就更容易在不同操作系统上运行。这体现了适应不同环境的能力。

子属性含义例子
适应性适应不同硬件、操作系统、平台Android/iOS/桌面多平台适配
易安装性容易安装和部署一键安装、容器镜像部署
共存性能与同环境其他软件共存不抢占端口、不破坏共享库
易替换性能替代旧系统或被新系统替代API 兼容、数据迁移方便
依从性符合移植相关标准遵循平台规范

可移植性不仅是“能跑在不同系统上”,还包括安装、替换和共存是否方便。

属性配对速查

子属性关键词所属属性
适合性、准确性、互操作性、安全保密性功能性
成熟性、容错性、可恢复性可靠性
易理解性、易学性、易操作性、吸引性易用性
时间特性、资源利用性效率
易分析性、易改变性、稳定性、易测试性可维护性
适应性、易安装性、共存性、易替换性可移植性

例题

单选
软件质量保证更强调:
单选
易分析性、易改变性、稳定性、易测试性主要属于:

本节小结

本节最重要的是属性和子属性配对。功能性看需求功能和安全互操作,可靠性看成熟、容错、恢复,易用性看用户理解学习操作,效率看时间和资源,可维护性看分析修改测试,可移植性看适应安装共存替换。