文档介绍:第八章
软件质量保证
******@ANY
本课程的主要内容
软件质量模型
ISO9000和CMM/CMMI
软件质量铁三角
质量保证与SQA
本章目标
理解软件质量模型
了解CMM/CMMI和ISO9000
理解质量铁三角
了解质量保证与SQA
第一部分
质量保证与SQA
软件质量模型
CMM/CMMI和ISO9000
软件质量铁三角
软件质量的定义
“软件质量”(ISO9126):软件满足规定或潜在用户需求特性的总和。包括“内部质量”、“外部质量”和“使用质量”三部分。
“软件质量”(ISO14598):软件特性的总和,软件满足规定或潜在用户需求的能力。
软件质量定义
软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。更具体地说,软件质量是软件符合明确地叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。
软件质量定义的三个要点
软件需求是度量软件质量的基础,与需求不一致就是质量不高。
指定的标准定义了一组指导软件开发的准则,如果没有遵守这些准则,几乎肯定会导致质量不高。
通常,有一组没有显式描述的隐含需求(例如,期望软件是容易维护的)。如果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是值得怀疑的。
软件质量的理解
软件质量是一个复杂的概念,不同的人从不同的角度来看待软件质量问题会有不同的理解
用户视角:质量就是满足客户的需求
开发者的视角:质量就是与需求说明保持一致
产品视角: 质量就是产品的内在特点
价值视角:质量就是客户是否愿意购买
项目经理视角:质量就是能“令人满意”地工作以完成预期功能的软件产品
质量保证(QA)
质量保证(QA:Quality Assurance):
质量保证的重要工作是通过预防、检查与改进来保证软件质量。
QA通过“全面质量管理”和“过程改进”的原理开展质量保证工作
虽然在QA的活动中也有一些测试活动,但QA所关注的是对软件质量的检查与度量。
QA的工作是对软件生命周期的管理以及验证软件是否满足规定的质量和用户需求,因此主要着眼于软件开发活动中的过程、步骤和产物,而不是对软件剖析,找出问题或评估。
QA的注意职责是检查和评价当前软件开发的过程,找出过程改进的方法,已达到防止软件缺陷出现的目标
QA的组织结构
在国内大多数企业,QA组织结构可划分为三类:职能结构、矩阵结构以及两者结合而成的柔性结构。
职能结构
在职能结构中,各个职能部门设立自己的QA岗位,位于高级经理之下,独立于项目组。
QA直接对高级经理负责,但业务上需要向项目经理汇报,属于项目成员。
职能结构的优点
QA容易融入项目组,易于发现实质性的问题,解决问题也很快捷。
职能结构的缺点
各职能部门相对独立,部门之间的经验缺乏交流和共享,还可能出现对过程、方法和工具研究的重复性投资。
在这种组织结构下,由于高级经理专注于业务的发展,QA的职业发展容易受到忽视,难于接受到应有的培训和提升。