`
cutecoot
  • 浏览: 117812 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

敏捷开发中QA的职责之敏捷中的QA

阅读更多

QA,通常指的是质量保证(Quality Assurance)工程师,但我更喜欢定义敏捷中的QA为质量分析师(Quality Analyst),主要基于以下几个方面的原因:

  质量保证更偏向于工业说法,称参与软件测试的人员为质量分析师感觉更恰当;

  质量保证师更多的还是把测试当作软件质量的最后把关着、看门人,而敏捷中的QA更多的是建议提供者而非看门人,把QA称为质量分析师更能体现敏捷中团队对质量负责的原则;

  质量分析师更重视业务价值,关注业务价值的分析。

  QA,质量分析师,显然与测试有关。敏捷中的QA,也就是与敏捷测试有关。敏捷测试就是在敏捷开发模式下对软件进行的测试,要求尽早测试、频繁测试,以及时提供反馈。敏捷测试要求团队对软件产品的质量负责,而不是某个带有QA头衔的特殊人员。敏捷中的QA可以是参与敏捷测试的所有团队人员,而并不一定是特定的专职的测试人员

  这听起来是不是有点特别?跟传统开发模式下的测试人员是不是有些不一样?别急,我们先来看看敏捷中的QA是如何进行日常工作的。

  敏捷QA的日常活动

  从迭代到发布,敏捷测试的生命周期各个阶段QA的活动主要有:测试分析,测试自动化策略分析、框架构建等,故事测试,迭代计划会议和客户演示,测试自动化的维护和执行等。如下图示:

  QA通常不是仅仅工作在某个迭代,而是并行的同时工作在多个迭代:要对当前迭代的故事进行验收测试、探索性测试,和开发人员结对实现测试自动化;还要和业务人员结对分析下一个迭代的故事,编写验收标准和测试用例

  在单个迭代内部,伴随着故事生命周期,QA的活动有哪些呢?用户故事生命周期包括以下几个阶段:故事分析、故事计划、故事开发、故事验收、故事测试/探索性测试、系统测试和客户演示。QA参与故事的整个生命周期,在每个阶段都会发挥作用。

  故事分析阶段:需求澄清,业务场景和验收测试的确认

  故事计划阶段:拆分测试任务,在每个故事开发估算基础上考虑测试的时间和估算

  故事开发阶段:和开发人员结对实现自动化测试,和团队沟通发现的问题和缺陷

  故事验收阶段:开发人员开发完故事后,QA和业务分析人员要在开发机器上进行验收,以提供快速的反馈;同时还要对测试覆盖率(单元测试、组件集成测试、功能测试)进行确认和提出反馈

  故事测试/探索性测试阶段:执行自动化验收测试,执行探索性测试,强调会阻碍故事发布的因素,和团队就测试覆盖率进行沟通,为发现的缺陷添加自动化测试

  系统测试和客户演示阶段:执行端到端的系统测试,执行业务或集成的用户测试场景,和团队及客户就功能特性的质量和稳定性进行沟通,参与给客户演示功能和特性

  正如前面提到的,在每个阶段,QA除了要独立进行测试,通常还需要跟不同的角色结对,包括业务分析人员、开发人员、以及客户。

 

  QA与业务分析人员结对:通常在业务分析师分析用户故事的时候,QA要与业务分析人员结对编写验收标准。通过与业务分析人员结对,QA能够更好的理解领域知识,从而有利于定义合适的测试用例;QA从测试角度添加的验收测试用例可以帮助整个团队对产品功能性有更好的理解。

  QA与开发人员结对:QA和开发人员分别能给团队带来不同的技能集,认识到这一点很重要。作为一个团队,最好通过平衡不同的技能集来获得共同的目标。这对于传统的瀑布式团队来说是一个很重要的心态改变。通常在实现测试自动化的时候,QA与开发人员结对是比较理想的方式。这样结对实现的自动化测试质量相对较高,有测试意识较强的QA参与能够保证自动化测试测得是真正需要测试的部分,而开发人员的编码能力有利于写出简洁可维护的自动化测试代码。另一方面,QA通过与开发人员结对,编码能力也会相应有所提高,而开发人员通过与QA结对,测试意识也会增强,更有利于编写质量较高的产品代码,更有利于形成全功能团队。

  QA与客户结对:客户是业务领域专家,通过与客户结对,QA能够更好的从终端用户的角度理解系统,从而定义或者增加更多的端到端的测试用例;一旦QA理解了领域知识和终端用户的观点,其业务价值分析能力会有所提高,在团队需要的时候可以承担业务分析角色;在用户验收测试(UAT)阶段,QA通过与客户结对,帮助客户熟悉使用系统,在必要时可以帮助客户解决一些系统问题。

  敏捷QA的这些日常活动,的确反映出敏捷QA的日常工作内容和方式都跟传统开发模式下的测试人员有很多不同。下面为大家来详细介绍一下两者的不同,以及敏捷测试对QA的要求有哪些。

  敏捷QA与传统测试人员有何不同

  我们分别从团队构成、测试阶段、工作方式、关注点、业务知识来源以及发布计划制定几个方面,来看看敏捷QA与传统测试人员有哪些不同:

传统测试人员

敏捷QA

单独的测试团队

多角色开发团队的一员

在开发流程后期才开始测试

测试贯穿于整个开发流中

通常是独立工作

QA和不同角色进行结对

被当作最后也是唯一的质量保证

关注并强调风险

缺乏与业务人员的直接沟通

和业务人员直接沟通

没有机会参与发布计划制定

参与发布计划的制定

 

从上表的对比可以看到,敏捷QA是特殊的,主要体现在:

  敏捷QA是提出建议者而非看门人,需要在参与的每个阶段提出自己的建议,而不是等到开发流程最后来对系统进行验证;不仅要验证开发设计是否满足需求,还要发现需求是否能真正体现业务价值,分析是否有不恰当或缺失的需求。比如说,敏捷QA在跟业务人员结对编写验收标准的时候发现故事分析过程中漏掉的需求,在跟开发人员结对过程中跟开发人员讨论某个测试放在哪层实现比较合理等。

  发现风险,并将风险与团队及客户沟通。QA参与整个开发流程,对系统整体的认识和把握可以说是团队里边最全面的,因此也更容易看到系统存在的风险。

  及时向团队提供关于产品质量的反馈,便于调整。在每个迭代结束时候,QA需要分析统计该迭代的缺陷,并结合自己通过测试对系统质量的了解,及时跟团队反馈,讨论分析质量下降的原因以尽快作出改进,或总结质量上升的经验,鼓励团队再接再厉。

  在制定产品和版本的发布计划的时候,QA可以根据自己对产品质量的了解,从测试人员独有的视角提出一些关键的建议。

  QA通过参与开发流程的每个阶段,能够协助团队从内部提升质量,让质量融入到产品开发中来。比如:在故事验收阶段对测试覆盖率的确认。

  这些特殊性对敏捷QA也提出了更高的要求,需要做到:

  具有丰富的产品知识和对用户业务目标的准确了解

  对不同系统和数据库所用到的技术知识的了解

  和不同角色以及客户进行有效沟通

  主动验证质量目标并及时说出自己的想法

  编写测试计划,列出需要执行的活动并进行估算

  自动化测试的能力和对测试工具的基本了解

  在团队内部进行知识分享,协助整个团队参与到测试活动中来

  持续提供并获取反馈

分享到:
评论

相关推荐

    敏捷开发的艺术

    尤其是,本书为敏捷开发中一些较为困难的方面(合作的需要和团队成员之间的信任)提供了解决办法。, 不管你目前已经是敏捷团队的一部分,还是只对敏捷开发感兴趣,本书都为你提供了开始实践敏捷开发所需的实用技巧。...

    敏捷中的QA

    说到QA,通常指的是质量保证(QualityAssurance)工程师,但我更喜欢定义敏捷中的QA为质量分析师(QualityAnalyst),主要基于以下几个方面的原因:QA,质量分析师,显然与测试有关。敏捷中的QA,也就是与敏捷测试...

    敏捷开发中的QA为何受人的攻击?

    通常有这几个地方第一,通常认为...所谓的对比充其量只是TE和QA的对比,而不是“传统测试”和“敏捷QA”的对比。典型的比如文中提到的传统测试”没有机会参与发布计划制定“,而敏捷QA“参与发布计划的制定”。实际上这

    敏捷软件开发中的QA

    说到QA,通常指的是质量保证(QualityAssurance)工程师,但我更喜欢定义敏捷中的QA为质量分析师(QualityAnalyst),主要基于以下几个方面的原因:质量保证更偏向于工业说法,称参与  说到QA,通常指的是质量保证...

    敏捷软件测试:测试人员与敏捷团队的实践指南

    crispin和Gregorv定义了敏捷测试的概念,并通过来自现实敏捷团队的示例阐述测试人员的职责。她们讲述如何利用敏捷测试象限来识别需要哪些测试,谁来做,以及哪些工具有帮助。《敏捷软件测试:测试人员与敏捷团队的...

    华为公司实际的敏捷项目管理经验

    在以前,团队实施CMM的时候,QA更多的是一 个警察的角色,他整天拿着一个checklist、报告什么的到处去团队里面看,你是否ok,不ok就要怎么怎么样,整天就干这个活,但是引入敏捷之 后,QA就觉得有点失落,都敏捷了,...

    敏捷开发中开展自动化测试的经验

    首先,敏捷开发并不是部分同学想象中的那样,没有文档没有需求,开发来了就干,干几个月就丢给客户一个版本让他们用去。我们公司一般6个星期是一个release周期,在这6个星期里面,可以做的事情是非常多的。需求,...

    专家眼中的QA、敏捷测试

    黄利,诺基亚敏捷及精益教练@徐毅-Kaveri和百度高级测试工程师杨进,请他们谈下各自对QA和测试的理解,内容涉及如何衡量软件测试的有  编者按:测试、QA一直是大家关注的话题,只要有软件开发,就离不开QA和软件...

    测试自动化后,我们还需要QA吗?

     瀑布开发模型  即使在今天,在很多企业中,瀑布模型仍然是主流。每一个需求都需要经过分析,设计,开发,测试,上线部署,运维等阶段。虽然一些企业已经在实施敏捷开发,比如项目/产品以迭代的方式运作,也有...

    敏捷软件测试:测试人员与敏捷团队的实践指南(英语版)

    作者:Lisa Crispin,Janet Gregory; 一本介绍敏捷项目中测试的英文版书籍。 对敏捷应用中如何有效测试,?...敏捷团队真的需要具有QA背景的成员吗?“敏捷测试人员”到底意味着什么?等问题作出了回答。

    敏捷导入及组织转型-CMMI背景下推进敏捷

    目录 . 在敏捷视角下看待CMMI等级 . 在敏捷视角下裁剪CMMI过程域和实践 . 开始导入敏捷开发 . 团队领导在敏捷下的变化 . 项目经理、EPG和QA等如何适应敏捷

    Agile QA Guide

    这是一个敏捷QA过程方面的指导,对Scrum项目有帮助

    互联网敏捷开发配置管理策略思考

    例如张三修改了a.java并上QA测试服务器,在QA测试过程中,李四也对a.java进行修改并上QA,李四的代码覆盖了张三的代码。由于是SCM人员并不清楚代码冲突情况,这样张三和李四的代码上QA很容易相互影响并很难查具体

    如何一步一步从QA到EP

    QA团队从最早的强调流程,到后来强调开发技术,搞自动化测试,再后来又开始做敏捷和持续集成,这条发展的路上,对自己的要求不断变高的同时,也伴随着一个组织和团队发展的魔咒。这个发展的魔咒更像是一个循环,可能...

    破解敏捷测试的十大"神话"

    对于敏捷测试,可定义如下:项目中使用敏捷技术的相关测试实践,开发作为测试的顾客,强调测试先行的设计理念。在敏捷开发中,测试被整合到整个开发的生命周期中。敏捷测试敏捷将被越来越多的人所接受,这很容易理解...

Global site tag (gtag.js) - Google Analytics