敏捷测试(2)--ATDD概念
什么是验收测试驱动开发
在准备实施一个功能或特性之前,首先团队需要定义出期望的质量标准和验收细则,以明确而且达成共识的验收测试计划(包含一系列测试场景)来驱动开发人员的TDD实践和测试人员的测试脚本开发。
注意:测试人员必须是团队的一部分,并在ATDD的过程中扮演关键和掌控性的角色。
典型的ATDD开发过程是:
Step 1:产品负责人向测试人员和开发人员讲解用户故事,澄清他们提出的问题;
Step 2:
a.测试人员列出验收该功能所需要验证的所有测试场景,每个测试场景通常是概要,清晰的一句话;
b.同时,开发人员查找和分析现有的相关设计,代码和单元测试,明确开发策略;
Step 3:测试人员和开发人员共同评审和调整测试场景列表,达成共识;必要时寻求产品负责人的参与和确认;并且明确那些场景应该有单元测试;
Step 4:
a.基于通过评审和认可的测试场景列表,测试人员开始为每个测试场景创建详细的验收测试用例,准备测试脚本和测试数据;
b.同时,基于同样的的测试场景列表,开发人员开始添加单元测试用例,并以TDD方式驱动业务实现;
Step 5:在开发人员将完成的功能部署并交付测试人员执行测试之前,进行代码评审和根据测试场景列表快速验证自己完成的功能,甚至邀请测试人员来观摩;
Step 6:一旦完成的功能通过构建并部署到测试环境,测试人员立刻开始执行测试脚本;
Step 7:任何测试人员的测试中发现的缺陷都要纪录到工具,并跟踪,立刻反馈给开发人员解决,或进行其它恰当处理;
Step 8:最后,在迭代结束,团队成员向产品负责人和客户演示完成的功能。具体演示那些场景,可以在Step 3的阶段就确定。
由此可见,ATDD和基于单元测试的TDD一样,也充分体现了敏捷开发“业务驱动”的特点,始终从用户的业务价值出发;对开发团队来说,ATDD是由外向内,多方介入的,基于拉动策略的,并行开发测试方法;确保所有交付的产品都经过了充分的测试。
ATDD的好处:
1.提高交付产品的质量-因为测试人员早期介入所发挥的驱动作用,确保所有交付的功能都经过了测试,并且提高了测试的覆盖和准确性;
2.提高TDD质量-测试人员和开发人员共同定义测试场景列表,并且经过评审和修订,可以帮助开发人员书写高质量的,覆盖完整的单元测试用例。有助于解决上面提到的TDD方法的第一个局限性;
3.回归测试-良好定义和覆盖完整的单元测试和验收测试脚本有助于未来进行回归测试;
4.消除浪费-以ATDD的方式,满足和通过所有的验收测试场景是开发的首要目标,可以避免团队进行一些对客户没有价值的工作,减少浪费
在ATDD的实施中,最主要的变化和挑战在于测试人员的工作方式和流程,对测试人员提出了这些挑战:
*角色转变-传统的很多项目中,测试人员通常都是一个独立的QA团队,与开发团队彼此协作较少,测试人员的工作以开发人员完成开发和部署为起点;在敏捷开发中,尤其是ATDD的团队中,测试人员必然是开发团队的成员,而且是处于支配作用的重要成员。测试人员不能继续是被动的,而是以自己的成果来带动开发实现;
*沟通能力-传统项目的测试通常基于完备详细的需求文档;然而在敏捷开发中,需求都是以用户故事的简化形式定义的,测试人员要列出准确完备的测试场景,他需要更多地和产品负责人,开发人员沟通,每天紧密工作在一起,有任何问题或变化都能立刻反馈到团队其他成员;
*探索性测试-由于敏捷用户故事地简单性,而ATDD基于预定义的测试场景列表开发测试脚本,并且部分测试场景有了自动化的单元测试,不再需要重复的手动测试脚本,因此ATDD中的测试脚本不一定能覆盖到所有的逻辑和质量标准,于是“探索性测试”成为一个新的热门话题。即在既定的测试脚本以外,对当前和相关功能进行探索性的测试,尝试去发现一些隐藏的,未知的错误,或者一些不完美的地方。这应该成为测试人员的一种工作习惯。探索性测试看似随意,也有一些可遵循的方法,比如卖点测试、破坏测试、极限测试、深巷测试等。
敏捷测试(2)--ATDD概念的更多相关文章
- 敏捷开发(Scrum)与敏捷测试
1.敏捷测试流程和传统测试流程 软件测试是贯穿整个软件开发生命周期.对软件产品(包括阶段性产品)进行验证和确认的活动过程,也是对软件产品质量持续的评估过程,其目的是尽快尽早地发现在软件产品(包括阶段性 ...
- 关于scrum敏捷测试
关于scrum的一些定义 敏捷软件开发方法是一种把新增功能通过较小的循环逐步迭代添加到项目中(的项目管理方法),工作是由自我组织的团队以高效合作的方式拥抱和适应变化来保证客户需求被真正满足的方式来完成 ...
- 敏捷测试模式之Scrum及其实践
一. 敏捷开发模式简介 敏捷是近年来软件研发领域很火的一个词,采用敏捷开发模式的研发团队是越来越多了,尤其是敏捷模式中的Scrum更是佼佼者大行其道,这表明敏捷模式确有其好处,能给企业带来效率的 ...
- APP敏捷测试,测试和开发并行!
测试和开发具有同等重要的作用,从一开始,测试和开发就是相向而行的.测试是开发团队的一支独立的.重要的支柱力量. 测试要具备独立性,独立分析业务需求,独立配置测试环境,独立编写测试脚本,独立开发测试工具 ...
- 敏捷开发 and 敏捷测试
名词解释 agile: 敏捷的:灵活:敏捷开发. scrum: 扭打,混打:并列争球:参加并列争球. sprint: 冲刺,全速跑. backlog: 积压的工作:积压待办的事务. retrospe ...
- Testing - 敏捷测试
敏捷测试(Agile Testing) SM= Scrum Master PO= Product Owner PB= Product Backlog SB= Sprint Backlog Scrum ...
- itest(爱测试) 4.2.1 发布,开源BUG 跟踪管理 & 敏捷测试管理软件
itest 入选 2019 年度最受欢迎开源中国软件 开源工具的发展,离不开你我的支持,需要您投上宝贵的一票 去投票 itest 简介:查看简介 itest 开源敏捷测试管理,testOps 践行者 ...
- itest(爱测试) 4.2.0 发布,开源BUG 跟踪管理 & 敏捷测试管理软件
itest 入选 2019 年度最受欢迎开源中国软件 开源工具的发展,离不开你我的支持,需要您投上宝贵的一票 去投票 v4.2.0下载地址 :itest下载 itest 简介:查看简介 itest ...
- itest(爱测试) 4.1.5 发布,开源BUG 跟踪管理 & 敏捷测试管理软件
v4.1.5下载地址 :itest下载 itest 简介:查看简介 itest 开源敏捷测试管理,testOps 践行者.可按测试包分配测试用例执行,也可建测试迭代(含任务,测试包,BUG)来组织测试 ...
随机推荐
- linux C 刚初始化后的一个变量在调用一个静态库中函数后被异常修改为乱码
linux C 中声明并初始化一个变量const char a[512]="test";后,接着调用了一个静态库中的函数函数test(b);,a并没有传入test函数,但在调用这个 ...
- VS2010 win7 64位安装后新建项目生成时错误:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 ...
- Python笔记十一(迭代器)
这里我们要学会Iterable和Iterator. 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是generator,包括生成器和带yield的generator f ...
- 验证码识别之w3cschool字符图片验证码(easy级别)
起因: 最近在练习解析验证码,看到了这个网站的验证码比较简单,于是就拿来解析一下攒攒经验值,并无任何冒犯之意... 验证码所在网页: https://www.w3cschool.cn/checkmph ...
- Microsoft Dynamics 365 Developer Toolkit下载地址
下载,支持Visual Studio 2012, 2013, 2015
- 万众瞩目之下,ANGULAR 2终于正式发布啦!
转载:https://angular.io/ 怀着期盼的心情,终于盼到了稳定版本,那么我就可以专心研究了,不再为不定期的修复烦恼咯. 今天,在 Google 总部一个特别的聚会上,我们发布了 Angu ...
- Android样式(style)和主题(theme)
样式和主题 样式是指为 View 或窗口指定外观和格式的属性集合.样式可以指定高度.填充.字体颜色.字号.背景色等许多属性. 样式是在与指定布局的 XML 不同的 XML 资源中进行定义. Andro ...
- 搭建ejabberd集群
搭建ejabberd集群(金庆的专栏 2016.8)以2台机器搭建一个ejabberd集群.2台机器都是外网一块网卡,内网另一块网卡.新建一个域名,添加2台机器的外网IP.分别用源码安装ejabber ...
- EBS销售订单挑库发放处理程序
来自:http://blog.csdn.net/cunxiyuan108/article/details/6014769 在EBS实施中,经常遇到从外部传进来一个被登记的销售订单,需要通过程序进行销售 ...
- 视频编码器评测系统:VideoCodecRank
视频编码器领域一直有个比较复杂的问题:mpeg2.divx.xvid.mpeg4.vp8.vp9.x264.openh264.x265等等这一系列编码器到底哪个好?而对于同一种视频编码器,又包括了各种 ...