【软件测试】软件质量标准与测试依据和规范

1. 软件质量标准(ISO)


1.1   软件质量保证(ISO)

ISO (International Standardization Organization,国际标准化组织) TC/176技术委员会制定的所有国际标准
  •  质量保证标准(ISO9001/2/3)
  •  质量管理标准(ISO9004)
TC176即ISO中第176个技术委员会,成立于1980年,全称是“质量保证技术委员会”,1987年又更名为“质量管理和质量保证技术委员会”。TC176专门负责制定质量管理和质量保证技术的标准 

1.2  ISO 软件质量标准思想

  •  控制思想,即对产品形成的全过程进行控制。任何事物都是由一个或多个过程活动的结果,只要对产品形成的全过程进行控制并达到过程质量要求,最终产品的质量就有了保证
  •  预防的思想。通过对产品形成的全过程进行控制以及建立并有效运行自我完善机制达到预防不合格,从根本上减少或消除不合格品

1.3  ISO 软件质量标准结构

ISO9000系列标准的主体部分分为两组:
  • “需方对供方要求质量保证”的标准ISO9001-9003
  • “供方建立质量保证体系”的标准ISO9004 
 ISO9001:设计/开发、生产、安装和服务中质量保证模式;
 ISO9002:生产和安装中的质量保证模式;
 ISO9003:最终检验和测试中的质量保证模式;
 ISO9004:质量管理和质量体系要素导则。

【软件测试】软件质量标准与测试依据和规范



1.3.1  ISO9000与GB/T19000的关系 

【软件测试】软件质量标准与测试依据和规范

1.3.2  ISO9000-3 是什么

ISO9000-3其实是ISO质量管理和质量保证标准在软件开发、供应和维护中的使用指南,并不作为质量体系注册/认证时的评估准则,主要考虑软件行业的特殊性制定。参照ISO9001《质量体系 设计、开发、生产、安装和服务的质量保证模式》,并引用ISO 8402《质量管理和质量保证术语》,使得ISO9000系列标准应用范围得以拓展 

 1.3.3  ISO9000-3标准

软件开发、供应、维护中应用ISO9001的指南
是指南,不是标准
依然困惑:依然强调的是供应商和顾客的关系,不是工程师该如何做

1.3.4  ISO 9000-3 体系结构
  • 合同评审
  • 需方需求规格说明
  • 开发计划
  • 质量计划
  • 设计和实现
  • 测试和确认
  • 验收
  • 复制、交付和安装
  • 维护

2.软件测试规范


2.1  概念

软件测试规范就是对软件测试的流程过程化并对每一个过程元素进行明确的界定,形成完整的规范体系。 

2.2  完整的软件测试规范是怎样的

规范本身的详细说明,比如规范目的、范围、文档结构、词汇表、参考信息、可追溯性、方针、过程/规范、指南、模板、检查表、培训、工具、参考资料等等。

2.3  制定测试规范需要考虑的内容


  •  角色的确定
  •  进入的准则
  •  输入项
  •  活动过程
  •  输出项
  •  验证与确认
  •  退出的准则
  •  度量

3.CMM思想和结构体系


3.1  CMM是什么?

CMM即软件能力成熟度模型(Capability Maturity Model)是向软件组织提供如何增加对其开发和维护软件过程的控制能力。设计并实施CMM是为了指导软件组织:

通过确定当前过程的成熟度等级和识别出对软件质量和过程改进至关重要的问题,来选择其过程改进策略。

通过关注一组有限的活动,并为实现它们而积极工作,组织能稳步地改善其软件过程,使其软件过程能力持续不断地增长。

3.2  CMM的历史

CMM分阶段的体系结构源于己有60多年历史的产品质量原理。

ITT的Philip Crosby在其书“Quality is Free”(Crosby 79)中首先提出将质量原理改编为成熟度框架的思想。

Humphrey的成熟度框架早期版本发表在SEI技术报告(Humphrey 87a,Humphrey 87b)、文章(Humphrey 88)和书“Managing the software Process”(Humphrey 89)中。

3.3  CMM的5个等级

【软件测试】软件质量标准与测试依据和规范


3.4  不同成熟度的项目结果

【软件测试】软件质量标准与测试依据和规范


3.5  CMM的五个等级及关键过程域 

【软件测试】软件质量标准与测试依据和规范

3.6  关键过程域(Key Areas)

【软件测试】软件质量标准与测试依据和规范

3.7  CMM的五个等级及关键过程域 

【软件测试】软件质量标准与测试依据和规范




3.8  ISO9000与CMM

3.8.1  ISO与CMM的I关系

  • ISO9000相当于CMM二级和三级的一部分内容(有人称为2.5级)
  • CMM和ISO9000认证本身没有优劣之分
  • CMM是一个动态的过程
  • 对于预算、项目周期管理等ISO9000涉及不够的内容,CMM有所覆盖

3.8.2  ISO与CMM的区别

  • ISO9001是通用的国际标准,适用于各类组织。
  • CMM是美国军方为评价软件供应商的质量水平,委托SEI开发的一个评价模型,只用于软件业。
  • CMM更详细,更专业。
  • ISO9001只建立了一个可接受水平,而CMM是一个具有五个水平的评估工具。
  • ISO9001聚焦于供应商和用户间的关系,而CMM更关注软件的开发过程。

3.9  CMM与ISO9001关系

【软件测试】软件质量标准与测试依据和规范
【软件测试】软件质量标准与测试依据和规范


4. 建立软件测试管理和评判体系 


4.1  为什么要建立管理与评判体系?

  • 监视和测量软件产品 
  • 识别和控制不符合要求的产品
  • 验证产品设计和开发 
  • 监视和测量软件过程
4.2  测试管理和评判体系发展现状

1.美国质量保证研究所对软件测试的研究结果表明:越早发现软件中存在的问题,开发费用就越低;在编码后修改软件缺陷的成本是编码前的10倍,在产品交付后修改软件缺陷的成本是交付前的10倍;软件质量越高,软件发布后的维护费用越低。另外,根据对国际著名IT企业的统计,它们的软件测试费用占整个软件工程所有研发费用的50% 以上。
 
2.中国软件企业在软件测试方面与国际水准仍存在较大差距。首先,认识上重开发、轻测试,没有认识到软件项目的如期完成不仅取决于开发人员,更取决于测试人员;其次,管理上随意、简单,没有建立有效、规范的软件测试管理和评判体系;另外,缺少自动化工具的支持,大多数企业在软件测试时并没有建立软件测试管理与评判体系。 


4.3  如何建立测试管理与评判体系

【软件测试】软件质量标准与测试依据和规范