QA介绍

来源:互联网 发布:php key 编辑:程序博客网 时间:2024/04/30 16:13

 

QA是什么?

Quality Assurance ,即质量保证,我们的QA更确切的将应该是SQA,在CMMIQA的全称是PPQA(Process and Product Quality Assurance)。顾名思义,就是过程和质量保证。很多人将QAQC、测试混为一谈,这里简单做一下解释。

QAQC

QC:检验产品的质量,保证产品符合客户的需求;是产品质量检查者;QC进行质量控制,向管理层反馈质量信息,简言之就是检查产品是否符合质量要求,关注的是最终产品。

QA:评审过程和产品的质量,特别要保证过程被正确执行,通过保证过程质量来保证产品质量  QA确保QC和过程实施者按照过程进行质量控制活动,按照过程将检查结果向管理层汇报。简言之是检查项目按照过程进行了某项活动没有,产出了某个产品没有。更多关注的是过程。

QA和测试

首先来看一个企业的开发过程、支持过程的关系:
    

从图中我们也可以看出来,测试是软件生命周期中下游的活动,而质量保证活动贯穿于整个软件生命周期过程及其支持过程,包括测试过程。QA活动和测试过程可能同时关注同一个产品,但是关注的角度不同。

QA职责

概括的讲QA的职责包括过程指导、过程评审、产品审计、过程改进、过程度量。当然QA活动贯穿整个软件生命周期,在特定的阶段有特定的职责。

一般一个合格的QA应该充当三种角色:

老师:具备学习和培训的能力。此角色在项目前期辅助项目经理制定项目计划包括根据质量体系中的标准过程裁剪得到项目定义的过程,帮助项目进行估算,设定质量目标等;对项目成员进行过程和规范的培训以及在过程中进行指导等。

医生:通过度量数据对项目过程进行诊断,帮助分析原因,开处方。此角色在项目过程中也可以承担收集、统计、分析度量数据的工作,用于支持管理决策。

警察:以企业流程为依据,但要告诉大家流程背后的原因;如果和项目组针对某些问题意见相左,可以直接汇报高层。此角色在项目过程中有选择性地参加项目的评审,定期对项目的工作产品和过程进行审计和评审。

QA应该具备的知识

首先我们先来看某组织对QA的要求:

1)项目管理实践经验(要求比项目经理更懂项目管理),至少2年以上;

2)质量管理理论和实践经验(要求比项目控制人员更懂质量),至少2年以上;

3)质量或研发管理经验(要求从事过质量或研发管理岗位,否则怎么能站在管理者视角看问题,首先必须做过管理者),至少1年以上;

4)行业知识背景(否则如何和客户打交道);

5)技术知识背景(否则怎么和项目组进行技术层面的基础对话);

6)良好的培训技能和沟通能力(否则怎么和各层面的人员打交道);

7)问题的推动解决能力。

要求好高啊!是不是觉得这么厉害的人让其做QA觉得可惜?但该组织说:

1)一个管理者的智囊团,就应该具备这些技能。若人全部陷于到实务,何来企业级的思考。

2)一个组织的管理者的思维高度决定了企业的长远发展之路。
当然这里并不是说我现在有这么厉害,只是说明要成为一个优秀的QA应该努力的方向。普遍认为QA应该具备如下特质:

软性特质:

1、先知先觉的思想,真正吃透过程改进思想,抓住CMMI的脉络。

2、谦虚的服务意识

3、良好的人际沟通技巧

4、良好的文采及演讲才能

5、严谨的逻辑思维能力

6、持续的自我反省

7、坚韧的毅力与决心

硬性特质:

1、软件工程体系

2、质量体系

3、部分项目管理与开发经验

4、配置管理知识

5、测试知识

6、统计分析知识

如此看来要学习的还是挺多的,看来不努力是没有理由的啊。

QA工作实践预先读

网上看到一些有关QA工作实践的内容,其中有些还是挺有用的。

QA的工作思路有两种:

第一:以过程为导向,通过改进过程,逐步完善度量体系,最终达到组织级的能力的提升。

第二:以度量为导向,建立度量体系,以度量数据推动过程改进,最后达到组织级的能力的提升。

当公司还没有建立起比较完善的软件开发整个周期的体系的时候,我们需要以过程为导向,首先建立过程体系。这样可以理顺项目开发的流程,阶段标准等,但是,当这个过程体系建立起来后,我们再单纯的强调过程而不做过程改进的分析就很难推动过程改进,也就很难使组织级的能力有一个质的提升。因此,当过程体系建立起来之后,我们需要强化度量体系,从过程中提炼数据,找出过程瓶颈,这样才能做到持续改进的目的。不管采用哪种思路,执行力是关键。执行力不够。任何好的流程如果不能有效的执行,最后也只能是束之高阁的条文,相反,即使不全面的流程,如果能很好的执行,也会弥补流程不足。

 

目前我们公司还没有建立起比较完善的软件开发整个周期的体系,因此我暂时应该以过程为导向,过程体系建立起来了才可以开展后续的工作。

 

以下还有几点对QA的建议,我觉得也挺有用的:

1.QA进入项目组要根据项目的实际情况为自己确定度量指标;
  2.对改进计划和度量至少每双周Review一次,保持每双周和项目组沟通(这条可以借鉴
  3.QA保持一颗平常心要以服务者的身份存在,QA要学会当医生,帮助项目组针对问题,识别风险(服务者身份,这点很重要
  4.QA要学会沉默,也就是说我们的QA要学会如何听,从别人的交流中识别改进点(这点也很重要
  5.以项目经理的身份进入项目计划,和项目经理一样关注任务的SIPOC
  6.QA要知道如何根据项目特点选择进入项目的时机,可以选择你观察/评价/跟踪过程的颗粒度
其他几点暂时没有体会到或领悟到,应该也可以借鉴。

到此,对QA的介绍告一段落了,如果你坚持从头读到此的化,是不是看完觉得对QA有了新的认识了呢?

最后还有一点非常重要:

   软件质量的提升是团队全体成员共同努力的结果,不是某一个人或者某一个部门就能保证的。

 

原创粉丝点击