CMMI-质量保证

news2024/9/23 5:23:02

质量保证(Quality Assurance, QA)的目的是提供一种有效的人员组织形式和管理方法,通过客观地检查和监控“过程质量”与“产品质量”,从而实现持续地改进质量。质量保证是一种有计划的、贯穿于整个产品生命周期的质量管理方法。

质量保证过程域是SPP模型的重要组成部分。本规范阐述了质量保证过程域的三个主要规程:

  • 制定质量保证计划 [SPP-PROC-QA-PLANNING]

  • 过程与产品质量检查 [SPP-PROC-QA-PPQC]

  • 问题跟踪与质量改进 [SPP-PROC-QA-TRACKING]

上述每个规程的“目标”、“角色与职责”、“启动准则”、“输入”、“主要步骤”、“输出”、“完成准则”和“度量”均已定义。

本规范适用于国内IT企业的软件研发项目。建议用户根据自身情况(如商业目标、研发实力等)适当地修改本规范,然后推广使用。

18.1 介绍

过程质量与产品质量存在某种程度的因果关系,通常“好的过程”产生“好的产品”而“差的过程”将产生“差的产品”。人们销售的是产品而不是过程,用户关心的是最终产品的质量,而开发者(团队)既要关心过程质量又要关心产品质量。

提高产品质量有三种基本方法:

  • 质量保证。质量保证人员通过有计划地检查“工作过程以及工作成果”是否符合既定的规范,来监控和改进“过程质量”与“产品质量”。

  • 技术评审。请同行专家、技术人员对工作成果进行评审,尽早发现工作成果中的缺陷。

  • 测试。通过运行测试用例来找出软件中的缺陷。例如单元测试、集成测试、系统测试、验收测试等。

质量保证既关心过程质量又关心产品质量。如果“工作过程以及工作成果”不符合既定的规范,那么产品的质量肯定有问题。基于这样的推理,质量保证人员即使不是技术专家,他也能够客观地检查和监控产品的质量。这是质量保证方法富有成效的一面。但是“工作过程以及工作成果”符合既定的规范却并不意味着产品的质量一定合格,因为仅靠规范无法识别出产品中可能存在的大量缺陷。这是质量保证方法的不足之处。所以单独的“质量保证”其实并不能“保证质量”。技术评审与测试关注的是产品质量而不是过程质量,两者的技术强度比质量保证要高得多。技术评审和测试能弥补质量保证的不足,三者是相辅相成的质量管理方法。我们在实践中不能将质量保证、技术评审和测试混为一谈,也不能把三者孤立起来执行。让质量保证人员参加并监督重要的技术评审和测试工作,这是很好的方法。把三者有机地结合起来,可提高工作效率,降低成本。

质量保证小组(Quality Assurance Group, QAG)有如下特点:

  • 质量保证小组在行政上独立于任何项目。这种独立性有助于质量保证小组客观地检查和监控“过程以及产品的质量”。

  • 质量保证小组有一定的权利,可以对质量不合格的工作成果做出处理。这种权利使得质量保证小组的工作不会被轻视,并有助于加强全员的质量意识。需要强调的是,提高产品质量是全员的职责,并非只是质量保证小组的职责。

质量保证过程域有3个主要规程:“制定质量保证计划”、“过程与产品质量检查”和“问题跟踪与质量改进”,如图18-1所示。

一、制定质量保证计划

质量保证小组为每个项目指定一名质量保证员(即接口人)。质量保证员撰写《质量保证计划》,项目经理和质量经理审批该计划。《质量保证计划》的主要内容是“过程与产品质量检查计划”、“参与技术评审计划”和“参与测试计划”。

二、过程与产品质量检查

质量保证员客观地检查项目成员的“工作过程”和“工作成果”是否符合既定的规范,并与项目成员协商改进措施。质量保证员记录本次检查的结果和经验教训,并及时通报给所有相关人员。

三、问题跟踪与质量改进

质量保证员设法先在项目内部解决质量问题,如果在项目内部难以解决,则提交给上级领导处理。质量保证小组分析机构内共性的质量问题,给出质量改进措施。

质量保证过程域产生的主要文档有:

  • 《质量保证计划》,模板见[SPP-TEMP-QA-PLAN]

  • 《质量保证检查表》,模板见[SPP-TEMP-QA-CHECKLIST]

  • 《质量保证报告》,模板见[SPP-TEMP-QA-REPORT]

  • 《质量问题跟踪表》,模板见[SPP-TEMP-QA-TRACKING]

18.2 制定质量保证计划

18.2.1 目的

  • 制定关于检查和改进过程质量、产品质量的计划。

18.2.2 角色与职责

  • 质量保证小组为每个项目指定一名质量保证员(即接口人)。

  • 项目的质量保证员制定《质量保证计划》。

  • 项目经理和质量经理(如果存在的话)审批《质量保证计划》。

18.2.3 启动准则

  • 《项目计划》已经制定。

  • 该项目的质量保证员已经确定。

18.2.4 输入

  • 《项目计划》

18.2.5 主要步骤

[Step1] 制定过程与产品质量检查计划

  • 质量保证员根据本项目的特征,确定需要检查的主要过程域和主要工作成果,并估计检查时间和人员。注意,对某些过程域的检查应当是周期性的而不是一次性的,例如配置管理、需求管理等。

  • 质量保证员确定相应的检查表(模板见SPP-TEMP-QA-CHECKLIST)。

[Step2]制定“参与技术评审”的计划

  • 《技术评审计划》一般由项目经理或者项目的技术骨干制定。

  • 质量保证员应当参与并监督重要工作成果如需求、设计、代码的技术评审。质量保证员根据《技术评审计划》,制定“参与技术评审”的计划。

[Step3]制定“参与测试”的计划

  • 一般地,项目开发小组自己负责单元测试和集成测试,机构独立测试小组负责最终产品的测试(如系统测试和验收测试)。由于测试的种类比较多,《测试计划》也可能有多个。

  • 质量保证员应当参与并监督重要工作成果的测试。质量保证员参考各种《测试计划》,制定“参与测试”的计划。

[Step4]审批质量保证计划

  • 虽然质量保证小组在行政上独立于任何项目,但是质量保证员的工作与项目紧密相关,所以《质量保证计划》应当经过项目经理的审批才能生效,以确保《质量保证计划》与《项目计划》一致。

  • 如果机构存在质量经理,那么质量经理也要审批《质量保证计划》,以确保《质量保证计划》符合机构的要求(避免过于宽松而流于形式)。

18.2.6 输出

  • 《质量保证计划》

18.2.7 结束准则

  • 《质量保证计划》已经制定,项目经理和质量经理(如果存在的话)批准该计划。

18.2.8 度量

  • 质量保证员统计工作量和上述文档的规模,汇报给项目经理和质量经理。

18.3 过程与产品质量检查

18.3.1 目的

  • 客观地检查项目开发小组的“工作过程”和“工作成果”是否符合既定的规范。

18.3.2 角色与职责

  • 质量保证员负责过程与产品质量检查。

18.3.3 启动准则

  • 根据《质量保证计划》执行质量检查。

18.3.4 输入

  • 《质量保证计划》

  • 质量保证检查表

18.3.5 主要步骤

[Step1] 准备

  • 质量保证员和项目经理确定本次质量检查的时间、地点、参加人员等。

[Step2] 客观地检查过程质量

  • 质量保证员根据检查表,和相关的项目成员交谈,检查项目的实际执行过程(包括项目管理过程、项目研发过程、机构支撑过程等)是否符合既定的规范。如果发现不一致,质量保证员应当与相关人员分析原因并协商改进措施。

[Step3] 客观地检查工作成果的质量

  • 质量保证员根据检查表,和相关的项目成员交谈,检查项目的工作成果是否符合既定的规范(一个产品包含很多工作成果)。如果发现不一致,质量保证员应当与相关人员分析原因并协商改进措施。

[Step4] 记录检查结果

  • 质量保证员如实记录本次质量检查结果,并总结经验教训。该信息保存在《质量保证工作报告》中。

[Step5] 通报结果

  • 质量保证员及时将本次质量检查的结果、经验教训通报给所有项目成员、上级领导和其他相关的人员。

18.3.6 输出

  • 《质量保证报告》

18.3.7 结束准则

  • 质量保证员已经客观地检查了过程质量和工作成果的质量。

  • 质量保证员把本次PPQC结果、经验教训通报给所有相关人员。

18.3.8 度量

  • 质量保证员统计工作量和上述文档的规模,汇报给项目经理。

18.4 问题跟踪与质量改进

18.4.1 目的

  • 识别质量问题并跟踪问题的解决过程;分析共性质量问题,给出质量改进措施。

18.4.2 角色与职责

  • 项目的质量保证员识别质量问题并跟踪问题的解决过程。

  • 质量保证小组分析机构内共性的质量问题,给出质量改进措施。

18.4.3 启动准则

  • 有关人员已经执行质量检查、技术评审或者产品测试。

18.4.4 输入

  • 质量检查、技术评审或者产品测试的报告

18.4.5 主要步骤

[Step1] 记录质量问题

  • 质量保证员记录在质量检查、技术评审和产品测试过程中发现的质量问题。

[Step2] 确定解决措施

  • 质量保证员首先设法在项目内解决已经发现的质量问题,与项目成员们协商解决措施。

  • 质量保证员识别出那些在项目内难以解决的质量问题,将这些问题递交给上级领导,由上级领导给出解决措施。

[Step3] 跟踪问题的解决过程

  • 质量保证员跟踪问题的解决过程,记录问题的状态,直到问题被解决为止。

[Step4] 分析共性问题,给出改进措施

  • 质量保证小组分析机构内共性的质量问题,给出质量改进措施。

18.4.6 输出

  • 《质量问题跟踪表》

18.4.7 结束准则

  • 所有已经识别出来的质量问题都得到妥善的解决。

18.4.8 度量

  • 质量保证员统计工作量和上述文档的规模,汇报给项目经理。

18.5 实施建议

  • 企业根据自身的实力、人力资源组建质量保证小组,人员可以是全职的也可以是兼职的。一般地,质量保证小组和SEPG之和占企业总人数的5%左右。

  • 质量保证小组应当拥有直接向上级领导反映情况、提出建议的权利,如果质量保证小组的地位无足轻重,他的工作很容易被项目成员轻视或抵制。

  • 先对质量保证小组进行培训,让他们掌握必要的工作技能。

  • 选用合适的软件工具,尽量减少质量保证的工作量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/357162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java ~ Collection/Executor ~ LinkedBlockingDeque【总结】

一 概述 简介 LinkedBlockingDeque(链接阻塞双端队列)类(下文简称链接阻塞双端队列)是BlockingDeqeue(阻塞双端队列)接口的唯一实现类,采用链表的方式实现。链接阻塞双端队列与LinkedBlockingQu…

【Java|golang】1792. 最大平均通过率---封装最小堆

一所学校里有一些班级,每个班级里有一些学生,现在每个班都会进行一场期末考试。给你一个二维数组 classes ,其中 classes[i] [passi, totali] ,表示你提前知道了第 i 个班级总共有 totali 个学生,其中只有 passi 个学…

Windows使用ssh协议远程连接ubuntu linux系统

Windows使用ssh协议远程连接ubuntu linux系统一、Windows远程连接ubuntu linux系统二、开启ubuntu ssh服务三、获取ubuntu子系统的ip地址四、从windows上通过ssh连接到ubuntu子系统五、设置ubuntu系统ssh自启动(18.04)一、Windows远程连接ubuntu linux系…

【JavaScript】JavaScript基本使用方法

如何回复程序员发来的短信:Hello world —hello nerd. 前言: 大家好,我是程序猿爱打拳。今天我给大家讲解的是初识JavaScript中基本组成成分、引入方法、输入输出语句,并用源码与效果图的方式展示给大家。 目录 1.JavaScript组成…

手机文字转语音软件哪个好用?超火的两款好用的文字转语音软件

有很多小伙伴对短视频配音比较感兴趣,但方方面面了解得不多,比如:配音有哪几种方法?需要注意些什么?用手机就可以操作么?好用的文字转语音软件有哪些?这篇文,小编就带大家简单了解一…

(C语言篇)扫雷的实现

文章目录 一、开始时的基本思维:二、进入游戏的逻辑(test.c文件中实现)三、游戏的编写 1. 初始化棋盘 I. test.cII. game.hIII. game.c 2.打印棋盘 I. test.cII. game.hIII. game.c 3.布置雷 I. test.cII. game.hIII. game.c 4.排查雷 I. test.cII. game.hIII. gam…

Java集合学习之Map

1.什么是Map Java里的Map接口是一个集合根接口,表示一个 键值对(Key-Value) 的映射。 简单来说就是键和值是一对的,每一个 Key都有唯一确定的 Value对应。 其中要求 键(Key) 唯一,因为是按照…

宏观经济研究:全国各省、地级市-社会融资规模增量数据(包含总额及8类明细)2013-2021年

数据来源:中国人民银行 时间跨度:2013-2021年,季度数据(累计数) 区域范围:全国31省份 数据字段: 31个省市社会融资规模增量数据,包含社会融资总额以及8类明细(人民币…

12-Composer的配置与使用详解

1、自定义类与非类的自动加载与测试 # composer> php 包管理工具 ,类似npm1.自己写的类,函数,接口,常量等全局成员,通过自动加载来实现按需加载 2.自己写的代码,有哪些依赖,用到了哪些外部成…

MySQL数据库调优————GROUP BY及DISTINCT优化

GROUP BY 三种处理GROUP BY的方式 松散索引扫描(Loose Index Scan)紧凑索引扫描(Tight Index Scan)临时表(Temporary table) 三种方式的性能一次递减 松散索引扫描 无需扫描满足条件的所有索引键即可返…

基于SSM,Spring, BootStrap 毕业设计管理系统的设计与实现

目录 一.前言介绍 二、主要技术 2.1 SSM框架介绍 2.2 MYSQL数据库 2.3 持久层框架MyBatis 2.4 前端框架BootStrap 三. 系统设计 3.1 系统架构设计 3.2 系统功能模块 3.2.1 学生模块 3.2.2 教师模块 3.2.3 管理员模块 四、数据库设计 4.1 数据分析 4.2 概念设计 …

SpringBoot搭建SpringMVC项目

前言据我的了解,现在不管是大公司或是小公司,如果使用java开发一个web项目,大部分都会选择使用SpringBoot,关于Springboot的好处,就不在这里过多赘述,总之Springboot有一套完整的生态,从项目构建…

Java【七大排序】算法详细图解,一篇文章吃透

文章目录一、排序相关概念二、七大排序1,直接插入排序2,希尔排序3,选择排序4,堆排序5,冒泡排序5.1冒泡排序的优化6,快速排序6.1 快速排序的优化7,归并排序三、排序算法总体分析对比总结提示&…

多层感知机

多层感知机理论部分 本文系统的讲解多层感知机的pytorch复现,以及详细的代码解释。 部分文字和代码来自《动手学深度学习》!! 目录多层感知机理论部分隐藏层多层感知机数学逻辑激活函数1. ReLU函数2. sigmoid函数3. tanh函数多层感知机的从零…

Allegro如何快速把推挤的走线变平滑操作指导

Allegro如何快速把推挤的走线变平滑操作指导 Allegro有个非常强大的功能,推挤命令,可以快速的让走线以不报DRC的形式避让目标 推挤后的效果如下图 但是走线不够平滑,如果每一段都去再推一下比较费时间,下面介绍allegro本身自带的优化类似走线的功能 具体操作如下 点击Rout…

sklearn学习-朴素贝叶斯

文章目录一、概述1、真正的概率分类器2、sklearn中的朴素贝叶斯二、不同分布下的贝叶斯1、高斯朴素贝叶斯GaussianNB2、探索贝叶斯:高斯朴素贝叶斯擅长的数据集3、探索贝叶斯:高斯朴素贝叶斯的拟合效果与运算速度总结一、概述 1、真正的概率分类器 算法…

计算机组成与体系结构

目录 1.计算机结构 2.寻址方式 3.CISC与RISC 4.流水线 1.计算机结构 运算器 算术逻辑单元ALU:数据的算术运算和逻辑运算累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据数据缓存寄存器DR:写内存中&…

Linux LVM逻辑卷

目录 LVM逻辑卷 什么是LVM LVM常用术语 管理逻辑卷相关命令 创建LVM逻辑卷 LVM扩容 LVM缩小 LVM快照卷 删除LVM LVM逻辑卷 什么是LVM LVM(Logical Volume Manager)逻辑卷管理器,是一种硬盘的虚拟化技术,能够实现用户对硬…

基于微信小程序的校园顺路代送小程序

文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…

还真不错,今天 Chatgpt 教会我如何开发一款小工具开发(Python 代码实现)

上次使用 Chatgpt 写爬虫,虽然写出来的代码很多需要修改后才能运行,但Chatgpt提供的思路和框架都是没问题。 这次让 Chatgpt 写一写GUI程序,也就是你常看到的桌面图形程序。 由于第一次测试,就来个简单点的,用Python…