质量保证(QA)是干什么的?

本文详细介绍了软件质量保证的概念、工作内容、人员素质与技能要求等内容,帮助读者深入了解软件质量保证的工作范畴及其重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从事软件质量保证工作已有几个年头,经常有朋友问起软件质量保证到底是干什么的?每次总回答就是辅导和监督项目开发按照公司研发过程执行的,仔细想想实际并没有这么简单,为了让更多朋友了解质量保证这个岗位,在此结合这几年的工作经验进行如下总结,若有不对的地方欢迎大家指正与交流,谢谢!

  1、什么是质量保证?

  在CMMI中,质量保证的英文全称是Process and Product Quality Assurance,即过程与产品质量保证。一般大家更习惯叫质量保证或QA,它的目的是为员工和管理层提供过程和相关工作产品的客观洞察。之所以说它客观是因为:

  1)质量保证人员是一个独立于项目组之外的第三方审计人员,不能是直接参与开发、测试项目管理的人(当然实际也有例外,有些公司QA可能是兼职的);

  2)质量保证人员不受监督对象部门的绩效评价;

  3)质量保证人员具有独立的问题汇报渠道(可以跨级上报——QA很重要的特权)。

  2、软件质量保证工作内容?

  一般设有软件质量保证岗位的公司都有一套依据自己公司实际研发现状制定的完整研发过程体系,所有的软件质量保证人员入职一家新公司,首先需要做的事情就是学习和深刻了解该公司研发过程体系,否则后续工作是无法开展的。

  一般软件质量保证工作内容主要分三大块:

  1)过程辅导

  依据研发过程体系辅导所有开发项目/版本前期及项目过程各个环节及各环节具体活动执行(含流程、方法、模板及过程中相关工具的使用)。

  辅导时机:

  ● 到达项目/版本计划中计划的时间点

  ● 触发事件驱动(如:邮件)

  辅导方式:

  ● 口头

  ● 邮件

  ● 电话

  ● 通讯工具(如:QQ、RTX等)

  ● 必要时可以开展正式的课堂培训(一般很少)

  2)过程检查

  所有开发项目/版本开发过程中,依据当前的研发过程体系客观的对实际执行情况进行检查与评价。

  检查的方式:

  ● 参加项目会议(评审会、周会)

  ● 与各个环节人员沟通

  ● 触发事件驱动(如:邮件)地进行检查

  ● 检查工作产品

  3)过程问题记录与跟踪

  记录过程检查过程中发现的不符合项,并与相关负责人进行沟通,了解产生问题的原因,跟踪不符合项确保问题得到解决。

  伴随上工作过程中还会有一些其他工作内容,如下:

  4)向项目组和管理层提供质量保证活动结果——风险预警与问题报告。

  预警风险、及早报告项目问题,使项目免受损失或少受损失,是质量保证的重要价值体现。

  有经验的质量保证人员能够基于过程中了解到的项目过程质量状况和产品质量状况,及时识别出项目过程中存在的风险和发现过程问题,并定期(一般都是一周)向项目组与管理层预警风险、报告问题。

  项目组必须在规定的期限内回复质量保证人员报告的问题。

  对于无法协调一致的问题要及时升级。

  ● 就质量保证问题的认定双方不能达成一致。

  ● 就质量保证问题的解决计划双方不能达成一致。

  ● 项目组未按计划解决质量保证问题。

  ● ……

  管理层必须及时处理升级的问题。

  ● 强制项目组解决。

  ● 豁免。

  5)严重问题根因分析

  质量保证人员需要定期(如每月/季度)对记录的问题进行分类与分析,对于过程中发生的严重问题或事故,必须了解问题产生的根源才能够在后续进行规避。一般若公司有多个质量保证人员,应以部门为单位开展问题根因分析活动,必要时还可以邀请EPG小组成员一起),问题根因分析活动结束后应向相关领导出具根因分析报告,提出当前的对策及未来建议。

  6)收集与反馈过程改进建议,协助过程改进

  一般公司EPG(过程改进小组)大都由其它岗位人员兼职的,我就职的3家公司质量保证人员都会兼EPG中的某个角色。

  质量保证人员在项目过程中会与软件生命周期各个环节的人员打交道,有心的质量保证人员在此过程中肯定能够发现很多研发过程体系不合理或不够完善的地方,同时项目结项时质量保证人员要进行质量保证总结,在总结过程中也可以收集到很多过程改进建议,质量保证人员要定期将收集到的过程改进建议反馈给EPG组长,由EPG组长规划过程的改进。

  7)其它

  其它依据各个公司具体情况而定,如:定期进行交叉检查,开展研发过程体系培训,度量项目过程,协助项目经理监控项目进展。

  软件质量保证工作的开展是有计划有序进行的,一般项目初期(如:项目计划阶段)质量保证人员要制订质量保证计划,质量保证计划要得到项目经理、质量部门负责人的评审/审批。

  同时在实际检查过程中也是有依据的——QA检查单,一般公司研发过程体系中都会制订一份完整的QA检查单模板,各个项目要依据项目过程定义进行裁剪。

 3、质量保证人员的素质和能力要求

  软件质量保证工作涉及到软件工程的各个方面,软件质量保证人员要与不同角色的人员进行沟通,因此软件质量保证人员除了要有较高的智商和情商外,还有具备如下的素质和能力:

  1)要有控制软件质量的能力

  也就是说要熟练掌握公司各种流程、标准和规范,做好第三方独立审计的工作并及时发现、纠正问题。在必要时可以利用向高层领导直接汇报的权力来“威慑”相关人员,以确保软件质量朝好的方向发展。在控制软件质量发展方向的同时要学会控制自己的情绪,因为并不是所有人员都很了解公司的研发流程、软件质量保证的工作以及如何从根本上去提高软件质量,工作中很多时候有“秀才遇到兵,有理说不清”的感觉,这时就更加需要控制自己的言语和情绪,找到合适的方式进行沟通,使问题最终得到解决。

  2)对问题根源识别和归纳的能力,即透过现象看本质的能力。

  3)举一反三的能力。

  4)很强的沟通能力。

  5)要适当强势,做好灵活性与原则性间的平衡的能力

  6)客观、对事不对人的职业素养

  4、质量保证人员的技能要求

  ● 软件工程/系统工程的理论、方法

  ● 工作过程标准

  ● 沟通、协调技能

  ● 基本的管理知识和技能

  ● 项目管理的理论、方法

  ● 质量保证工作的原理、方法

  5、软件质量保证岗位等级

  1)交警(初级)

  像交警查处交通违章那样,直接向所发现的不符合项贴“罚单”即可。

  2)医生(中级)

  像医生那样对项目进行检查和诊断,发现问题并可以开出“药方”。

  3)老师(高级)

  像老师那样发现学生的弱项,并找到如何提高学生能力的方案,然后对学生进行辅导和培训。

版权声明:本文出自 mandy.wang 的51Testing软件测试博客:http://www.51testing.com/?417295

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任











====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

### 软件开发中 QA 的具体含义和职责 在软件开发生命周期中,QA(Quality Assurance,质量保证)是一个至关重要的角色。它不仅涉及测试活动,还包括一系列旨在提高产品质量的过程和实践。 #### 1. **QA 的定义** QA 是指通过预防、检测和纠正缺陷来确保产品满足客户需求的一系列系统化活动。其目标不仅仅是发现错误,而是建立一套流程以减少错误的发生概率[^1]。 #### 2. **QA 的主要职责** - **制定质量标准和流程** QA 团队负责定义项目的质量标准,并确保这些标准在整个生命周期中得到遵循。这可能包括编写测试计划、设计文档审查以及创建测试用例[^2]。 - **参与需求评审** 在项目初期阶段,QA 成员通常会参与到需求评审会议中,确保需求清晰、可验证且无歧义。这种早期介入有助于降低后期返工的风险[^3]。 - **执行全面的测试** 尽管 SDET 或 Tester 主要专注于具体的测试任务,但 QA 更关注整体的质量保障体系。这意味着除了功能测试外,还需要考虑性能测试、安全测试、兼容性测试等多个维度[^4]。 - **推动持续改进** 基于每次发布后的反馈数据,QA 应该主动寻找优化现有流程的机会,比如引入新的工具链或者调整资源配置方案等措施提升效率并降低成本。 - **与其他团队协作沟通** 有效的跨职能合作对于达成高质量成果至关重要。因此,作为桥梁连接起开发者、产品经理以及其他利益相关方之间顺畅的信息交流也是不可忽视的一部分责任所在。 #### 3. **代码示例:自动化脚本支持 QA 测试** 为了更高效地完成某些重复性强的任务,许多现代企业鼓励采用自动化手段辅助人工操作。下面展示了一个简单的 Python 单元测试框架例子: ```python import unittest class TestStringMethods(unittest.TestCase): def test_upper(self): self.assertEqual('foo'.upper(), 'FOO') def test_isupper(self): self.assertTrue('FOO'.isupper()) self.assertFalse('Foo'.isupper()) if __name__ == '__main__': unittest.main() ``` 此段代码展示了如何利用 `unittest` 模块构建基本单元测试案例集,从而帮助验证特定函数行为是否符合预期结果。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值