写点什么

敏捷中的 QA

  • 2013-02-01
  • 本文字数:2667 字

    阅读完需:约 9 分钟

说到 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 也提出了更高的要求,需要做到:

  • 具有丰富的产品知识和对用户业务目标的准确了解
  • 对不同系统和数据库所用到的技术知识的了解
  • 和不同角色以及客户进行有效沟通
  • 主动验证质量目标并及时说出自己的想法
  • 编写测试计划,列出需要执行的活动并进行估算
  • 自动化测试的能力和对测试工具的基本了解
  • 在团队内部进行知识分享,协助整个团队参与到测试活动中来
  • 持续提供并获取反馈
2013-02-01 01:586188

评论

发布
暂无评论
发现更多内容

头脑风暴:组合总和 Ⅳ

HelloWorld杰少

8月月更

面试突击74:properties和yml有什么区别?

王磊

Java 常见面试题

STM32入门开发 介绍IIC总线、读写AT24C02(EEPROM)(采用模拟时序)

DS小龙哥

8月月更

在线XML转Excel工具

入门小站

工具

开源一夏 | 见微知著,带你认认数据分析的大门,站在门口感受一下预测的魅力

迷彩

开源 数据分析 预测模型 签约计划第三季 8月月更

云原生(十七) | Kubernetes篇之深入了解Deployment

Lansonli

云原生 8月月更

C++学习------cfenv头文件的作用与源码分析

桑榆

签约计划第三季

开源一夏|OpenHarmony跳转拨号界面

坚果

开源 OpenHarmony 8月月更

阿里云解决方案架构师张平:云原生数字化安全生产的体系建设

阿里巴巴云原生

阿里云 云原生 安全 数字化

Linux部署hadoop2.7.7集群

程序员欣宸

hadoop 8月月更

SpringBoot 实战:国际化组件 MessageSource 与 Nacos 组合实现动态配置能力

看山

源码 nacos springboot MessageSources

企业架构是当代的屠龙之术吗?

涛哥 数字产品和业务架构

企业架构

在线文字图标logo文章封面图生成工具

入门小站

工具

极狐 GitLab 冷知识:如何美化 issue 内容

郭旭东

极狐GitLab JIHULAB 101

极狐 Git Lab 冷知识:妙用 Badge 徽章

郭旭东

极狐GitLab JIHULAB 101

基于jwt的token验证、原理及流程

TimeFriends

8月月更

极狐 GitLab 冷知识:在 Gitlab CI Pipeline 中进行 Git Push 操作

郭旭东

极狐GitLab JIHULAB 101

数据库知识点总结

乌龟哥哥

8月月更

11 个需要避免的 React 错误用法

Geek_z9ygea

JavaScript typescript React

什么是研发效能?研发效能定义及核心价值

laofo

DevOps cicd 研发效能 持续交付 工程效率

极狐 GitLab 冷知识:使用 git push 创建 Merge Request

郭旭东

极狐GitLab JIHULAB 101

【ZK简明教程】(1)零知识证明的背景和系统结构

比特之心

区块链 零知识证明 密码学 签约计划第三季

[极致用户体验] 你的 Link Button 能让用户选择新页面打开吗?

HullQin

CSS JavaScript html 前端 8月月更

三种插件开发模式,带你玩废tinymce

Five

tinymce 签约计划第三季 8月月更

RocketMQ高性能设计之数据存储设计

急需上岸的小谢

8月月更

记一次 ClickHouse 性能测试

劼哥stone

极狐 GitLab 冷知识:GitLab CI 最熟悉的陌生关键字 script

郭旭东

极狐GitLab JIHULAB 101

深入浅出sychronized与Lock的实现原理

清风

后端 原理 并发 lock sychronized

前端食堂技术周刊第 48 期:ESLint 新配置系统、Vue3 中文文档正式上线、Astro 1.0、小程序新渲染引擎

童欧巴

对 Service Mesh 望而却步?可能都没理解这一点

baiyutang

架构 微服务 签约计划第三季 servicemes

最多可省19%!阿里云第七代云服务器ECS中国大陆地域调价通知

阿里云弹性计算

云计算 阿里云 ECS 企业创新

敏捷中的QA_研发效能_林冰玉_InfoQ精选文章