软件质量定义
什么是质量
Joseph M. Juran,朱兰,美国质量管理专家说:质量就是良好的实用性
- 从顾客角度出发
- 用户对产品的基本要求是适用
- 不同类型用户对产品和服务的要求不同
Philip B. Crosby,克劳斯比,美国质量管理专家,零缺陷之父说:质量是产品符合规定要求的程度
- 使用要求:即用户需求,应准确、清晰的表达多样化、动态化的用户需求
- 满足程度:应通过一定手段、借助工具进行定期测量
- 提供标准:应有标准来衡量产品与需求的一致程度
ISO8402关于质量的定义:反映实体满足明确或隐含需要能力的特性总和
- 在合同环境中,需要是规定的,而在其他环境中,隐含需要应加以识别和确定
- 在许多情况下,需要会随着时间而改变,要求定期修改规范
质量的要素
实体
- 实体是质量的主体,即测量的主体
- 一般指产品,也可以是活动、过程、组织、人,或者它们的组合
特性集合
- 表示度量
- 特性必须可以测量,定性或定量方式得到指导性结论
需求
什么是软件质量
反映软件满足明确或隐含需要能力的特性总和
- 客观而言,软件质量是软件具有某种能力的属性,这是前提条件
- 主观而言,软件具有的能力对应不同层次的用户需求
狭义和广义的软件质量
John Guaspari(“I know it when I see it:a modern fable about quality”,1985):客户并不只是购买了一件产品,他们购买的是你的保证
- 狭义的软件质量:软件的内部质量,即软件无"故障"
- 广义的软件质量:产品质量、过程质量和客户满意度
GB/T 11457-2006 <<软件工程术语>>
软件质量是:
- 软件产品中能满足给定需要的性质和特性的总体
- 软件具有所期望的各种属性的组合程度
- 顾客和用户觉得软件满足其综合期望的程度
- 确定软件在使用中将满足顾客预期要求的程度
软件质量需求
- 软件已经广泛应用到社会生产、生活的各个领域,现代社会对软件质量要求越来越高
- 但是,从软件开发维护角度看,软件系统日趋复杂,打造高质量软件的成本与压力日趋提升
- 软件缺陷造成的质量事故数不胜数,给软件企业、用户、客户带来巨大损失
涉众对软件质量的理解千差万别(不同的涉众对软件质量的理解和期望不同)
- 客户购买软件,希望软件能够为其创造价值,带来现金流、声誉等方面的收益
- 用户通过高质量的软件,为自身生活,工作带来便利
- 软件企业开发维护高质量软件,增加机构盈利,争取更多市场机会
软件质量观点
- 抽象的观点
- 用户的观点
- 制造的观点
- 产品的观点
- 基于价值的观点
抽象的观点
- 质量是一种理想状态,由于过于复杂,不能精确定义
- 通过经验来认识软件质量(高质量的产品是引人注目的,能够很容易识别出来)
用户的观点
- 从产品符合用户需求和期望的程度来评价软件质量
- 高质量的软件产品不仅要关注功能需求,还应关注用户对非功能需求的期望
制造的观点
- 制造观点来自于工业领域
- 质量被认为是对需求的符合程度
(1.任何对标准需求的偏离将导致产品质量降低
2.考虑到符合标准不能确保一定生产出高质量的产品,为此需要持续改进产品制造过程来实现)
产品的观点
- 如果制造一个产品具有好的内部特征,那么它就会有好的质量
- 产品的观点,为探索产品的内部特征和外部特征之间的关系提供了可能
基于价值的观点
- 综合考虑–产品质量和产品价格
- 用户愿意为高质量产品花费更多
软件质量的典型定义
- Crosby(系统,部件或过程满足规定需求的程度)
- Juran(系统,部件或过程满足顾客或客户需求/期望的程度)
- Pressman(符合明确陈述的用户需求,软件质量标准和开发维护人员对软件的隐含特征要求)