天天乐乐 发表于 2008-8-20 20:14:35

QA

QA的工作
1 摘要
本文是对于QA工作的个人总结。
1.1 QA的工作职责
项目组成员对于QA的工作职责有不同的看法,有人说:QA就是测试,找出软件缺陷,可以保证软件质量;有人说:QA就是对CMM与ISO体系文档的培训,宣传公司质量管理措施;有人说,QA来进行过程评审和产品审计的,可以看到这两份的文档,,等等。那么QA的工作职责到底是什么呢?
1.2 QA的角色
身为一名QA想要作好自己份内的工作,必须演好9个角色,如果某些角色相对地被忽视了,则整个工作无法达到尽善尽美,不同的角色投入的时间比例不同,要达到最佳的组合效果必须按不同的阶段做不同的事。这些角色主要体现在三方面:“人际关系角色”、“情报角色”与“咨询角色”。细分的话,可以理解为:联络人、侦探、发言人、危机预警者、说服者、纠正措施跟踪者、咨询者、培训师、参与者。
1.3 QA的作用
QA就像消防队员一样,工作做得好不好,不在于一年灭了多少次火,如果能做到一年里没有火灾的话,那QA的消防工作就做得非常到位了。
1.4 QA需要的协助
团队中的每个人都需要或多或少的帮助,QA也不例外,他也会犯错,他也有资源短缺的时候,那么当QA需要其他成员协助的时候,希望对方能提供什么呢?
2 正文
本人在项目工作中产生了一些看法,希望能和更多的人一起讨论,如何将QA工作做的更好?以问答的形式来阐述我的观点。
2.1 QA的工作职责是什么?
< 答>:根据公司的质量管理体系文件中的作业指导书《部门职责与职位说明书》指出:
质量保证工程师
 职位概要:
管理公司产品质量,实施质量改进计划,达到产品质量目标。
 工作内容:
1) 向质量保证主管汇报工作情况;
2) 协助质量保证主管制定和维护公司软件质量保证制度;
3) 参与CMM和ISO质量体系的培训和宣传工作;
4) 根据要求进行过程评审和产品审计,并对评审中发现的不符合项进行处理、跟踪,直至问题关闭为止。
2.2 QA的角色是什么?
< 答>:QA有9个角色,为:联络人、侦探、发言人、危机预警者、说服者、纠正措施跟踪者、咨询者、培训师、参与者。
(1)联络人
QA 做检查或评审与审核,并不是我们想查什么就查什么。QA要检查的内容在公司的过程、标准与规范、或质量体系中已经完全定义好了,并遵循QA的计划来执行的。QA一方面是制定流程并且保证流程的执行;另一方面就是不断搜集项目团队反馈,不断根据企业发展改进优化现有流程。我们如何确定流程的可操作性呢?就需要QA不断的充当联络人的角色,了解项目组当前的需要。企业的发展会不断变化,流程的变更也需要变化,所以,联络人的角色是一直存在的。
(2)侦探
QA 的职能是警察吗?我说,不是,QA更象一个侦探。在项目管理中,QA作为监督者的角色存在有一定意义。QA就象项目经理和高层主管的另一只眼睛,针对评审时发现的问题给软件项目经理提出改进建议。很多时候是由于项目团队不符合流程、不规范的做法才导致了产品质量问题,QA的工作之一(4)是抓住流程中的问题,通过保证流程的执行来大幅度降低执行过程中的差错。这个时候,QA就需要一双火眼金睛,找出可疑点。侦探与警察的区别是:侦探是将发现的不符合现象汇报给项目经理和部门主管,至于解决的执行由项目经理安排,QA只需要跟踪和验证最后的纠正措施;警察是发现有不符合现象直接解决,涉及到对人的处理而不光是对事的解决。可以这么说,(举例)警察的角色更适用于项目经理,侦探发现了小偷,报告给了警察,警察去抓小偷,将脏款交出来。
(3)发言人
QA 为了让自己的工作能够体现出管理公司产品质量,达到产品质量目标上,会有一系列报告,如:产品审计报告、过程评审报告。对报告内数据的收集、统计分析就能反映出项目组成员的工作效率和效果。QA是项目组的朋友。当项目组按正常的流程执行,有一定的工作成效时,QA在报告中应体现出项目组的工作实效。很多人往往都认为,QA只是汇报产生的问题,这样带来了不好的影响,不能如实反映项目情况,担心增加工作量和无意义的工作。其实,QA的报告内容之一就是对项目组成员的工作加以肯定,强调工作成绩是主要的,出现问题也是正常的,报告是为了预防下一次的不符合项发生。
(4)危机预警者
为什么说是危机预警者,而不是危机管理者呢?在项目启动时,项目经理一般会在软件开发计划中说明在该项目中存在的潜在风险列表,并有相对应的风险减缓措施,在项目进行中会整理项目问题日志。这些措施都是为了项目控制所采取的,此时的项目经理可以充当危机管理者的角色。QA协助项目经理,对项目开发/维护过程中出现的危机要及时汇报,QA的工作做的好不好,不是看解决了多少不符合项,而是预防了多少不符合项。没有问题产生是皆大欢喜。预防为先!
(5)说服者
当SQA 人员针对评审时发现的问题给软件项目经理提出改进建议后,项目经理出于进度的压力或其他原因,并不引起重视甚至拒绝采取任何措施,这是很正常的现象。这个时候,QA和项目经理经过一番沟通,发挥口才,说服项目经理在项目组中解决不符合项。避免扩大影响,汇报给上级部门。如果问题在项目组中得不到解决,再将报告提交给上级管理部门,请求支援以解决问题。
(6)纠正措施跟踪者
凡人皆有错!改正错误就是好苗子。我们对待错误的处理就如同做人的道理一样。有错即改。QA在发现问题提出改进建议后,不能撒手不管,对于问题是否解决,有什么结果需要进行跟踪,有始有尾才能体现负责任的工作态度。同时,也是对项目组成员解决问题的能力提供了考核指标。否则,凭什么说能解决问题呢?QA在度量数据分析时也有证可查,对同类项目的开发作参考依据。
(7)咨询者
QA 的资历、对软件工程的认识都要比一般人员高。作为公司内部的咨询人员,来向项目团队提供咨询工作,指导他们如何执行流程,用规范的流程来保证产品质量。最初的时候,企业会选择整个质量体系中最薄弱的环节来进行改进,他改进的是整个木桶中最短的那块板。如发现质量有问题,他的第一反映就是去改善测试工作,抓更多的bug然后修复。等到这个环节有所改善,木桶中其他的板又变成了相对最短的板,所以他又会去补另外一块,如客户服务,同行评审等。在这个过程中,将涉及到整合的问题,开发过程中的各个环节都是相互配合的,配合的过程中有数据整合、流程、工具的整合。QA因为参与了项目管理的全过程,除了有一双侦探的眼和手,还要有能提出改进方案的头脑。我们看到了,我们想到了,我们也能做到。
(8)培训师
QA有向开发团队推荐相应的工程持术和开发、测试工具的职能,如自动化测试、可视化建模、迭代开发等技术。三人行,必有我师焉。提高项目组全体成员的技能,加强质量管理观念,此时的QA就是一个培训师,向新员工宣传公司的质量目标和管理制度。不定期的提出一些技术改进,这是有利于软件产品质量的行为。我们应该多鼓励项目组成员可以通过培训学到有用的技能。
(9)参与者
QA在《产品审计报告》和《过程评审报告》中汇报以下内容:
☆ 《项目任务书》
☆ 《软件开发计划》
☆ 《需求规格说明书》
☆ 《概要设计说明书》
☆ 《详细设计说明书》
☆ 《数据库》
☆ 代码
☆ 《测试计划》
☆ 《测试用例》
软件开发过程,包括需求管理活动、软件项目计划活动、软件项目跟踪与监控活动
测试过程
配置管理活动
系统维护活动
对于上述的内容,目前QA只对于非技术类进行直接检查,技术类(代码、数据库等)的检查由技术经理和开发/维护主管负责,QA收集检查的结果。
在此,要强调同行评审的重要性。QA需要检查以下3个方面:
☆ 所计划的同行评审已被如期实施;
☆ 准备同行评审、实施同行评审和完成后继措施等过程得到遵循;
☆ 同行评审的数据报告具有完整性、精确性和及时性。
2.3 QA的作用是什么?
< 答>:QA的职责并不是帮助开发团队找到所有的产品Bug和缺陷,他的职责是要找到造成这些Bug的流程问题,并帮助开发团队及时调整其工作流程,从而更好地预防软件缺陷的产生。否则,测试人员就没饭吃了,都被QA抢走了嘛。呵呵 ^_^ QA就像消防队员一样,工作做得好不好,不在于一年灭了多少次火,如果能做到一年里没有火灾的话,那QA的消防工作就做得非常到位了。
2.4 QA需要什么样的协助?
< 答>:QA对于互动的沟通是非常需要的,在对过程和规范要熟练掌握外,还要对项目管理、其开发/维护等各个环节的工作、软件工程的知识都需要了解。项目的情况是不断变化的,及时了解项目情况有助于QA的工作开展。项目经理和成员对QA最好的协助就是能多沟通项目情况,共同的去关注软件质量。
页: [1]
查看完整版本: QA