QA活动的理解与实施 [转]
上一篇 / 下一篇 2007-03-28 15:48:17 / 个人分类:软件测试管理
由于CMMI模型是建立在西方的企业文化背景下,包含有三权分立的思想,所以对于国内IT及软件企业而言,如何理解和建立QA机制,更好地利用CMMI模型进行过程改进就显得非常重要。但是,目前国内IT及软件企业对于QA的意义和认识存在误区,导致在实施过程改进活动中,QA活动流于形式或没有发挥出其真正作用。到底QA在组织中应扮演什么样的角色,CMMI的QA的与ISO9000的QA或QC(Quality Control)概念有何区别,QA与测试是什么关系,如何实施QA活动,等等,本文针对这些进行阐述,以解决企业CMMI实施过程中的薄弱环节。
-l|Fsy+|F02 QA的地位及活动51Testing软件测试网`HH3hF7z
2.1 QA的地位51Testing软件测试网8q8C9Z&dx*k;p
图1显示了在CMMI实施过程中QA所处的地位。
t*b9O#o\WX ?0
6t f{/~:p0e} E*[0 图1 QA的组织结构51Testing软件测试网K-\-gG_"t1]#g
51Testing软件测试网\,zn#mp+h K.P(] QA活动的目标是以独立审查方式,从第三方的角度监控软件开发任务的执行,就项目是否正遵循已制定的计划、标准和规程给开发人员和管理层提供反映产品和过程质量的信息和数据,提高项目透明度,同时辅助软件工程组交付高质量的软件产品。所以对过程和产品质量保证的客观评价是项目成功的关键,一般是通过独立于项目的QA小组来提供这种客观性。每个从事QA活动的人都要进行质量保证方面的培训。从事某个产品的QA活动的那些人不应该是直接介入该工作产品开发或维护的人。同时,应该有一条向适当的管理层独立报告问题的渠道,以便在必要时逐级上报不符合问题。
o$`}Y1e0 不过,在某些组织里,不要求这种独立性而实现过程和产品质量保证角色可能更合适。例如,在一个具有开放的、面向质量的文化环境的组织里,可以由同行担任(部分或全部)过程和产品质量保证角色,可以把质量保证功能镶嵌在过程中。51Testing软件测试网'`
{,b1G6?^QK:o
QA应具备以下职责:51Testing软件测试网LBPw"d
· 通过监控开发过程来保证工作产品质量
$|,m \&M9~b/D^c0· 保证开发出来的产品和开发过程符合相应标准与规程;
n(jh$K*[l+D/EW0· 保证产品、过程中存在的不符合问题得到处理,必要时将问题反映给高级管理者
rPY!^3_md9f0·确保项目组制定的计划、标准和规程适合项目组需要,同时满足评审需要
/`me6iVtR@x)s0· 向开发人员提供反馈51Testing软件测试网-_a"p \G#@#e
l1rk3\v{:t*A.oa b#U02.2 QA的活动51Testing软件测试网vW)d,GVx
V
QA的工作内容为:
2oOB fP5w)Sp01) 客观评价过程和工作产品:对于所实施的过程和相关工作产品以及服务对适用的过程描述、标准和规程的遵循情况进行客观评价。51Testing软件测试网W"?bA@P
2) 提供客观情况:客观地跟踪和通报不符合问题,并且确保解决它们。
8}K.U&^w0 因此,QA的活动步骤如图2所示。51Testing软件测试网e tyM}(@c
51Testing软件测试网%U
?8~Y h8W7R(M.S
图2 QA的活动步骤51Testing软件测试网tP0e.f;FoO
e_
由上可知,QA涉及以下活动:
0z|1F
v3d+@(b/Z0· 对照适用的过程描述、标准和规程客观地评价所执行的过程、工作产品和服务;
0{+cC{ i4T9C0· 识别不符合问题,并形成文件:
z
`.G
WO Yb0· 向项目工作人员和管理者反馈质量保证活动情况;
` G7j7lnNh0· 确保不符合问题得到处理。
d`4c"Ev5gsu03 QA与QC、测试之间的关系51Testing软件测试网5tOi\T^c
B,A
3.1 QA和QC
-? JL*gm8W0 QA和QC区别在于:51Testing软件测试网py'j&Y1p
· QC:检验产品的质量,保证产品符合客户的需求;是产品质量检查者;51Testing软件测试网-Pm$U1y)QC:m
· QA:评审过程和产品的质量,特别要保证过程被正确执行,通过保证过程质量来保证产品质量 。
GgtUsuFD0 由上面的区别可知,QC进行质量控制,向管理层反馈质量信息;QA则确保QC和过程实施者按照过程进行质量控制活动,按照过程将检查结果向管理层汇报。软件开发过程和的QC工作通常就是对软件工作产品的技术评审(如同行评审等)。51Testing软件测试网'V^DrO?,g ]
在这样的原则下,简单而言QA只要检查项目按照过程进行了某项活动没有,产出了某个产品没有;而QC来检查产品是否符合质量要求。51Testing软件测试网 i%K:F/[4|M|E
3.2 QA与测试
3i-m:g f8_I(L{0Rq6C0 下图显示了一个企业的开发过程、支持过程的关系。
!xuY.PPW(SP0
2H_(l}t4F YJ6u0 从现代软件工程的观点来看,测试应是软件生命周期过程的一个不可缺少的阶段,是确保规定的需求得以满足,上图的流程模型体现了这一点。而QA活动则是贯穿于整个软件生命周期过程及其支持过程,包括培训、采购等活动,以确保所策划的过程得以实施。QA活动和测试过程可能同时关注同一个产品,但是关注的角度不同。51Testing软件测试网"lm$VA8Uv/C!j
应该在项目的早期阶段开始QA过程,以便确定有益于项目的计划、过程、标准和规程并且满足项目需求和组织方针。从事质量保证的人要参加计划、过程、标准和规程的确定,以确保它们适合于项目的需要和适合于进行质量保证评价。
8g|LrH04 实施QA活动的方法51Testing软件测试网ZAs0Z-}Y f$z
4.1 QA的工作流程
q q-\M~$lu&Sff0图4描述了QA的一般工作流程。
g PU9b Wbq Ks m0 51Testing软件测试网8f9`p3zX}8W
图4 QA的工作流程51Testing软件测试网!B
il:uuzT
应指定在生存周期中将进行评价的特定过程和产品。可以根据抽样方式或客观准则进行指定;这些准则要与组织的方针和项目需求以及需要一致。51Testing软件测试网P.LlR!V+m*Bmx
识别出不符合问题后,首先是在项目内部处理,如果可能,就地加以解决。任何不能在项目组内部解决的不符合问题,要逐级上报适当的管理者予以解决。51Testing软件测试网.ru
F.\zj[
在过程中,QA一般比较注重的是过程是否符合规范?测试是否合理、充分?评审是否及时、有效等,这些是重要的“检验”过程,可以列为重点。过程是否符合规范,一般要看过程有没有计划,计划详细与否,可行与否,工作量评估是否可行(主要是检查评估方法)?日常管理是否可行?配置管理是否可行?过程遵循那些标准?实施什么样的裁减,等等。
(b)y)EW?{I4YE j0 在整个QA过程的评审活动中,QA需要具备一定的数据意识,要不断的收集各种数据,尤其是质量数据。最好具备一定的项目管理经验,要不然,只能是一种边缘参与,是进入不了项目的。QA最好能帮助PM将问题分析清楚。PM会思考要将问题做成什么样子,而QA可以思考如何去做,这样就可以达到一种配合的效果。51Testing软件测试网)T_Xi+]}h
其次还要注意一点,就是QA以什么心态去监控项目组,我们公司提出的是“质量服务”,也就是说,项目组是我们的客户,我们是为他们提供质量服务的。51Testing软件测试网{
lh(fu&q
CdKWi#W7L04.2 最佳实践51Testing软件测试网3x)}9Q"QF5i
实施QA活动的最佳实践应该根据不同的企业情况而不同,但以下几条是实施过程改进活动中总结出来的,具有一般意义。51Testing软件测试网|x6YqF
\6VL
1) QA人员要求51Testing软件测试网M
X!InW)a
· 服务精神:QA应定位为教练、服务的角色,而不是警察的角色。