首页 > 数码 > 测试工程师如何参与敏捷?

测试工程师如何参与敏捷?


根据近年来笔者对多家企业的培训和咨询,发现基本上所有从事软件研发的团队都在开展敏捷的实践,但由于各个敏捷团队中测试的能力参差不齐,甚至有些敏捷测试团队根本不知道如何参与敏捷开发。在敏捷项目中,测试人员如何定位,如何融入到敏捷开发团队,发挥测试人员的技能,同时弥补自身技能的不足。测试人员的活动有哪些?如何跟开发人员配合,做到推出的版本质量和进度取得平衡。

            大家都知道,参与敏捷团队的成员是一个由设计、开发、测试人员组成     的团队,他们有着共同的目标。同时,敏捷团队还应该具有:自主性、思考      性、合作性。

 如果SE做SE的设计,开发做开发的code,测试做测试的版本,资料做资料的版本,这样不同角色不可能达成一致的目标。犹如候车厅等车的一群人,目的虽然都一样是侯车,但是方向却是东南西北。

敏捷中倡导组建的团队,是价值驱动型的,是自发式管理模式。一般来说,敏捷团队中有以下三个角色:

敏捷团队角色

角色要求

备注

PO(产品负责人)

Product  Owner代表了客户的意愿。这保证了Scrum团队在做从业务角度来说正确的事情。产品负责人编写用户故事,排出优先级,并放入Product  Backlog。


Scrum  Master

ScrumMaster促进  Scrum过程,他的主要工作是去除那些影响团队交付迭代目标的障碍。ScrumMaster并非团队的领导(由于他们是自我组织的),而是负责屏蔽外界对开发团队的干扰。


Team

负责交付产品的团度。具有跨职能技能的人(设计,开发,测试、资料等)组成的小团队完成实际的交互工作。


在实际项目运作中,倡导能者居其职,发挥个人最大能量,激发团队最大潜力。在目前华为、腾讯、阿里等公司的各个敏捷项目实践中,角色之间不是区分那么明显,一个团队的成员可以承担多个角色。我们重点来看看测试人员的职能定位:

一、敏捷中我们测试人员又叫QA(质量保证)。因此,从项目一开始就需要让全员达成一致:关注质量,随时构建质量,形成零缺陷文化。

二、引导全员都关注质量,团队成员技能互补给团队带来强大合力,从不同角度关注质量,预防bug,充分激发团队潜力。

      三、开发和测试紧密合作,形成技能互补,协助开发人员完成LLT,避免开发老是测试不出问题现象,以及测试不充分的情况。

四、测试人员更能够从用户角度出发,引导开发人员能够从用户的角度去思考和设计软件实现。

五、测试人员可以从架构预演等方式,从整体上把握产品,及时提出架构上的问题,以及一些组件化开发的共享。

六、提高开发技能,做到人力备份。同时,也可以提高自动化设计效率。

七、及时反馈,持续改进。测试人员需要对story及时反馈,以便团队的及时改进以及持续改进。

 

下面举一个具体的实例:(某著名通信公司的敏捷案例)

 

       主要介绍一下某公司的一个项目的一体化团队怎么组建的。同样,在很多实践项目中,采取这种组建特性化团队实践是比较成功的,也取得了很好的效果。

一、建面向特性的交付团队

由SE、TSE、开发人员、测试人员、资料开发人员组成的特性团队,团队对最终交付结果负责,团队Leader称为DomainManager。

1)DM统一安排开发和测试工作,做到按特性为单位交付,促使问题快速闭环,以便缩短交付周期。

2)必要时开发人员可以从事测试工作,测试人员也可以从事开发工作,彻底打破开发和测试之间的部门墙,做到了开发和测试人员的资源利用最大化。

3)团队不对测试过程进行考核,对最终交付结果负责,极大程度减少开发和测试的内耗。

4)开发和测试不断相互渗透,开发更懂测试、测试更懂开发,团队整体能力比较以前大幅增强。

二、开放式办公区

同一个特性团队围绕同一张桌子办公,桌子周围墙壁悬挂白板。特性相关人员可随时随地交流,大幅程度降低沟通成本。

三、组织结构

(1)、敏捷团队中不存在纯粹的资源线角色,DM兼开发PL的角色,开发代表兼开发PM的角色,测试经理兼测试PL的角色,资料人少,资料PL为STDT的资料经理 (不在敏捷团队中)。

(2)、DG(开发小组)团队可以随着项目情况动态组建和变化,DM可以来自开发,也可以来自测试。

(3)、如果DM来自开发,则DM可以授权给测试经理负责敏捷测试管理;如果DM来自测试,DM可以授权开发PL负责敏捷开发部分管理工作。

(4)、TL为团队内的开发骨干,进行核心代码编写。

(5)、版本TSE,TSE为测试骨干,主要负责产品/特性测试分析,测试方案和策略,自动化分析和设计,自动化框架搭建,专项测试分析和设计等。

(6)、DG(开发小组)中所有开发人员被DM考核,测试、资料由对应的资源部门主管考核,业务主管为考评第一相关人,具有考评否决权。

 

作为测试人员在敏捷开发过程中究竟有哪些活动呢?根据某敏捷团队的端到端的测试实践,总结出测试人员的活动如下:

1、  参与需求分析,高低保真原形分析,并参与评审;

2、  产品可测试性需求分析,产品全视图分析,产品架构测试,总体测试策略,定制测试流程;

3、  测试准备,自动化测试方案确定;

4、  STORY划分、标识

5、  制定发布测试方案,测试策略

6、  迭代测试计划

7、  STORY测试分析和设计(包括自动化测试分析与设计)

8、  STORY E2E闭环测试

9、  迭代测试

    10、参加回顾会议

    11、转SDV测试

    12、UAT用户验收测试

 

再谈自动化测试,引入自动化测试目的是提高软件的生产率、可靠性和简洁性。对自动化测试的需要统一一下认识,对自动化测试不应该寄希望太高,太高反而没有成就感:对自动化率,我们需要尽可能高;自动化测试主要目的不是找bug,而是解放我们测试执行,特别是回归测试。人类天生就是会使用工具的,所以,利用自动化测试,更主要在于协助我们更好完成测试,永远只是一个手段,一个工具而已,必要的手动执行是不可替代的。

不管是黑猫还是白猫,能够抓住老鼠就是好猫。作为测试人员,更希望我们像一个医生,能够治好病,更能够指导大家预防各种疾病。人体的机理肯定比软件复杂,人类医学也在不断摸索前进,我们还得坚信:软件开发没有银弹,同样软件测试也没有银弹。所以,敏捷也不是银弹,而是让我们换一个思维方式思考问题。以价值为驱动,以人文本,持续改进。正如google所倡导的:interestit,tryit,enjoyit。

本文作者:杨学明介绍(转载请注明出处和作者)

杨学明,清华大学MBA,深圳市共创力企业管理咨询有限公司总经理,深圳市汇成研发管理咨询有限公司董事长,资深研发管理专家,国内首席研发管理专家,曾服务于华为,阿里巴巴等知名企业,杨老师先后在国内开设研发类公开课100多场,服务内训客户1000多家,为数百家企业提供了研发咨询服务,典型的客户如深圳迈瑞、华立仪表、步步高、英威腾、雷赛智能、埃斯顿、华工科技、中国科学院、电力科学研究院、中国工商银行、重邮信科、从兴电子、浙大网新、联迪商用等。近两年服务的客户如中电海康、网易、苏宁云商、烽火科技、29所、华为技术、中兴通讯、广联达、大唐电力、招商局等。



友情链接