用实例解读敏捷QA实践

篇前话


经历过传统的软件测试工作,每天的任务就是写测试用例,跑测试用例,改测试用例,报bug,验bug。测试用例和bug成了工作的核心,围绕它可以做很多学问,各种类型的测试也可以在此衍生。进入2011年,开始接触scrum的工作方式,也开始接触story,sprint,迭代周期等等的,慢慢的测试用例开始淡出。2015年元旦,加入ThoughtWorks,开启了真正敏捷QA的体验,一直听说敏捷软件开发,也一直认为之前的工作方式也算是敏捷的,实则不然。

结合之前的测试积累,以及在现在的项目中各种敏捷实践的应用,这里,我想跟大家分享的是项目中体会较深的几个敏捷QA实践。

Story Review


通常需求由BA客户反复的商讨,并做基本的整理和拆分后,会以story的形式产出。一个story会分别经过BA,UX,客户,以及QA的review,反复修改填充.

QA在这个环节中,通过review story对业务进行理解和分析,review story的AC,UI mockup,结合和现有系统的设计,对story的AC填充,加入相应的验证,错误处理,安全相关的验证点。

同时添加QA Notes,相关开发部署的环节的内容,或者经常出的bug提前标记在story里。

举个例子 story review 前和review 后:

在这个实践中,QA想的是:如何站在质量的角度,保证业务的完整性,补充业务之外的相关内容。

敏捷团队中的BA和QA一样,经常是一个人负责一块内容,这样使得BA和QA在工作中经常出现结对,互相补充和backup。

Tasking


在你现在的项目中,是否有为每一个story做tasking?

在你做tasking的过程中,是否有involve QA?

Tasking - 是在story kickoff之后,把story拆解成可以逐步实现的步骤,可以采用SBE的方式,保证每一步的实现都是可交付的,当然也有steps的方式。这两种方式都无可厚非,两种方式不做过多比较,毕竟story已经是客户可接受的最小交付对象了,story开发中,不同的dev开发方式和习惯不一样是可以理解的。

第一种,拆解成steps的方式:

  1. 包含了前后端的验证

  2. 同时包含了一部分dev 设计的步骤(蓝色标记框)

  3. 基本是遵照从前端到后端逐步开发的思路

  4. 按照用户的基本操作习惯,全面考虑各种case。

第二种,类似SBE的方式:同样的上面的例子,tasking之后的表现形式会是这样的:

每一条tasking item都有交付价值

每一条tasking都有自己独立的steps做分解

这样做的好处在于每做完一条都能体现出交付的意义

同样涵盖了上面一种方法的所有条目,只是组织方式和切入点不同。

QA和DEV pair tasking中达到的效果:

整理需求的逻辑,达到需求理解的一致。通常kickoff中会提到特别多的点,需要整理输出。

涵盖了所有story相关的测试point

在tasking过程中,跟dev pair,指出了在开发中可能遇到的坑,可能忽略到的点

同开发一起,站在质量的角度,从设计上考虑潜在的风险,提前预防,比如performance,security的问题,API的设计

了解开发的设计思路,帮助QA理解story的测试难度以及测试量

若遇到组里新来的开发,可以通过tasking pair帮助开发理解业务细节

在这个实践中,QA想的是:如何站在质量的角度,规避可能遇到的或者常被忽视的点。

也就是说QA在开发开始工作前,就已经把可预见的问题,bug,都已经在tasking的过程中规避了。同时,即使开发switch pair,也不担心细节的丢失,Tasking有效的保证了story没涉及到的细节点的不被遗漏。Tasking实践中,要求QA要有软件开发设计的理解力,可以跟开发沟通设计中的不足,理解开发遇到的难点痛点,并一起想办法。

Review Test


Unit Test, API Test, Contract Test都是属于测试的一部分,位于测试金字塔的下层,专注手动测试的QA很少会接触。UT,API测试,Contract Test都是属于内部质量保障,也就是代码质量的保障。QA关注产品的质量,除了外部质量,也包括软件的内部质量。UT,API测试,Contract Test是由开发人员编写的测试代码,也是QA关注的范围。所以也鼓励QA对底层测试进行了解。那么Review Test是怎么做呢:

Story signoff阶段,业务signoff之后,留下QA与DEV一起进行Review Test

QA driven,从前到后,充分掌握UT测试的逻辑链条,把控内建质量

对比UT测试和tasking list,是否每一条check point都有测试cover

前后端的测试同时需要根据需求做validation,例如字段不为空

Review之后,产出TODO list,需要修改的测试,或者遗漏的测试,或者需要重构的测试都是review之后的产出。

测试举例:

好的UT具备:

名字mi较强的可读性,传达的是业务意义。

清晰的数据准备,不相互依赖

清晰的测试点,verify point和description相符

整体结构清晰,一个UT一个测试点,一组UT相互结构清晰。

在整个review的过程中,开发和测试充分的沟通实现和测试case的设计,一方面帮助开发设计合理的测试,一方面帮助QA理解哪部分测试已经在底层做过了。

在这个实践中,QA想的是:如何站在质量的角度,组织有效的内部质量测试。构建合理的测试体系,把测试重心往底层推。

Review Test实践中,要求QA要有一定的代码能力,了解开发的设计模式,读懂测试代码,能够在Review Test中起到指导测试的作用。

构建QA checklist


你有没有发现kickoff的时候,有那么几个问题,或者几个点会重复提,例如:performance相关的用户量,例如是否要event(使用event store的话),相信每个组都有自己组特殊的但是common的点。你有没有发现在signoff的时候,有一些common的问题被反复的在不同的story暴露,例如:button 颜色不对,忘记了排序,对齐问题等等。这个时候,敏锐的QA就会根据这样的反馈机制,建立一个checklist,把这些经常出现的问题搜集整理共享出来。可以添加到story的模版里,用来保证每个story都会过一遍这个list,把质量保障往前推。Checklist 可以包括:

Performance相关的AC: support how many user/data

安全相关的AC: evil user story etc

是否有部署配置相关的要求:新的DB,新的site,数据migrate等

是否需要feature toggle

Error handle

兼容性问题

UI 问题

项目业务相关:类似与不同角色的权限控制

这个列表可以不断的扩展,可以来源于开发环节之后的任何一个环节多次出现的问题,也可能是经常出现的bug,也可以是技术的requirement。这个list如同九阴真经,可以帮助团队提供一个反馈平台,把后期发现的问题提前预防,避免一个问题多次出现,也避免宝贵的大脑资源记这些繁琐的零散的点。

如果你还没有这样一份checklist,建议构建一个,作为一个活文档,存活在每一个story中。

像这样,但不仅仅包含这些:


总结


敏捷QA,在敏捷软件开发实践中有自己的关注点,除了build quality in software,还需要build quality sense in everyone. 在团队中,QA需要参与到从需求到交付的每个环节,做到把质量构建在软件开发活动中的每一步。如果你还在天天做手动测试,跟bug打交道,那不妨开始想想,怎样把现在做的手动测试推到测试金字塔的合适位置,怎样减少bug的产生。

这篇文只列了四个敏捷QA实践:Story Review, Tasking, Review Test, 构建QA checklist。来自项目实践真知,希望对大家有帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容