软件质量保证是一个系统性的工程,质量保证工作的开展不仅在于项目本身,更重要的是需要在一个组织的内部得到贯彻执行,图7-8说明了软件质量保证工作体系的完整工作结构和工作流程。
质量保证体系可以分为五个部分:质量文化建设、质量组织、质量计划、质量控制和质量改进,其中:
(1)质量文化建设要求对全员进行质量意识、方法的培训,同时包括由此延伸的客户管理、合同管理、计划评审等方面的培训;
(2)质量组织是建立计划和实施质量保证过程的组织结构,并明确其工作职责,图7-9是某公司的软件质量管理组织结构图:
·项目管理委员会:公司项目管理的最高决策机构,由公司总裁、副总裁组成,负责对公司项目的组织工作,对项目立项和终止做出决策性判断;
·项目管理小组:对项目管理委员会负责,由研发总监、开发经理、品质部成员等项目管理人员组成,由研发总监担任组长。负责将项目管理过程中的问题及时反馈给项目管理委员会,决策开发部门与其他部门之间的资源调配,通过周例会,协调解决项目出现的问题,监督项目管理相关制度的执行,根据项目组提出的风险,实现解决;
图7-8 软件质量保障体系
图7-9 某公司软件质量管理组织机构图
·项目评审小组:对项目管理委员会负责,属非常设机构,由提出评审的项目负责人、其他相关项目负责人、技术专家和市场专家组成。负责对项目可行性报告、市场计划和阶段报告、开发计划和阶段报告、项目总结报告进行评审;
·软件产品项目组:对项目管理委员会负责,负责具体软件项目的开发。成员一般由开发人员构成,具体成员由项目管理小组提出,由项目经理担任项目组长,项目组成员含项目经理、SA小组、QA人员、开发人员、测试人员与配置管理人员(图7-10)。其中:
·项目经理:对整个项目全过程负责,组织、计划、协调、监督、控制项目进度和状态,组织、协调项目开发团队,编写阶段性评审文档,并提交项目管理小组,组织整理、统计分析、量化软件项目研制过程要素,编写开发计划,并按计划完成各阶段任务;
·系统分析员(SA)小组:与业务人员沟通并了解项目需求,设计实现方案,对系统的总体技术和体系结构设计,进行项目需求分析、概要设计与详细设计,协助项目经理(PM)建立项目的任务树、制定模块开发卷宗,完成测试设计;
·质量(QA)人员:负责制定开发部门的项目管理流程和规范,确定管理工具,对项目的进度、质量、阶段工作、规范工作流程负责,在评审过程中对关键性文档审核,辅助制定测试计划,完成测试分析报告,对相关反馈表进行整理和统计,及时调整工作或者协调其他人员对质量的认识,根据流程对项目经理提交的相关文档进行审核;
·配置管理人员(CM):负责整个开发过程中标识控制、变更管理和版本控制,在立项时完成配置管理计划,并在项目进行过程中完成对配置管理计划变更的跟进工作,确保项目组内部的备份工作,形成配置状态报告。
·开发人员:根据开发计划完成开发任务,完成测试设计并完成模块测试;
·测试人员:负责开发过程中的各种测试工作,搭建测试平台,完成测试报告、帮助文档、用户手册、操作手册的编写。
图7-10 项目组组织结构
(3)质量计划的目的是保证软件产品和软件项目满足质量方针所定义的活动。质量计划详细描述每个阶段要执行的软件质量保证活动,清楚定义评审的内容和过程。表7-3是某公司的质量计划模板。
表7-3 某公司的质量计划模板
1 质量目标
质量目标,尽可能用测试的条款表达
2 SQA组织
2.1 SQA组的组成(www.xing528.com)
SQA的成员及资格说明(经验与培训)
2.2 SQA职责和权力
2.3 SQA组的资源需求
3 SQA任务
3.1 规程与标准
明确项目标准和规程,作为SQA评审和审计的基础
3.2 明确质量活动的责任
如检查、审计和测试,配置管理和变更控制,测量和报告,缺陷控制和纠正措施
3.3 阶段划分与任务列表
为每个开发阶段定义入口和出口条件,划分SQA的工作阶段,确定评审与审计的类型,明确SQA作业,可依据项目特点对作业列表进行裁剪与增添
3.4 测试与评估
确定测试的类型,对于产品规范、计划要求、测试规范及采用的开发方法和工具的确认和验证活动;通过详细的测试和验证活动计划,对包括资源、进度和审批等方面进行评估
3.5 全程的偏差跟踪
根据任务列表进行全程偏差跟踪。
4 SQA报告
4.1 文档化SQA组的活动结果
软件产品评价报告
软件工具评价报告
项目设备评价报告
过程审核报告测量报告
4.2 提供给软件工程组和其他相关组SQA活动反馈的方法和频率
周报、月报与重要报告等提交的方式与日程(可在计划表中体现)
(续表)
(4)质量控制是质量保证体系当中最复杂也是最关键的一环,牵涉到质量控制流程和质量度量两个部分。质量度量可以采用7.2节所谈到的任何一种软件质量模型进行,也可以自定义软件质量标准和方法。质量度量的目的是为质量控制和质量改进提供依据。质量控制流程贯穿于软件产品的整个生命周期,从项目立项开始就需要制定相关的质量目标,并根据质量目标制定质量保证计划,在项目实施过程中需要开展配置管理、变更控制、缺陷控制、评审等活动,通过这些活动来支持软件质量保证,在项目结束后需要进行总结分析,为下一个项目的开展提供保证。具体项目实施过程中的配置管理、变更控制、缺陷控制、评审等内容将在后续部分介绍。
(5)质量改进即是针对软件产品项目本身也是针对质量管理体系本身。从质量管理体系本身的角度出发,质量管理体系就是一个不断试错和完善的过程,这其中不仅涉及质量管理体系的制度和流程,也涉及具体实施的人员,任何时候都做不到一开始就十全十美,就像软件质量模型的演进一样,对于质量管理的认识是一个在实践当中不断深化的过程;从项目本身出发,不能够保证完全符合用户的需求,同样也不能保证产品的质量符合相关的规范,这也是为什么在质量控制过程中需要进行评审和测试的原因。通过质量控制所发现的问题是必须解决的,质量改进也就是要解决这些问题,这些问题包括软件缺陷本身,同时也包括软件开发过程当中的项目管理、开发技术、开发方法以及文档等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。