五、软件研发质量管理办法
第1章 总则
第1条 目的。
软件研发质量管理主要和软件评审行为密切相关,为加强对软件质量的管理,符合标准及规范的要求,确保技术文档齐全正确并且系统便于维护,不断提高公司软件产品的质量水平,特制定本办法。
软件研发质量管理的目的是确保软件产品的质量特性满足客户和最终用户的需求和期望,同时实现软件产品的可靠性、可用性、安全性等方面的目标。它是软件开发和维护过程中不可或缺的一环,通过有效的质量管理,可以减少软件产品在开发、测试、部署、运行等过程中的缺陷和错误,提高软件产品的可靠性、可用性和安全性,从而提升用户满意度和软件产品的市场竞争力。
第2条 适用范围。
本办法适用于软件研发过程中的质量管理相关工作事项,包括需求管理、设计和开发、测试、发布和部署、运维和支持等阶段,旨在确保在软件开发过程中持续提高质量并降低风险。
第3条 相关职责。
1.软件研发人员(需求分析、设计开发、测试运维)
软件研发人员在研发项目的初始阶段组织人员编写“研发项目质量控制计划”。
2.研发项目质量管理负责人
研发项目质量管理负责人负责研发项目实施过程中的质量控制,对其进行评价,组织相关人员制定并实施纠正措施与预防措施。
3.研发项目质量管理人员
研发项目质量管理人员负责项目研发过程中规定数据的记录和统计,参与研发过程和产品质量改进的相关活动。
第4条 软件质量特性。
软件质量特性包括外在特性和内在特性。
1.外在特性主要包括正确性、可用性、效率、可靠性、安全性等。
1)正确性是指软件功能是否能够正确处理输入数据并产生正确的输出结果;
2)可用性是指软件产品是否易于使用,用户是否可以轻松地完成所需的任务;
3)效率是指软件在处理任务时是否能快速且占用的资源是否较少;
4)可靠性是指软件产品在运行过程中是否稳定可靠,是否存在崩溃或故障的情况;
5)安全性是指软件产品是否能够保护用户的数据和隐私,防范黑客攻击和其他安全威胁。
2.内在特性主要包括可理解性、可测试性、可维护性、可扩展性和可移植性。
1)可理解性是指软件产品的代码和文档是否易于理解,经验丰富的程序员或管理员能否轻松地阅读和维护代码;
2)可测试性是指软件产品是否易于测试,测试人员是否可以快速地编写测试用例并执行测试,确认软件是否符合要求;
3)可维护性是指软件产品是否易于修改和维护,当需要进行功能增强或缺陷修复时是否可以快速地进行修改和维护;
4)可扩展性是指软件产品是否易于扩展和升级,当需要增加新功能或进行升级时是否可以方便地进行扩展和升级。
5)可移植性是指软件从某一环境转移到另一环境下的难易程度,其包括很多方面,如设计灵活、易于理解、复用性强、可靠度高、便于测试维护等。
第2章 编制质量控制计划
第5条 软件质量控制程序。
1.编制并执行质量计划。
2.进行过程评审。
3.软件测试与缺陷跟踪。
4.建立报告制度。
第6条 质量控制计划内容。
研发项目负责人在项目策划阶段组织人员编制的质量控制计划应结合项目的规模、目标、研发周期等具体情况,所编制的质量控制计划应包括以下三个方面的内容。
1.研发项目的质量目标。
2.研发项目中的质量保证活动人员的职责与权限。
3.项目研发过程中的质量控制措施。
第7条 软件研发过程质量控制计划。
软件研发过程质量控制需要建立对项目的软件产品质量的定量理解,并着重于确定软件产品的质量目标、制定达到这些目标的计划,并监控及调整软件计划、软件工作产品、活动及质量目标以满足用户需求。
此外,质量管理过程还需要控制软件产品的可靠性,利用统计数据来估算软件的可靠性,并采用配置管理的手段来确保错误最小化并提高生产率。
进一步地,质量管理流程需要明确每个阶段的质量管理目标、职责和具体实施方法,以便于对软件产品质量进行全面的管理和控制。同时,软件质量特性(见第4条)是衡量软件质量的重要指标,也是软件质量管理办法需要关注的重要方面。
在软件质量控制过程中,还需要建立质量标准和过程标准,通过不断地检查和评审来保证软件质量,并不断地改进和优化质量控制过程。同时,需要建立相应的文档和记录,该文档独立于软件产品研发各阶段的文档,主要用于跟踪产品质量问题,以便于后续的维护和管理。
软件质量控制过程要贯穿整个研发过程,包括以下步骤:
1)需求分析阶段,严格审核,确保需求文档的准确性和完整性。同时,需要与用户进行沟通,明确用户需求和技术标准。
2)设计阶段:在设计阶段需要采用测试工具或其他手段来检查和确认设计的正确性。
3)编码阶段:要求采用规范化的编码风格和标准的代码实现方式。在编码过程中需要进行代码审查和测试,确保代码的质量和可靠性。
4)测试阶段:进行功能测试、性能测试、安全测试等,重点确保软件系统符合需求文档和设计文档的要求。
5)发布阶段:完成测试后进行软件审核后才能发布,并进行后续的维护和服务,进行迭代优化提升产品质量。
第3章 软件评审
第8条 软件评审主要工作。
软件评审的工作主要包括以下几点:
1)评审软件研发产品内容(软件代码、产品资料等)是否满足用户或客户要求和规范。
2)识别软件产品相对于政策、标准、行业要求的偏差,保证产品与标准的符合度。
3)积极向软件研发人员提出改进建议,优化软件产品。
4)在软件研发的各个阶段评估研发工作是否符合预定的标准,协助软件研发人员在研发初期找出工作中的错误。
5)研发人员需要按照评审意见进行修改,并在修改后重新进行评审,确保修改后的软件质量仍然符合标准
6)输出评审内容及改良建议,促进技术交流和学习,提升研发团队的技术水平。
第9条 软件评审人员。
1.评审活动主持人:负责领导与组织审查工作,一般由评审经验丰富的资深研发同行担任,可以是部门内其他研发项目的项目主管,而不能由被评审项目的管理人员担任。
2.研发人员:被评审项目的人员。
3.评审员:人数一般为5~6人,担任者为技术方面的同行。
4.记录员:担任者为技术方面的同行。
第10条 评审内容。
评审具体内容应参照各相关过程的程序文件执行,如需求分析阶段的评审按照需求分析程序的有关规定进行,开发设计阶段的评审按照开发设计程序的有关流程进行。
第11条 评审实施流程。
1.人员培训:项目进行初次评审前,需对评审人员进行相关培训,使其熟悉评审程序与相关标准,以提高评审工作的有效性和效率。
2.评审准备:研发人员及其管理人员准备好待评审软件,准备好评审所需的材料。
3.分发评审材料,即在评审会议前两天将评审材料和评审表格分发给每一位评审员阅读。
4.召开评审会议:评审主持人、评审员、研发人员、记录员参加评审会议,会议的重点是查找问题,会议时间一般控制在两个小时,记录员整理评审内容。
5.评审报告:记录员依据会议意见整理成评审报告,填写“评审总结表”,经主持人签字后生效,交研发工作人员。
6.软件修复:研发人员根据评审报告对软件进行修复,修复完成后再次申请评审。
7.缺陷跟踪:缺陷跟踪人员将评审出的缺陷录入缺陷跟踪数据库,实施缺陷跟踪与监督。
第4章 建立质量报告制度
第12条 报告程序。
研发人员在研发项目过程中建立报告制度,相关的质量管理人员应定期编写质量控制报告报相关领导审核,使相关领导能够全面了解软件研发质量控制情况,并制定有针对性的措施,以确保整个项目的质量。
报告文稿格式可按项目要求拟定,项目团队达成一致即可。
第13条 项目质量报告类型。
1.质量情况周或月报。
2.异常情况报表。
3.质量整改反馈报表。
4.质量管理人员工作周报。
第5章 附则补充
第14条 委托第三方评估,主要是在软件产品基本完成情况下。
1.准备软件质量检测委托书。这应该包含软件名称、版本/型号、样品名称(全称和简称)、功能、性能、运行环境等信息。
2.将上述材料和相关的用户使用手册或说明书等文档提交给相关的质量检测机构进行质量检测。
3.质量检测机构根据提交的材料进行测试,并根据测试结果撰写软件质量报告。
4.将软件质量报告提交给相关部门进行审核和批准。
第15条 注意提高质量管理效率。
首先,将质量目标与实际工作结合,并建立项目适应的管理机制和流程。
其次,需要了解软件质量管理的工具和方法,包括测试工具、质量管理工具、缺陷跟踪工具等,以便于更好地进行软件质量管理和控制。
另外,注重文档的管理和记录,以便于后续的维护和管理。同时,需要注重人员培训和管理,提高人员素质和工作能力,从而更好地保证软件质量。
最后,注重持续改进和优化,及时总结经验和教训,以便于不断提高软件质量水平。