敏捷团队有专职的QA吗?

作者: 李浪溪_WaterLee | 来源:发表于2018-03-22 15:38 被阅读68次

刘炜问

敏捷团队有专职的 QA 吗?测试工作整体是怎么安排的?

小波老嬉答

QA 是 Quality Assurance(质量保证)的缩写,我认为回答这两个问题之前,我们要先搞清楚:

敏捷团队中,谁对质量负责?质量是如何保证的?

我的答案是:所有人对所有事负责,质量内建在交付过程中。

所有人对所有事负责

企业导入敏捷,常用的两个框架是 Scrum 和 XP(极限编程),我们来看看它们是如下描述团队结构的。
Scrum 中对团队的描述如下:

Development Teams are cross-functional, with all the skills as a team necessary to create a product Increment;
Scrum recognizes no titles for Development Team members, regardless of the work being performed by the person;
Individual Development Team members may have specialized skills and areas of focus, but accountability belongs to the Development Team as a whole.

XP 中的 Whole Team(完整团队)描述如下:

The best teams have no specialists, only general contributors with special skills.

意思是说,团队需要具备端到端交付软件的各种技能,比如需求定义,分析,体验设计,编码,测试,运维等。但并不是那么职责分明,而是整个团队拥有集体所有权,责任共担。
为什么要这么做呢?有明确的分工不是效率更高吗?是的,每个人干自己熟悉的事,个人效率是更高,但团队的产出却不是最大的。
为什么要追求产出最大,而不是效率最高呢?因为敏捷解决的是「不确定性」的问题,而不是「效率问题」。

如果你认同「需求都是待验证的假设」,那么最重要的就是赶紧交付出来,去获取用户的反馈。在有明确分工的团队里,常常会发现一个现象:每个人都在忙,都在做自己擅长的事,但需求却浪费了很多时间在各个环节等待被处理。设计完了等待开发,开发完了等待测试,测试完了等待验收......
这就相当于做了很多不能被交付的半成品,积压在生产线上。如果瓶颈已经在测试环节,很多需求等待被测试,那「开发人员」继续开发更多的功能,对整个团队来说,是在增加瓶颈的压力。如果这时「开发人员」去做测试,就能减轻瓶颈的压力,让更多需求被交付出去。

团队的瓶颈是动态变化的,通过每天的站会,可以让所有人了解团队目前的整体状态,并且主动选择「今天我准备做什么」来给团队贡献最大的价值。如果你划分了每个人的职责,并在迭代一开始就做了具体的任务分工,那往往每个人只会关注自己手里的事情能不能顺利完成,对「别人」的事就缺乏兴趣了。

那团队成员可能会说,别的工作我不会做啊?没关系,我们可以结对啊。通过结对工作,可以快速学会各种技能,开发能做业务分析,也能做测试,测试也能写代码,也能做业务分析,业务分析也能做测试。再结合可视化,站会,Code Review 这些实践,让业务和技术的上下文在整个团队中流动。
最好的团队是每个人有自己的专长,又愿意开放地学习上下游的其他技能,勇于拓展自己的舒适区。这就是 Scrum 价值观中「开放」,XP 价值观中「勇气」的体现。

质量内建在交付过程中

当测试成为软件交付的瓶颈时,传统的做法是增加测试资源,但这难免有点儿亡羊补牢的意思。我们应该系统性地解决问题,让问题不再出现,而不是在问题出现后再去修复。可能的方案有:

  • 增加测试资源:加人或加班
  • 减少测试工作量:提高上游交付的质量
  • 提高测试效率:提升个人能力或使用自动化工具

通过前文说的模糊分工,实现了测试资源的动态扩展。通过引入 BDD,TDD,重构,结对编程,Code Review,持续集成等实践,建立单元测试,集成测试,端到端测试的自动化测试体系,提高上游的交付质量。通过培训和引入新工具,提升效率。

回到题主的问题上

敏捷团队有专职的 QA 吗?测试工作整体是怎么安排的?
答:通常会有一个 QA 专家。TA 会参与计划会议,充分理解需求,编写自动化验收脚本。在 Dev 领取一个需求前,BA,QA 和 Dev 一起对需求和验收条件达成共识。在 Dev 开发完成进入测试阶段前,跟 BA 一起在 Dev 的机器上快速验收,有问题立即处理。在 UAT 环境上做探索测试,性能测试,压力测试等。

相关文章

  • 敏捷团队有专职的QA吗?

    刘炜问 敏捷团队有专职的 QA 吗?测试工作整体是怎么安排的? 小波老嬉答 QA 是 Quality Assura...

  • 敏捷团队需要专职QA么?

    敏捷QA对职业发展的担忧 最近和组内的QA聊起以后的职业发展,发现一个有意思的事情,有说想转BA的,有说想转开发的...

  • QA工作梳理

    1. 敏捷团队下的QA 1.1 敏捷QA的职责 敏捷QA的主要职责是主导并促使与质量相关的活动在团队内发生,包...

  • 《敏捷软件测试》读书笔记

    关于本书将给你带来的收获: 测试人员如何参与敏捷开发 测试人员和QA经理如何适应敏捷团队 敏捷测试人员的招聘要求是...

  • 敏捷团队中的QA由来

    QA,全称为Quality Analyst,即质量分析师(有些称为Quality Assurance,即质量保证师...

  • 版本质量总结的纬度

    版本质量总结的纬度 在一些大的团队,一般会有专职的角色来负责质量管理,即QA。QA在每个项目或版本结束时,追本溯源...

  • 敏捷实践指南之团队构成

    1、敏捷团队 成员:3-9人。最好集中办公,在一个团队工作场所工作。团队成员100%为专职成员。自我管理团队,由团...

  • 敏捷QA与Tester测试工程师

    敏捷QA岗位职责:参与项目需求分析,与团队不同角色合作,帮助团队在质量保障方面达成共识;在项目推进的不同阶段确认并...

  • 敏捷开发 | 如何在日事清上实践scrum3.0?

    开发团队应该如何敏捷?敏捷开发适合你所在团队的工作吗?你是不是在做假的敏捷开发?敏捷开发软件/工具有哪些推荐? 敏...

  • 敏捷团队的特征

    在敏捷开发过程中,我们需要组建敏捷团队。优秀的敏捷团队有哪些特征呢? 1、小团队 敏捷团队的规模在3~9人,规模较...

网友评论

  • 楚秀才:赞同,开发团队还是需要配置一个专职的 QA,从需求的视角来设计测试和验收,以及负责探索性测试、性能测试和压力测试这些需要手工测试的测试任务。想再问一下,如果开发团队不配置专职QA,而是给配置独立的测试团队,承接多个团队的测试任务,这种方式可取吗?

本文标题:敏捷团队有专职的QA吗?

本文链接:https://www.haomeiwen.com/subject/cpvaqftx.html