软件质量保证(SQA)单元
SQA单元的结构因组织的类型和规模而异。下图显示了一个标准结构的示例以及SQA单元下的所有组成部分。本章将讨论每个子单元的角色和责任。
SQA单元负责人的任务
SQA单元负责人负责SQA单元及其子单元执行的所有质量保证任务。这些任务可以分为以下几类:
- 计划任务
- 单元管理
- SQA专业活动
计划任务
编制单元的拟议年度活动计划和预算
规划和更新组织的软件质量管理体系
为软件开发和维护部门编制推荐的年度SQA活动计划和SQA系统开发计划
管理任务
管理SQA团队的活动
监控SQA活动计划的实施
提名团队成员、SQA委员会成员和SQA受托人
编制特别报告和定期报告,例如,组织内软件质量问题的现状和月度业绩报告
SQA专业活动
- 参与项目联合委员会
- 参与正式设计评审
- 审查和批准与规范的偏差
- 与项目经理和团队负责人协商
- 参与SQA委员会和论坛
项目生命周期SQA
与项目生命周期子单元相关的SQA任务可以分为两组:
“纯粹”的管理性后续和批准任务(项目生命周期控制任务)
“实际操作”或积极参与项目团队SQA活动,需要专业贡献(参与任务)
项目生命周期控制任务
跟踪开发和维护团队对SQA程序和工作说明的遵守情况
根据相关程序批准或推荐软件产品
监控向内部和外部客户交付软件维护服务
监控客户满意度并与客户的质量保证代表保持联系
参与任务
这些任务包括参与:
- 合同审查
- 编制和更新项目开发和质量计划
- 正式设计评审
- 分包商的正式设计评审
- 软件测试,包括客户验收测试
- 分包商软件产品的软件验收测试
- 安装新软件产品
SQA基础设施运营任务
SQA系统采用各种基础设施组件来顺利运行,即:
- 程序和工作说明
- 支持质量设备(模板、清单)
- 员工培训、指导和认证
- 预防和纠正措施
- 配置管理
- 文档控制
更具体地说,SQA子单元关于这些组件的任务包括:
发布更新版本的程序、工作说明、模板、清单等等,以及以纸质和/或电子方式分发它们
向新员工和现有员工传授有关遵守和应用SQA程序、工作说明和类似项目的培训和指导
指导SQA受托人了解新的和修订的程序以及开发工具和方法,以及其他组件
监控和支持新修订的SQA程序的实施
跟踪员工认证活动
提出需要预防和纠正措施的主题,包括参与CAB委员会
跟踪配置管理活动,包括参与CCA委员会
跟踪对文档程序和工作说明的遵守情况
SQA内部审计和认证任务
软件组织中或由软件组织进行的SQA审计类型可以分类如下:
内部审计
对分包商和供应商进行审计以评估其SQA系统
由认证机构进行的外部审计
由希望在接受组织作为供应商之前评估SQA系统的客户进行的外部审计
前两类审计由SQA子单元发起和执行,后两类由外部机构执行。
SQA单元执行以下内部SQA审计任务
编制年度内部SQA审计计划
执行内部SQA审计
跟踪被审计团队和其他部门应进行的纠正和改进
编制审计结果现状的定期总结报告,包括改进建议
SQA单元执行以下分包商和供应商审计任务:
编制年度分包商和供应商SQA审计计划
执行分包商和供应商的SQA审计
跟踪被审计的分包商和供应商应进行的纠正和改进
从内部和外部来源收集有关分包商和供应商绩效的数据
根据审计报告和从其他内部和外部来源收集的信息,定期评估组织的认证分包商和供应商的SQA系统。评估报告包括:
关于分包商和供应商认证的建议
由认证机构进行的外部审计涉及以下任务:
协调认证审计的内容和时间表
编制认证机构指定的文档
指导被审计团队并执行认证审计所需的准备工作
参与认证审计
确保完成必要的纠正和改进
组织的客户进行的SQA审计需要这些任务:
协调审计的内容和时间表
编制客户审计员指定的文档
指导被审计团队并执行组织客户进行的SQA审计所需的准备工作
参与审计
确保完成必要的纠正和改进
SQA支持任务
大多数SQA支持服务的消费者都在组织内部。他们包括项目经理、团队负责人和SQA受托人。他们的任务包括:
编制项目计划和项目质量计划
人员配置审查团队
选择措施以解决已识别的软件开发风险
选择措施以解决进度延误和预算超支
选择SQA度量和软件成本组成部分
使用SQA信息系统
选择反映SQA单元积累的故障经验数据的开发方法和工具
SQA标准和程序任务
SQA子单元密切参与决定采用哪些SQA标准以及开发和维护组织的程序。为了履行相应的义务,SQA单元需要:
编制年度新程序开发和程序更新计划
负责新程序的开发和程序更新,并参与相应的委员会和论坛
跟踪SQA和软件工程标准的发展和变化;引入与组织相关的其他程序和变化
根据专业标准的变化启动程序的更新和调整,包括采用或删除组织应用的标准
SQA工程任务
跟踪专业进展、解决操作困难和对故障进行专家分析是该SQA子单元的直接目标。
因此,主要的工程任务包括:
测试关于新开发工具和当前使用开发工具的新版本方面的质量和生产力
评估新的开发和维护方法以及方法改进的质量和生产力
开发解决当前使用的软件开发工具和方法应用中遇到的困难的方案
开发测量软件质量和团队生产力的方法
在分析软件开发故障和制定拟议解决方案期间,向CAB委员会提供技术支持
SQA信息系统任务
SQA信息系统旨在促进和改进SQA系统的运行。所涉及的任务包括:
为软件开发和维护单元开发SQA信息系统,用于
收集活动数据
处理例如定期报告、列表、例外报告和查询
处理例如定期报告、列表、例外报告和查询
开发SQA信息系统,以促进SQA单元处理软件开发和维护单元交付的信息,包括软件质量度量和软件质量成本的估计
更新SQA信息系统
开发和维护组织的SQA互联网/内联网站点
SQA 负责人及其职责
SQA负责人是指主要参与软件质量提升的成员。这些成员为成功实施SQA组件提供必要的内部支持。
他们的职责可能因组织而异。因此,它可能是与部门相关的和/或与组织相关的职责。
部门相关职责
支持同事解决软件质量流程和工作指导实施过程中的困难
协助部门经理执行相关的SQA任务
推动合规性并监督同事对SQA流程和工作指导的实施情况
向SQA部门报告重大和系统性的不合规事件
向SQA部门报告严重的软件质量故障
组织相关职责
触发组织范围内的SQA流程和工作指导的更改和更新
推动组织内开发和维护流程的改进
就各个部门观察到的反复出现的故障的解决方案向变更咨询委员会(CAB)提出申请
确定整个组织的SQA培训需求,并提出由SQA部门实施的适当培训或指导计划
SQA委员会及其职责
SQA委员会可以是永久性的,也可以是临时的。任务可能因组织而异。
永久性委员会通常处理软件变更控制(SCC)、纠正措施(CA)、流程、方法开发工具和质量指标。
临时委员会通常处理具有普遍意义的特定案例,例如更新特定流程、分析和解决软件故障、针对特定流程或产品制定软件指标、更新软件质量成本以及针对特定问题的數據收集方法。
永久性SQA委员会是SQA组织框架不可或缺的部分;其任务和运作通常在组织的SQA流程中定义。
临时委员会是根据每个问题的短期需要建立的,成员由负责软件质量问题的负责人、SQA部门负责人、SQA子部门、永久性SQA委员会或任何其他发起其组建并对工作感兴趣的机构提名。该机构还定义临时委员会的任务。