测试人员,今天再不懂BDD就晚了!
首先,测试人员应该参与软件开发的全流程,这一点已经是软件行业的共识了。
其次,新技术、新框架、新思路不断涌现的今天,测试人员除了传统的功能测试,也要不断与时俱进,主动承担起自动化测试、性能测试等。除了更多参与软件流程,测试人员更要以自己的技术能力证明自己的价值!
再次,随着敏捷开发模式的不断迭代发展,敏捷开发的技术和管理模式,已经深入到传统和新兴的各个软件公司。
敏捷开发,除了快速迭代的项目管理模式,还带来了一系列技术实践层面的新思想、新概念。而且,新思路、新概念、新模式也在敏捷开发的一次一次迭代中不断推陈出席!
早期的TDD
(Test Driven Development),
测试驱动开发,就是敏捷开发带来的软件开发新实践。TDD让测试人员更深入地参与到了软件开发生命周期中。
TDD推出了几年之后,新的敏捷开发迭代,还在持续着。
新迭代的产物,是软件开发更加贴近业务逻辑的“行为驱动开发”,缩写为BDD。
BDD(Behavior Driven Development),行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。
BDD的开发流程,像下面这样:

BDD最初是由Dan North在2003年命名,2009年在伦敦发表的“敏捷规格,BDD和极限测试交流”中,Dan North对BDD给出了如下定义:
BDD是第二代的、由外及内的、基于拉(pull)的、多方利益相关者的(stakeholder)、多种可扩展的、高自动化的敏捷方法。它描述了一个交互循环,可以具有带有良好定义的输出(即工作中交付的结果):已测试过的软件。
Dan North创造了首个BDD框架:JBehave。之后是Ruby语言的基于故事的RBehave,后来被纳入了RSpec项目。RSpec中第一个基于故事的框架,后来被主要由Aslak Hellesøy开发的Cucumber取代。
Cucumber框架可以说是BDD的代名词了。官网:https://cucumber.io
Cucumber支持的语言也非常多,比如:
• Java Virtual Machine: Cucumber-JVM
• .NET (Microsoft.NET and Mono): IronRuby and .NET, IronRuby and Mono
• Adobe Flex: FunFX, Melomel
• Python
• Perl: Test::BDD::Cucumber
• Erlang: cucumberl kucumberl
• PHP: Behat (使用 Mink 进行浏览器测试
下面以JAVA为例,简单描述一下Cucumber进行BDD的过程。
1. 安装 cucumber-archetype Maven插件;
2. 在命令行建立一个项目

3. 进入目录 src/test/resources/hellocucumber,创建行为特征文件,包含场景、动作和响应。

Feature、Scenario、Given、When、Then这些都是关键字。
特征文件,需要用英文,这个不要尝试用汉字。
到这一步,行为驱动测试的第一部分的“B”,就写完了。是不是很自然?上手很快?
剩下的工作,测试人员就要跟开发人员紧密配合了。
有兴趣的小伙伴,多看看Cucumber官网,很详细的步骤和文档。
Python小伙伴们,除了Cucumber框架,我们还有Lettuce框架,可以选择。后者是一个纯Python解决。
如同TDD,BDD也在中国大陆的软件圈子里逐步热闹起来。
小伙伴们,赶快行动起来吧!
作 者:Testfan Arthur
出 处:微信公众号:自动化软件测试平台
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接
测试人员,今天再不懂BDD就晚了!的更多相关文章
- 作为测试人员,不能不懂的adb命令和操作
刚从web转到app测试,很多知识需要补充,记录一下 1.概念 其实我们口中所讲的adb是个泛指,这其中有两个工具——Fastboot和ADB fastboot 快速启动,usb链接数据线的一 ...
- 测试人员学Java入门指南
目标读者 本指南特别适合有Python基础的同学学习Java入门,对于没有任何编程经验的同学可能会存在困难. 为什么测试人员要学Java 选择Java,应该不错.TesterHome测试论坛知名大佬基 ...
- 如何避免测试人员提交重复的Bug
我们在软件测试过程中,由于不同人员测试同一个项目,所以往往会出现Bug重复提交情况,导致对整个项目和人员产生影响: 浪费测试人员时间和精力,从而影响测试进度 浪费开发人员重复看Bug时间 若开发人员由 ...
- APP测试中的头疼脑热:测试人员如何驱动开发做好自测
如今,随着移动互联网的浪潮越翻越涌,移动APP测试工作的现状已经成了那本"家家难念"的经.不管公司大小,不管测试哪种类型的APP,让广泛测试者苦不堪言的就属重复性最多,测试工作量最 ...
- 随心测试_软测基础_005 <测试人员工作内容>
接上篇:清楚了_测试人员的工作职责范围,那每项 测试活动的具体工作内容有哪些呢? Q1:如何理解测试工程师的工作内容? A1:SX的观点:综合一体化 现如今互联网行业如何哪达,每一项IT职业的工作职责 ...
- 写给测试人员:不是所有的bug都需要修复
用户往往对产品中各种各样的bug抱怨不已,而测试人员往往认为自己的职责就是揪出这些所有的bug并把它们全都修复.然而,这是一个误区.微软卓越测试工程总监Alan Page近日撰文,再次解释了有哪些bu ...
- ISTQB测试人员认证 初级(基础级)大纲
ISTQB测试人员认证 初级(基础级)大纲 ---中文修订版本1(2015年5月6日) 2015-06-22 大纲pdf下载 ISTQB资料中心 在课程大纲中,每个章节都会提供相应的认知水平要求: ...
- Java的BIO和NIO很难懂?用代码实践给你看,再不懂我转行!
本文原题“从实践角度重新理解BIO和NIO”,原文由Object分享,为了更好的内容表现力,收录时有改动. 1.引言 这段时间自己在看一些Java中BIO和NIO之类的东西,也看了很多博客,发现各种关 ...
- 测试人员必须掌握的linu常用命令
有些公司需要测试人员部署程序包,通过工具xshell. 现在我将总结下工作需要用到的最多的命令 ls 显示文件或目录 pwd ...
随机推荐
- Linux C++的多线程编程(转)
1. 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的Unix也支持线程的概念,但是在一个进程(proces ...
- Oracle创建索引的原则(转)
Oracle 建立索引及SQL优化 数据库索引: 索引有单列索引复合索引之说 如何某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引.数据库索引主要进行提高访问 ...
- C指针——C语言手记
近期敲代码的时候.发现自己非常多东西都開始忘了. 今天最终有机会好好总结一下指针.当做个笔记同一时候也希望对大家实用.假设有不对的地方.希望大家能帮我指正一下.然后我的实验环境是32位RHEL+ecl ...
- CloudStack系统虚拟机启动但不在Host表中
有网友问到这个问题,CloudStack中,系统虚拟机正常启动,Running状态. 可是在host表中没有对应项,上传下载模板等功能也不正常. 原因:系统虚拟机启动之后,会通过管理网段主动连接man ...
- Posix消息队列相关函数
Posix消息队列(message queue) IPC函数中常用的参数取值: 打开或创建POSIX IPC对象所用的各种oflag常值o_RDONLY 只读O_WRONLY 只写O_RDWD ...
- Animated progress view with CAGradientLayer(带翻译)
Animated progress view with CAGradientLayer(带翻译) Modern software design is getting flatter and thin ...
- RabbitMQ/pika模块
简介 MessageQueue用于解决跨进程.跨线程.跨应用.跨网络的通信问题. RabbitMQ使用erlang开发,在windows上使用时要先安装erlang. 官方的示例比较容易理解,可以点这 ...
- Writing a Simple YARN Application 从hadoop生态抽出yarn ,单独使用yarn
Apache Hadoop 2.9.1 – Hadoop: Writing YARN Applications https://hadoop.apache.org/docs/current/hadoo ...
- bash_action
https://stackoverflow.com/questions/12076326/how-to-install-maven2-on-redhat-linux #!/bin/bash # Tar ...
- 20170223 遇到自建表里面相同key值数据不唯一
我怎么发现这个表里 key值相同数据不唯一, 这两条看起来是完全相同的, 其实排序不能能合并已经说明问题.