1、第 1 页 共 20 页项目质量管控方案1 项目质量管控方案1.1 前言1.1.1 目的本计划的目的在于对所开发的软件规定各种必要的质量保证措施,以保证所交付的软件能够满足项目预定需求,能够满足本项目总体组制定的且经领导小组评审批准的该软件系统需求规格说明书中规定的各项具体需求。 软件开发项目组在开发软件系统所属的各个子系统(其中包括为本项目研发或选用的各种支持软件、组件)时,都应该执行本计划中的有关规定,但可根据各自的情况对本计划作适当的剪裁,以满足特定的质量保证要求,剪裁后的计划必须经项目组相关负责人批准。 1.1.2 术语和定义1、质量管理:在质量方面指挥和控制组织的协调活动2、质量策划
2、:质量管理的一部分,致力于制定质量目标并规定必要的运行过程 3、和相关资源以实现质量目标4、质量控制:质量管理的一部分,致力于满足质量要求5、质量保证:质量管理的一部分,致力于提供质量要求会得到满足的信任6、质量度量:质量管理的一部分,致力于对已存在的质量数据进行分析,得出当前质量管理结果的评估数据。7、质量改进:质量管理的一部分,致力于增强满足质量要求的能力1.2 质量计划:制定新项目及维护性项目质量计划在本环节中,根据项目的规模及性质进行质量策划,制定本项目的质量计划;为后续的质量控制、质量评估及质量改进做出行动纲领。针对公司主要有新项目及维护性项目两类版本,且两者之间的质量投入有所差异的
3、特性,故质量计划可以区分以下:第 2 页 共 20 页1.2.1 常规项目质量计划要求常规项目的质量计划制定按质量要求分析/质量目标/人员.职责及质量保障、过程检查计划组成,各项的具体要求如下所述。1.2.1.1 质量要素分析 1. 主要的质量要性如下: 功能性质量因素:正确性,健壮性,可靠性 非功能性质量因素:性能,易用性,清晰性,安全性,可扩展性,兼容性,可移植性 其它质量因素:非以上要求之外的要求。2. 根据产品的特性及市场目标,将关键的质量要素确认,同时区分本项目的类型 倾质量型项目:指本项目对质量控制更关注 倾成本型项目:指本项目对成本控制更关注 倾工期型项目:指本项目对工期要求更关
4、注根据以上分析,再制定相应的质量目标。1.2.1.2 质量目标订立质量目标时,一般遵循 SMART 原则S:specific 具体的M:measurable 可测量的A:achievable 可取得的R:realistic 切实的T:timely 及时的根据以上原则,我们可以制定如下质量目标:1. 比如本项目的质量要素为功能正确性、功能健壮性、性能那质量目标可定义例下: 需求中所定义的功能都得以实现 不稳定问题(等级非轻微)都被解决 关键模块(模块名称)的性能不能低于 V1.0 版本2. 针对质量目标定出优先级 1、3、23. 目标分解第 3 页 共 20 页 分解为阶段质量目标 完成阶段质量
5、目标的手段1.2.1.3 人员与职责 参加质量管理活动的人员,一般情况下,项目组所有的人都可以参与到质量管理活动中来。但我们一般可定义如下人员去分别承担相应的职责。1. 质量管理人员:制定质量管理计划,对质量过程进行控制;对过程检查单进行实施;进行质量度量,制定质量改进计划及实施;参与各类评审活动。2. 测试人员:制定测试计划,对项目进行测试,进行测试结果的度量分析;参与各类评审活动。3. 项目管理人员:协助组织解决质量管理过程中所发现的各类问题及风险。1.2.1.4 质量保障计划根据当前的质量目标,计划需要进行哪些质量保障工作,一般可包括专业培训、同级评审、测试。1.2.1.4.1 培训1.
6、 确认是否需要培训2. 确认培训的内容、人员、时间,以及所耗费的资源。1.2.1.4.2 评审1. 确认评审内容及计划;需要包括评审的内容、评审的方式以及评审的人员等等。2. 对评审结果的跟踪、管理方式。1.2.1.4.3 测试1. 根据当前的质量目标,确定测试的初步计划,包括测试的范围及测试方法、手段以及投入的人力及时间资源1.2.1.5 过程检查计划 根据当前的质量目标,制定项目过程中需要检查的对象、例如:阶段 检查对象 检查时机 次数 检查执行人员 检查依据计划阶段计划阶段的产出项目组成立之后至计划阶段3 次 对应测试接口人根据计划阶段检查清单进行检查第 4 页 共 20 页结束需求阶段
7、需求评审 需求评审启动 1 次 对应测试接口人根据需求阶段检查清单进行检查。1.2.2 维护性项目质量计划要求维护性项目的质量计划制定相对简单,不需要花较多的时间在其上,并且可以套用比较固定的模板。维护性项目基本上会有很明确的需求点以及具体的时间点要求,一般情况下,维护时期会很长,且需求相对较散、小,针对这些特性,维护性项目的质量计划要求仅可以包括:质量目标、质量保障计划、过程检查计划。1.2.2.1 质量目标根据当前的需求简单定出本版本的质量目标。1.2.2.2 质量保障计划在维护性项目中,质量保障计划主要包括:需求讨论、联调以及测试。需求讨论:参与人员包括开发及测试人员;需求讨论结果报告联
8、调:对所做的修改及周边进行联调;联调测试报告测试:根据质量目标制定相应的测试计划安排,1.2.2.3 过程检查计划无论质量目标定为如何,维护性项目的过程检查,仅需要如下环节: 需求讨论会:是否进行了需求讨论会,需求讨论会的与会人员及结果 联调:是否进行了联调,对原版本的影响 测试执行:对测试过程进行检查1.3 质量保证与控制质量保证与控制是质量管理中最重要的一个环节,质量目标是否能够有效的实现都有赖于此环节的实施控制。本环节根据质量保障计划、过程检查计划对版本开发的各过程定出质量指导方针、评审环节规则以及检查清单。其中质量指导方针:用于简要指引如何高质量的完成本阶段的工作评审管理:主要制定简单
9、的评审输入、输出以及该阶段评审的基本准则任务检查单:用于检查该阶段的任务是否进行以及进行的效果如何第 5 页 共 20 页常存在的问题:更多的是让各成员了解一些经验所谈会存在哪些问题,可提前预防或纠正1.3.1 计划阶段计划阶段指从项目启动至项目总体计划制定完成的阶段。1.3.1.1 质量指导方针在项目的计划阶段,期望产出高质量的项目总体计划,建议遵守以下原则:1. 根据项目总体计划模板 、 项目总体计划编制说明书的指导原则进行计划编排2. 计划制定时需结合实际并与相关人员进行必要的沟通3. 了解项目背景、项目目标以及可调动的资源等4. 计划制定时需考虑相应风险及应对措施:如人员变动、需求变化
10、、技术难题5. 对于把控不准的项目进行不同层面的评审1.3.1.2 评审管理计划阶段的评审主要指项目总体计划的评审。1.3.1.2.1 评审输入项项目总体计划以及当前项目原始需求等相关资料1.3.1.2.2 评审准则项目总体计划的评审主要从完整性、正确性、合理性、可管理性进行评审。评审项 评审要求 备注完整性 1. 是否包括从需求至发布各个阶段的任务计划?2. 是否对各任务的交付件定义了质量要求?正确性 1. 各阶段定义是否正确?2. 各子任务所属的阶段是否正确?合理性 1. 各个任务的先后顺序是否合理?并串行安排是否合理?2. 各任务分配的资源是否合理?3. 各任务细化的程度是否合理?4.
11、任务与任务之间的约束是否合理?5. 各阶段的时间投入比例是否合理?6. 项目的结束时间,是否与客户承诺的一致7. 项目的计划中是否考虑一些常见的风险?8. 对风险的应对是否体现在计划中?第 6 页 共 20 页评审项 评审要求 备注可管理性 1. 对于每个阶段是否有明确的里程碑事件?2. 里程碑是否有明确、可衡量的目标?3. 里程碑达到时,是否能提供标志阶段结束的正式输出文档?1.3.1.2.3 评审输出评审结果输出包括:1. 评审结果记录表1.3.2 需求阶段需求阶段指从需求获取至输出需求规格说明书阶段。需求阶段可划分为:获取需求、分析需求、编写需求规格说明书三个阶段。1. 获取需求:主要从
12、编写项目视图与范围、用户群分类、选择产品/项目需求代表、确定使用实例、分析工作流程、需求重用这几步骤进行2. 分析需求:包括绘制关联图、创建开发原型、分析可行性、划分需求优先级;3. 编写需求规范说明书:根据项目特点裁剪模板、获取功能和技术需求、注明需求来源、开发需求追踪矩阵。1.3.2.1 质量指导方针 根据需求模板 、 需求编写指导说明书制定需求说明文档 需求文档中应包括明确的需求范围 需求文档中应包括主要的质量属性 需求需细化到要求的程度(可以根据需求进行开发设计及测试设计) 需求的不确定项不超过总体需求的 5% 需求中应明确定义需求的优先级 制定需求管理原则(包括需求标识、跟踪方式、变
13、更控制原则)1.3.2.2 评审管理需求阶段评审主要针对需求的清晰性、正确性、完整性、可管理性进行评审。评审的形式按实际的质量计划中要求而定。第 7 页 共 20 页1.3.2.2.1 评审输入项技术方案建议书 、 需求分析 、 需求规格说明书1.3.2.2.2 评审准则需求评审时,主要针对需求的清晰性、正确性、完整性、可行性、可管理性进行评审,评审细项如下图所示:评审项 评审要求 备注1. 系统的目标是否已定义?2. 是否对关键术语及略缩语进行了定义?1清晰性3. 是否有对整套系统进行了功能概述?1. 需求与需求之间是否有重复或冲突?2. 本需求说明书与相关需求素材是否一致?3. 是否清晰、
14、简洁、无二义地表达了每个需求? 4. 是否每个需求都在项目的范围内2正确性5. 是否每个需求都没有内容和语法上的错误? 1. 编写的所有需求,其详细程度是否一致和合适? 2. 需求是否能为设计提供足够的基础? 3. 所有对其他需求的内部引用是否正确? 4. 是否已经列出了系统所必要的依赖/假设以及约束5. 是否包含了所有已知的客户需求或系统需求? 6. 是否已经对每个业务逻辑进行输入、输出以及过程的详细说明7. 是否已详细说明了软件环境(共存的软件)和硬件环境(特定的配置)8. 是否遗漏了必要的信息?如果有遗漏的话,把他们标记为待确定的问题(TBD) ? 9. 是否包括了主要的质量属性,例如性
15、能要求、安全性要求、可靠性要求、可恢复性要求、稳定性要求等等10. 是否分析了潜在的需求3完整性11. 是否标识并解决了需求中的潜城的问题1. 所描述的所有功能是否都必要?2. 所描述的所有功能是否充分的满足客户/系统目标?3. 已知的限制(局限)是否已经详细说明?4. 是否已经确定每个需求的实现优先级?5. 在现有的资源内, 是否能实现所有的需求?4可行性6. 是否每个需求都可以进行验证(测试)?1. 是否将需求分别陈述,因此它们是独立的并且是可检查的?2. 是否所有需求都可以回溯到相应的需求素材,反之亦然?5可管理性3. 是否已详细说明需求变更的过程?第 8 页 共 20 页评审项 评审要
16、求 备注1. 是否存在冲突或重复的需求项2. 开发计划/产品和活动和需求是否保持一致3. 是否可以根据软件需求规范中的信息制定出详细的测试集,并且每项需求是否可以测试一致性4. 是否有需求跟踪矩阵1.3.2.2.3 评审输出1. 评审结果清单2. 根据评审修订后的需求规格说明书1.3.3 设计阶段设计阶段包括技术方案形成、概要设计、原型设计、详细设计(如果有的话)等工作的完成。1.3.3.1 质量指导方针1. 根据概要设计文档模板要求及需求剪裁适合当前项目的模板2. 根据模板编写概要设计说明书3. 对于质量计划中的关键质量属性在设计中需要重点考虑4. 需要针对项目的结构、项目的特征和用户的需求
17、来分析,同样也要考虑到参与项目小组成员的素质5. 对于不同的方案分别进行评估6. 对概要设计文档进行同行评审7. 在设计阶段同时完成原型的设计8. 根据实际需要考虑是否需要进行详细设计9. 涉及到的需求变更需同步知会其它环节的更新。1.3.3.2 评审管理在设计阶段需要对设计实现方案、设计、原型等进行评审;评审的形式按实际的质量计划中要求而定。第 9 页 共 20 页以下仅提供概要设计说明的评审准则1.3.3.2.1 评审输入项概要设计说明书 , 需求规格说明书1.3.3.2.2 评审准则概要设计说明书评审准则评审项 评审要求正确性 1. 设计说明书的编写是否按照标准模板来编写?2. 设计是否
18、正确?是否能够满足需求?可行性 3. 设计方案在现有条件下是否可行?可理解性 4. 设计方案是否能被相关人员理解?5. 是否包括核心功能的实现方案?6. 所有的功能需求与非功能需求是否都体现在了设计中?7. 在设计中是否增加了不必要的功能? 8. 是否为未来的变更进行了过渡设计?9. 各子系统、模块之间的关系是否描述得清楚10. 系统的设计是否考虑了系统的可扩展性11. 设计是否考虑了重用性12. 重用构件是否进行了标识13. 是否说明了重用模块的获取方式和相关的文档14. 系统的设计是否考虑了系统的易移植性15. 设计是否使用标准的技术,避免使用怪异的、不易理解的方式和方法完整性16. 设计
19、的调用宽度、调用深度、耦合度、内聚度和结构化程度是否进行了描述17. 设计是否可以跟踪到需求可追溯性18. 需求是否可以追溯到设计1.3.3.2.3 评审输出评审结果列表 、评审修订后的概要设计文档1.3.4 开发阶段开发阶段主要从代码规范、代码走查、调测等进行控制管理。1.3.4.1 质量指导方针1. 约定开发的编码规范2. 约定代码审计所需的时间及规则第 10 页 共 20 页3. 约定开发阶段的调测方式4. 约定开发阶段自测的标准5. 约定提交版本提交的原则1.3.4.2 代码走查走查项 走查要求 备注编码是否符合项目或组织的编码标准头文件包含是否完整参数在程度开始时是否被初始化参数在循
20、环开始时是否被初始化在承数或过程调用的时候参数是否被初始化函数调用的格式和参数是否正确变量的声明和拼写是否一致变量声明的范围是否恰当是否所有的指针都被初始化为 NULL程序中申请的内存使用后是否释放是否每个=,|等都验证了正确性规范性是否打开的文件都及时关闭了1.3.5 测试阶段1.3.5.1 质量指导方针1. 尽早的介入测试,所有的测试都可以追溯到需求2. 在测试相应方案启动之前,必须先理解且分析需求3. 根据质量计划来制定相应的测试计划4. 测试计划中需涵盖所有关键质量属性5. 进行测试计划评审及修订6. 建立测试用例对测试需求的覆盖率7. 进行测试用例评审及修订8. 不同测试阶段可有计划的调整当前的测试重点1.3.5.2 评审管理测试评审包括测试方案、测试用例的评审,一般可分为内部评审及外部评审;评审的形式按实际的质量计划中要求而定。以下仅提供测试用例的评审准则。