测试用例之用实例解读敏捷QA实践
晓晓 2018-03-06 来源 :网络 阅读 1107 评论 0

摘要:经历过传统的软件测试工作,每天的任务就是写测试用例,跑测试用例,改测试用例,报bug,验bug。测试用例和bug成了工作的核心,围绕它可以做很多学问,各种类型的测试也可以在此衍生。进入2011年,开始接触scrum的工作方式,也开始接触story,sprint,迭代周期等等的,慢慢的测试用例开始淡出。2015年元旦,加入ThoughtWorks,开启了真正敏捷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实践

  在这个实践中,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。

测试用例之用实例解读敏捷QA实践


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


  每一条tasking item都有交付价值


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


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


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


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

测试用例之用实例解读敏捷QA实践

  整理需求的逻辑,达到需求理解的一致。通常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之后的产出。

  测试举例:

测试用例之用实例解读敏捷QA实践

  好的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实践

  总结

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


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


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标软件测试之测试管理频道!


本文由 @晓晓 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程