解决方案

软件研制质量控制实施指南

发布时间:2021.11.25 浏览次数:655

1. 引言

软件研制质量控制是确保软件产品满足规定要求的重要手段,贯穿于软件研制的全过程。随着软件系统规模和复杂度的不断增加,软件质量问题日益突出,加强软件研制质量控制已成为软件行业的共识。

软件研制质量控制的目标是通过系统的质量活动,预防和发现软件缺陷,提高软件产品质量,降低软件维护成本,确保软件系统的可靠运行。软件研制质量控制需要建立完善的质量管理体系,明确质量职责,规范质量活动,持续改进质量水平。

2. 质量策划

2.1.1. 质量策划概述

质量策划是质量管理的重要组成部分,是确定质量目标和质量要求的活动。质量策划应在项目启动阶段进行,根据项目特点和用户需求,制定适合的质量目标、质量计划和质量措施。

质量策划的内容应包括:质量目标的确定、质量活动的规划、质量资源的配置、质量风险的识别、质量度量的设计等。质量策划的结果应形成质量计划文件,作为项目质量管理的依据。

2.1.2. 质量目标设定

质量目标是质量策划的核心内容,应根据用户需求、项目特点和行业标准确定。质量目标应具有可测量性、可达成性和时效性,便于后续的质量考核和改进。

软件项目的质量目标通常包括:功能正确性目标、性能效率目标、可靠性目标、安全性目标、可维护性目标等。质量目标应分解到各个阶段和各个环节,形成分阶段的质量目标体系。

2.1.3. 质量计划编制

质量计划是质量策划的输出文件,应包括以下内容:项目概况和质量目标、质量管理组织和职责、质量活动安排和时间节点、质量方法和工具、质量资源配置、质量度量指标、质量风险评估和应对措施。

质量计划应经过评审和批准后实施,实施过程中应根据实际情况进行调整和完善。质量计划的变更应经过审批,变更记录应完整保存。

3. 构建跨部门质量管控架构

由公司质量部牵头,搭建涵盖所有研发小组的跨部门质量管控架构,依托公司成熟的质量保证体系,确保交付产品严格契合战术技术指标。该架构由行政指挥、技术指挥、质量师、标准化师四大核心角色构成,各角色分工明确且协作紧密。行政指挥统筹系统研制生产与管理质量,各研发小组在行政指挥及本部门行政正职的双重领导下,对自身承担的研制工作质量负责,清晰界定部门及各类人员的质量职责边界;技术指挥专注于系统研制的设计、开发、试验质量,确保各项工作严格遵循技术规范与质量要求,依照既定研制程序有序推进;质量师全权负责系统研制质量工作,严格落实质量法规,依据质量保证大纲对项目研制过程进行全方位监督、检查、质量控制与管理;标准化师主导系统标准化工作,为各研发小组提供规范化设计、开发与试验的专业指导。同时,建立定期沟通机制,每周召开质量管控协调会,各角色汇报工作进展与问题,共同商讨解决方案,确保信息流通顺畅,质量管控工作高效协同。

跨部门质量管控架构流程图:

行政指挥统筹系统研制生产与管理质量 → 技术指挥专注系统研制的设计、开发、试验质量 → 质量师负责系统研制质量工作的监督、检查、控制与管理 → 标准化师主导系统标准化工作,为各研发小组提供专业指导 → 每周召开质量管控协调会,各角色汇报工作进展与问题,共同商讨解决方案

 

4. 编制全流程质量保障纲要

为确保全系统各类业务软件研制质量满足使用需求与战术技术指标,对系统设计、开发、测试、服务全流程实施精准有效的质量控制与管理,公司作为项目承研单位,在产品研制启动前编制全流程质量保障纲要。大纲编制依据国家相关质量法规、行业标准以及公司内部质量管理体系文件,主要内容涵盖质量目标设定、各阶段质量控制要点、质量责任分配、质量考核标准等。编制完成后,需经过内部评审、外部专家审核以及公司高层审批等严格流程,确保大纲的科学性与可行性。同时,大纲需与公司现有质量管理体系深度衔接,明确大纲体系与原有体系的互补关系,避免出现管理冲突,实现质量管控的无缝对接。

5. 推进质量保障纲要落地执行

项目质量管理组负责牵头拟制系统质量保障纲要,并按规定流程提交评审。大纲实施作为产品生命周期内管理工作的核心环节,需全面融入项目研制的各个阶段。项目各研发小组需严格依托公司规范统一的质量管理体系,按照大纲规定的内容、控制方法,扎实开展质量保证活动。建立健全大纲实施的考核机制,将质量指标完成情况与团队绩效、个人薪酬紧密挂钩,定期对各研发小组的质量工作进行考核评估,对表现优秀的团队和个人给予奖励,对未达标的进行问责整改。同时,构建持续改进机制,定期收集质量数据、分析质量问题,针对薄弱环节及时优化大纲内容与实施流程,不断提升质量管控水平。

公司质量部门负责组织对大纲的实施情况进行常态化监督、检查,采用定期检查与不定期抽查相结合的方式,深入各研发小组了解大纲执行情况。检查过程中,详细记录检查结果,形成规范的检查报告,对发现的问题及时下达整改通知书,明确整改期限与要求。同时,建立检查结果反馈机制,将检查情况及时通报给相关部门和人员,促进各部门不断改进质量工作。

6. 需求阶段质量控制

6.1.1. 需求分析质量控制

需求分析是软件研制的起点,需求质量直接影响后续设计开发的质量。需求分析阶段的质量控制应确保需求的完整性、正确性、可行性和一致性。

需求分析质量控制措施包括:需求调研的充分性检查、需求文档的规范性审查、需求评审的有效性保障、需求变更的规范化管理等。需求评审应邀请用户代表参加,确保需求准确反映用户意图。

6.1.2. 需求跟踪管理

需求跟踪是确保需求得到实现的重要手段,应建立需求跟踪矩阵,记录需求与设计、代码、测试用例之间的对应关系。需求跟踪应在整个研制过程中持续维护,确保每个需求都得到实现和验证。

7. 设计阶段质量控制

7.1.1. 概要设计质量控制

概要设计是确定软件总体架构的关键阶段,概要设计质量控制应确保设计方案的合理性、可行性和可扩展性。概要设计应组织评审,评审内容包括架构设计、模块划分、接口设计、数据设计等。

概要设计质量控制措施包括:设计方案的论证比较、设计文档的规范性审查、设计评审的有效性保障、设计变更的控制管理等。设计评审应由专业人员参加,评审意见应认真分析和处理。

7.1.2. 详细设计质量控制

详细设计是确定模块内部实现方案的重要阶段,详细设计质量控制应确保设计方案的完整性和正确性。详细设计应组织评审或审查,检查设计逻辑的正确性和实现方案的合理性。

详细设计质量控制措施包括:设计方法的规范性、设计文档的完整性、设计评审的有效性、设计变更的控制等。代码编写前应完成详细设计评审,确保设计质量。

8. 编码阶段质量控制

8.1.1. 编码规范执行

编码规范是保证代码质量的基础,应制定统一的编码规范,明确代码风格、命名规则、注释要求等。编码规范的执行应通过代码审查进行检查,发现问题及时纠正。

编码阶段应建立代码走查机制,通过同行评审发现代码缺陷。代码走查应关注代码的正确性、可读性、可维护性和安全性等方面,走查发现的问题应记录并跟踪处理。

8.1.2. 单元测试实施

单元测试是验证代码单元正确性的重要手段,应在编码完成后及时进行。单元测试应编写测试用例,覆盖代码的各种执行路径,验证代码功能的正确性。

单元测试质量控制措施包括:测试用例的完整性检查、测试覆盖率的分析评估、测试结果的记录保存、缺陷修复的验证确认等。单元测试通过后方可进行代码集成。

9. 测试阶段质量控制

9.1.1. 测试过程管理

测试是发现软件缺陷的重要手段,测试过程质量控制应确保测试活动的系统性和有效性。测试过程应按照测试计划进行,测试用例应覆盖功能需求和性能需求。

测试质量控制措施包括:测试计划的完整性审查、测试用例的覆盖率分析、测试执行的规范性检查、测试结果的准确性验证等。测试发现的问题应及时记录、分析和处理。

9.1.2. 缺陷管理

缺陷管理是测试阶段的重要工作,应建立缺陷跟踪机制,对缺陷进行分类、分析和处理。缺陷应按照严重程度和优先级进行管理,重要缺陷应优先处理。

缺陷管理措施包括:缺陷报告的规范性要求、缺陷分析的深度要求、缺陷修复的时效要求、缺陷验证的完整性要求等。缺陷修复后应进行回归测试,确保缺陷得到有效解决。

10. 验收阶段质量控制

10.1.1. 验收准备

验收是软件交付前的最后质量把关,验收准备应确保交付产品的完整性。验收准备内容包括:验收文档的准备、验收环境的搭建、验收数据的准备、验收人员的组织等。

验收质量控制措施包括:文档完整性的检查、系统功能的验证、性能指标的测试、用户满意度调查等。验收应按照验收规程进行,验收结果应形成验收报告。

10.1.2. 交付管理

软件交付应办理正式的交付手续,明确交付内容和双方责任。交付物应包括程序、文档、数据等,交付清单应完整准确。交付后应提供必要的技术支持和服务。