[原创]软件开发过程中的QA与QC
软件开发过程中的QA与QC
Judy Shen
在实际质量工作中,经常会碰到一个问题,即质量保证(Quality Assurance)和质量控制(Quality Control)关系比较容易混淆。QA和QC由于都属于质量管理的范畴,同时在工作中由于二者的工作存在部分交叉、共同的工作内容,因此在项目成员中容易造成职责上的混淆。为了让项目组成员了解二者的区别,并协调一致地开展工作、共同提高软件质量,笔者结合多年的测试经验对这两种角色的关系进行了研究和阐述。
1 QA与QC对比
QA和QC各司其职,相辅相成,统一于质量管理(Quality Management)。拿一部汽车来做比喻吧,质量控制(QC)就是所有那些告诉你汽车当前运动状态的仪器仪表;质量保证(QA)包括各类标准,是告诉你所有部件操作方法的用户手册;而质量管理(QM)则是你要追求的目标,比如希望能平安、高速地驾驶汽车。可以看出,为了实现质量管理的目标,质量保证和质量控制都是不可或缺的部分。
了解了QA和QC的重要性后,我们需要详细了解一下QA和QC的具体区别,如表一所示:
QA |
QC |
|
全 称 |
Quality Assurance(质量保证) |
Quality Control (质量控制) |
角 色 |
QA工程师 |
测试工程师、评审员 |
定 义 |
为了确保软件开发过程和结果符合预期的结果,依照过程和计划采取的一系列活动及其结果评价。 |
为了发现软件产品的错误、缺陷而进行工作的过程。 |
目 的 |
减少并纠正实际的软件开发过程和软件开发结果与预期的软件开发过程和软件开发结果的不符合情况。 |
为了寻找错误、缺陷,并尽可能的为修复错误提供更多的信息。 |
职 责 |
监控公司质量保证体系的运行状况,审计项目的实际执行情况和公司规范之间的差异,并出具改进建议和统计分析报告。 是过程、产品质量审计者。 |
对每一个阶段或者关键点的产出物(工件)进行检测,评估产出物是否符合预计的质量要求。关注各阶段的评审和测试缺陷。 是产品质量检查者。 |
表一 QA与QC基础信息对照表
2 QA与QC工作的区别和统一
在了解了QA和QC的不同之处后,那问题来了:QA和QC该如何在项目各阶段中既关注职能领域、又共同为项目的质量目标协调、一致地开展工作呢?根据不同的项目阶段,笔者将二者的工作内容和工作产品进行了划分,如表二所示。在实际项目中,QA或QC工作人员,可以依据项目所处阶段,快速清楚本阶段的工作内容和产出物。
类别 项目阶段 |
QA |
QC |
||
工作内容 |
工作产品 |
工作内容 |
工作产品 |
|
项目启动 |
定义产品质量指标 参与项目规划的评审 |
产品质量指标 |
||
项目计划 |
编制QA计划 过程审计 |
项目QA计划 QA阶段工作报告 |
测试计划管理 参加评审 |
测试计划 |
需求分析 |
阶段交付物审计 过程审计 |
QA阶段工作报告 |
分析测试需求 参加评审 |
测试需求 |
设 计 |
阶段交付物审计 过程审计 |
QA阶段工作报告 |
设计测试用例 参加评审 可能的话参与部分设计 |
测试用例 |
编 码 |
阶段交付物审计 过程审计 |
QA阶段工作报告 |
单元测试 集成测试 参加评审 |
缺陷报告 测试报告 |
测 试 |
阶段交付物审计 过程审计 |
QA阶段工作报告 |
集成测试 系统测试 性能测试 回归测试 测试管理工作 用户手册验证 |
测试脚本 缺陷报告 测试报告 用户手册验证报告 |
实 施 |
产品质量状态评估 过程审计 项目交付审计 |
产品质量评估报告 QA阶段工作报告 |
内部接收测试 验收测试 |
缺陷报告 测试报告 |
表二 QA与QC各个阶段工作内容及工作产品对照表
3 小结
质量保证(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通道.缺点也不少,体积过于庞大 ...
- 浅谈软件开发过程中的项目管理
摘要:大量软件开发实例表明,如果不能在软件开发中加强项目管理,随着国内软件行业的不断发展与壮大,国内的软件开发企业将面临严峻的挑战性与风险性.因此,为了确保软件开发的效率与质量,必须认识到强化项目管理 ...
- 物联网快速改变各行业,物联网软件开发过程中,主要面临哪些挑战?
物联网正在改变各个行业,物联网设备在所有相关预测中都占据了重要位置,投资将产生良好的回报,消费者也会很高兴,企业增长速度也会不断加快.类似这样的说法让每个人都感到无聊,其实有些东西没有被明确说出来. ...
最新文章
- Android 5.0新特性ToolBar
- 外包:卡卡软件简要思路
- 树形控件CTreeCtrl的使用详解(一)
- TTS语音播报程序部署与配置
- Ubuntu 17.10安装Qt 5.10环境与Qt Creator 4.5开发工具(转自linux公社)
- gem5的安装、编译及运行
- 【Flink】Flink 1.9 升级 到 flink 1.12.4 报错 flink.client.cli.AbstractCustomCommandLine <init>
- 开源-一步步实现cnblogs博客采集工具-实现过滤设置对话框
- 交换机二级可以分流么_「网络安全」网络设备篇(2)——交换机
- Unity怎么变中文
- z3735 android5.1,『Sanghua的暴力美学』intel Z3735e 昂达V819i完全拆解。
- 刚刚提取了金山毒霸的[垃圾清理] 和 [隐私清理], 分享方法,大家可以自己试一下
- 形态学图像处理之边界提取与跟踪
- fiddler软件抓包工具超详细配置方法
- 中兴ZXV10 H608B无线MODEM开路由自动拨号上网设置
- 为什么文本框里的字只显示一半_word字体显示不全及显示一半怎么回事?
- 众里寻她千百度,wordperss 热键
- 四川大学网络教育计算机应用基础,四川大学网络教育学院《计算机应用基础》第一次作业...
- java video src请求视频流,视频不能拖拽快进问题解决方案
- php gd平涂,水彩画基本技法教学:平涂法
热门文章
- pcs+corosync+pacemaker+haproxy负载均衡环境部署
- 基于Vue3+Spring Boot+Web的学生选课管理系统
- 软件测试基础篇—测试用例的设计方法
- python算法库执行效率_Python智能优化算法库小汇总
- 如何用SystemView分析AliOS Things
- MyBatis的日志工厂 | MyBatis系列(五)
- 风光储微电网黑启动PSCAD建模仿真风电光伏储能matlab微网
- Verilog语言入门学习(3)
- rtx 加密机制_RTX发送消息提醒实现以及注意事项
- 优达学城机器学习之--支持向量机(SVM)