软件开发过程中的QA与QC
Judy Shen
在实际质量工作中,经常会碰到一个问题,即质量保证(Quality Assurance)和质量控制(Quality Control)关系比较容易混淆。QA和QC由于都属于质量管理的范畴,同时在工作中由于二者的工作存在部分交叉、共同的工作内容,因此在项目成员中容易造成职责上的混淆。为了让项目组成员了解二者的区别,并协调一致地开展工作、共同提高软件质量,笔者结合多年的测试经验对这两种角色的关系进行了研究和阐述。
QA和QC各司其职,相辅相成,统一于质量管理(Quality Management)。拿一部汽车来做比喻吧,质量控制(QC)就是所有那些告诉你汽车当前运动状态的仪器仪表;质量保证(QA)包括各类标准,是告诉你所有部件操作方法的用户手册;而质量管理(QM)则是你要追求的目标,比如希望能平安、高速地驾驶汽车。可以看出,为了实现质量管理的目标,质量保证和质量控制都是不可或缺的部分。
了解了QA和QC的重要性后,我们需要详细了解一下QA和QC的具体区别,如表一所示:
|
QA |
QC |
全 称 |
Quality Assurance(质量保证) |
Quality Control (质量控制) |
角 色 |
QA工程师 |
测试工程师、评审员 |
定 义 |
为了确保软件开发过程和结果符合预期的结果,依照过程和计划采取的一系列活动及其结果评价。 |
为了发现软件产品的错误、缺陷而进行工作的过程。 |
目 的 |
减少并纠正实际的软件开发过程和软件开发结果与预期的软件开发过程和软件开发结果的不符合情况。 |
为了寻找错误、缺陷,并尽可能的为修复错误提供更多的信息。 |
职 责 |
监控公司质量保证体系的运行状况,审计项目的实际执行情况和公司规范之间的差异,并出具改进建议和统计分析报告。 是过程、产品质量审计者。 |
对每一个阶段或者关键点的产出物(工件)进行检测,评估产出物是否符合预计的质量要求。关注各阶段的评审和测试缺陷。 是产品质量检查者。 |
表一 QA与QC基础信息对照表
在了解了QA和QC的不同之处后,那问题来了:QA和QC该如何在项目各阶段中既关注职能领域、又共同为项目的质量目标协调、一致地开展工作呢?根据不同的项目阶段,笔者将二者的工作内容和工作产品进行了划分,如表二所示。在实际项目中,QA或QC工作人员,可以依据项目所处阶段,快速清楚本阶段的工作内容和产出物。
类别 项目阶段 |
QA |
QC |
||
工作内容 |
工作产品 |
工作内容 |
工作产品 |
|
项目启动 |
定义产品质量指标 参与项目规划的评审 |
产品质量指标 |
|
|
项目计划 |
编制QA计划 过程审计 |
项目QA计划 QA阶段工作报告 |
测试计划管理 参加评审 |
测试计划 |
需求分析 |
阶段交付物审计 过程审计 |
QA阶段工作报告 |
分析测试需求 参加评审 |
测试需求 |
设 计 |
阶段交付物审计 过程审计 |
QA阶段工作报告 |
设计测试用例 参加评审 可能的话参与部分设计 |
测试用例 |
编 码 |
阶段交付物审计 过程审计 |
QA阶段工作报告 |
单元测试 集成测试 参加评审 |
缺陷报告 测试报告 |
测 试 |
阶段交付物审计 过程审计 |
QA阶段工作报告 |
集成测试 系统测试 性能测试 回归测试 测试管理工作 用户手册验证 |
测试脚本 缺陷报告 测试报告 用户手册验证报告 |
实 施 |
产品质量状态评估 过程审计 项目交付审计 |
产品质量评估报告 QA阶段工作报告 |
内部接收测试 验收测试 |
缺陷报告 测试报告 |
表二 QA与QC各个阶段工作内容及工作产品对照表
质量保证(QA)与质量控制(QC)的关系,一直以来都比较让人困惑。本文主要是将二者在实际工作中,如何有效完成各自的使命进行了阐述。当然了,在不同公司,可能有不同的适用情况,所以,本文介绍的内容,仅仅只是个例子,供抛砖引玉用。
虽然不同公司有不同的情况,但是原则都是一样的。QA是从过程和标准来控制开发过程,从而达到提高软件质量的目的。而QC则是通过测试、评审等验证、确认手段来发现软件中的缺陷,并确保该缺陷得到解决,从而达到提高软件质量的目的。
软件开发过程中的QA与QC相关推荐
- [原创]软件开发过程中的QA与QC
软件开发过程中的QA与QC Judy Shen 在实际质量工作中,经常会碰到一个问题,即质量保证(Quality Assurance)和质量控制(Quality Control)关系比较容易混淆.QA ...
- 在软件组织中,QA与QC的联系及区别
QA与QC的侧重点比较: 在一个软件组织或项目团队中,存在QA和QC两类角色,这两类角色工作的主要侧重点比较如下: QA与QC的其他重大区别还包括: 具备必要资质的QA是组织中的高级人才,需要全面掌握 ...
- 软件开发过程中的思维方式 -- 如何分析问题
[这是 ZY 第 16 篇原创技术文章] 今天这篇文章不谈技术,想聊聊软件开发过程中的一些思维方式,以及如何去深入挖掘问题的核心,如何去看清问题的本质. 一.分析问题的重要性 我们在软件开发过程中,往 ...
- 对日软件开发过程中的质量管理
对日软件开发过程中的质量管理 2004-04-01 ----记系统开发事业本部大连开发部质量管理活动系列之一 NECSI系统开发事业本部主要承接日本客户委托开发的软件项目,承担从功能设计(FD).详细 ...
- 在统一软件开发过程中使用UML
如何在统一软件开发过程中使用UML? 起始阶段常用UML图 在起始阶段,通常有用例图.类图.活动图.顺序图等UML图的参与. 获取用户需求之后首先要将这些需求转化为系统的顶层用例图. 在确定了用例之后 ...
- 关于在软件开发过程中建立三道风险防线的想法
最近在工作的过程中,遇到了一些"本不应该"出现的问题(相对而言的,没有什么问题是" 应该"出现的) --- 开发完的功能,经过开发人员的单元测试.测试人员的&q ...
- 在直播软件开发过程中,常用的几种视频封装格式
1.AVI格式 AVI(Audio Video Interleaved).此格式的中文译名为音频视频交错格式,这种视频格式的优点是图像质量好,无损AVI可以保存alpha通道.缺点也不少,体积过于庞大 ...
- 浅谈软件开发过程中的项目管理
摘要:大量软件开发实例表明,如果不能在软件开发中加强项目管理,随着国内软件行业的不断发展与壮大,国内的软件开发企业将面临严峻的挑战性与风险性.因此,为了确保软件开发的效率与质量,必须认识到强化项目管理 ...
- 物联网快速改变各行业,物联网软件开发过程中,主要面临哪些挑战?
物联网正在改变各个行业,物联网设备在所有相关预测中都占据了重要位置,投资将产生良好的回报,消费者也会很高兴,企业增长速度也会不断加快.类似这样的说法让每个人都感到无聊,其实有些东西没有被明确说出来. ...
最新文章
- 计算机课程认识,认识计算机课程教案.doc
- Ubuntu搭建git服务器,外网可访问
- linux数据库都备份什么,Linux运维学习之数据库备份与恢复
- plsql tables 没有表_天长视唱练耳辅导班收费表,安徽高考音乐培训学校,你知道吗...
- DataFormatString格式化字符串的总结
- python模拟登录吃鸡_Python高级爬虫开发,高难度JS解密教程,绝地求生模拟登陆!...
- 一个简单的调用动态库的实例
- 1.1.27 word表格里的文字不显示
- 爬虫实例3 批量抓取数据之异步请求(ajax)
- 草履虫纳米机器人_纳米机器人的研究进展如何?
- 【Python爬虫案例学习21】爬取某站上海租房图片
- 最佳回归模型选择指标——马洛斯CP值
- win10 下多核的负载均衡表现
- 渐变折射率(GRIN)透镜的建模
- 怎么关闭电脑的硬盘还原卡
- python计时器代码_Python功能点实现:函数级/代码块级计时器
- keil注释打不出中文?
- 最优爱Zuiui.com全球优秀WEB站点聚合。
- 配电室辅控项目无线组网远程在线控制系统解决方案
- 我们喜欢技术、产品与创业相关的新闻、资讯和文章;我们喜欢真正有意思、有价值的内容;我们不求多,但求精。...