行为驱动测试历史发展与现状

本文探讨了自动化测试方法,特别是行为驱动开发(BDD)的历史发展与现状。BDD是一种敏捷开发方法,强调团队间的沟通,常用工具包括Cucumber、JBehave等。文章对比了TDD与BDD的自动化测试,指出BDD更注重用户需求和自然语言描述。目前,BDD在欧美企业中受到重视,随着持续集成和工具的完善,有望在中国获得更广泛应用。
摘要由CSDN通过智能技术生成

行为驱动开发(Behavior Driven Development)即BDD,是一种敏捷开发方法,通常应用在自动化测试中,或者也可称为行为驱动测试。通过使用自然描述语言确定自动化脚本,通过这种方式,能够大大促进团队之间的沟通。实现BDD的工具有Cucumber、JBehave、RBehave,以及桌面客户端CukeTest。 下面以自动化测试开发模式的发展过程来说明下行为驱动测试历史发展与现状。

自动化测试方法的现状

随着 Agile 开发模式在越来越多的项目组中推广,持续集成 (CI) 作为 Agile 的重要组成部分,也被越来越多的项目组采纳并实施,在这个部署实施过程中,自动化测试在软件测试中占有越来越重要的地位,如何让我们的自动化测试能更快,更有效的运作,一直是我们探索的目标。在实际的项目中,我们可能随时面对各种不同的需要,而这些也决定了我们采用什么样的开发模式。

下面为常用几种开发模式

TDD

测试驱动开发(Test Driven Development)。它的想法来自于极限编程(Extreme Programming)。TDD 是 Agile 开发中的一项核心实践和技术,也是一种设计方法。引用 Wikipedia 上的关于 TDD 的介绍:

测试驱动开发(英语:Test-driven development,缩写为TDD)是一种软件开发过程中的应用方法,由极限编程中倡导,以其倡导先写测试程序,然后编码实现其功能得名。测试驱动开发始于20世纪90年代。测试驱动开发的目的是取得快速反馈并使用“illustrate the main line”方法来构建程序。

TDD 的基本思想是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计和质量控制量化的过程。TDD 简单的说就是:每写一段代码之前,先写一个单元测试;根据单元测试的功能,开始编码;待到代码可以使之前的测试通过后&#x

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作者: [英]Matt Wynne / [挪]Aslak Hellesy 出版社: 人民邮电出版社 原作名: The Cucumber Book:Behaviour-Driven Development for Testers and Developers 译者: 许晓斌 / 王江平 这是一本半技术书籍,虽然是测试使用,但阅读它实在也需要一定的代码基础,所以可见,测试的技术含量越来越高了:D 由于本人使用Java,所以忽略了12章以后的内容,由于它所使用到的那些框架都是基于Ruby。 本书分为3部分: 1. 基础 2. 进阶 3. 应用 在第一部分,基础篇中,介绍了Gherkin语法,Cucumber的产生背景与适用范围,以及常见问题与解答。 Cucumber是一种系统行为的描述文件,它是活文档,应该时刻描述当前系统的正确行为,并且能够自动测试。 这一特性事实上也要求在写Cu..ber文件时,务必做到用户精准,不要重复场景,用书上的话来讲,就是同一句话,对且只对应系统中的唯一的一个行为。 Cu..ber主要用于在团队中进行沟通,语言必须能通用,要通用就要求隐藏技术细节,以自然语言去描述系统的行为,最经典的场景如: Given ... When ... Then ... 给定一定场景,当做什么操作时,会产生什么样的结果。 表格的使用,Backgroud关键字都是为了让特性文件能更简洁,也更易懂和富有表现力。 第二部分进阶篇中,介绍了一些高级的功能,比如: 钩子和标签 钩子是指 @Before @After 这种加上实现方法之前,在测试开始时和结束后执行一些特定的操作。Cu...ber的步骤是全局的,同理,@Be..这类钩子也是全局的,Cu...ber的全局是大有深意的,因为它认为,特性中的所有有用步骤,只能对应一种系统的行为。若需要让其支持单个场景,则需要对在钩子后面加上标签的方式。 标签同钩子形式相同,可以在场景和特性关键词上加标签。 对于特性(Feature)的标签,会加在每个场景上。 Cu...ber可以对一组标签进行测试。 Cu...ber测试中(可以推而广之到任何测试中),凡是有数据库参与,需要在测试之前保证数据库是干净的,并且当前测试不会遗留下数据影响到下一个测试。可以使用事务和Truncate的方式来保证这点,实际上,只要测试环节所需要的数据都由Given中提供,则不会有问题。 第三部分讲应用 ,基本上都是基于Ruby的一些库,但11章的命令行使用方式还是很有意义的, Cu...ber本身就是一个命令行工具,通过命令行,可以对特性文件进行一些过滤,对输出格式进行定制,以及集成到持续集成中。 命令行命令可以使用帮助:--help 一些重要的命令: --tags 过滤标签 --lines 指定行执行 xxx.feature:45 指定行的另一种形式 --format 格式化输出 如果真能把 Cucumber 用起来,用严肃的态度对待每一个步骤,以测试驱动开发,做出来的项目质量应该能大上一个台阶的,是个很好的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值