跳转至

软件质量模型(software quality model)

软件质量与评估如此重要,自然有机构已经对此做过深入研究,相应的软件质量模型也达到一定标准。

比较著名的是 ISO/IEC 的 SQuaRE 和 CISQ。

SQuaRE 定义了较为面面俱到的软件质量标准,CISQ 则侧重于软件质量的评估,后者基于 SQuaRE,但是只选取了其中主要的 4 种质量特性再加上自己定义的 size 特性。

对于完整的 SQuaRE 和 CISQ 质量模型,如果读者感兴趣,可以从 ISO 官网查看或下载。本文将依据 SQuaRE 和 CISQ,结合自身经验,进行裁剪和定制,最终形成的质量特性入下:

功能适宜性(functional suitability)
    功能完整性(functional completeness)
    功能正确性(functional correctness)
    功能方便性(functional appropriateness): 用户通过软件完成其目标的方便程度
    界面舒适性(UI comfort)
    操作流畅性(smooth): 强调界面过度的平滑程度
可靠性(Reliability)
    可用性(availability): 正常交互/数据下,软件维持正常功能的能力
    容错性(fault tolerance): 异常交互/数据下,软件维持正常功能的能力
    可恢复性(recoverability): 在已经出现异常或错误的情况下,软件恢复数据,状态与功能的能力
性能(performance efficiency)
    时间特性(time behaviour): 时间相关的性能
    资源占用率(resource utilization):rom, ram, cpu, gpu, port等
    容量(capacity): 软件能力在空间上的边界
安全性(security)
    机密性(confidentiality): 数据或功能只给授权用户访问的能力
    问责性(accountability): 操作与数据可被追踪的能力
可维护性(maintainability)
    可分析性(analysability): 易于被分析的能力
    可修复性(fixability): 已知问题易于被修复的程度
    可更新(updatable): 更新的方便程度
    可扩展性(extensibility): 不重新发版的情况下,进行能力替换或扩展
    可配置性(configurability)

以上特性实际上只有两个等级的划分,对于实际操作来说,还处于一种抽象的层面,要进行真正的评估,还需要进一步细化为通用的 checklist。

功能适宜性: 功能完整性
    是否覆盖所有主要 case
    需求明确提出的 case 覆盖比例
    隐含 case 覆盖量
功能适宜性: 功能正确性
    所有 case(明确与隐含)的正确比例
功能适宜性: 功能方便性
    所有 case 的完成步骤的简化程度
功能适宜性: 界面舒适性
    页面布局的合理程度
    页面配色的合理程度
    页面图形与元素设计的合理程度
功能适宜性: 操作流畅性
    界面变化的动画化程度
    动画时间的合理程度
    动画的流畅程度
    动画的平滑程度
可靠性: 可用性
    所有正常 case 正确执行的程度
可靠性: 容错性
    异常 case 时,能够自我保护
    异常 case 后,正常 case 能够正常执行
可靠性: 可恢复性
    出现未捕获异常时功能能够自动恢复正常
    出现为捕获异常时数据能够自动恢复正常
    一个 case 出现偶现错误时,重新进入能够恢复正常
    一个 case 出现错误时,不影响其他 case
性能: 时间特性
    操作响应时间
    多计算任务处理时间
    IO 任务处理时间
    操作吞吐率
    数据吞吐率
性能: 资源占用
    rom
    ram
    port
    cpu

注: 上文内容不用于商业目的, 如涉及知识产权问题, 请权利人联系 vtest-top@foxmail.com , 将立即处理, 谢谢!