写点什么

阅读者:"Cucumber 行为驱动开发指南" 能带给我们什么

  • 2013-10-04
  • 本文字数:2399 字

    阅读完需:约 8 分钟

介绍

或许你已经了解到了软件开发中一个头疼的事,就是如何产生正确的需求和围绕这些需求如何有效地进行软件开发?但又不知如何着手?

或许你已经了解到了一些相关的理论知识来解决这个难题,如:行为驱动开发 (BDD),验收测试驱动开发(ATDD),实例化需求(Specification By Example), 但却发现很难消化所有的信息?

或许你已经建立了一套相关的自动化测试,但总觉得在为测试而测试,没有解决实际问题,有点脱钩?

或许你已经开始着手建立自动化测试来做保障,但对那么多的工具无从选择?

也或许你只想在炎炎夏日看一本解渴的书?

所有这些,都推荐最近翻译出版的黄瓜书 【Cucumber 行为驱动开发指南】,原书是 Pragmatic 出版社的 The Cucumber book:The Bevaiour-Driven Development for Testers and Developers ,本书在美国亚马逊网站上获得全五星,强烈建议您也去看看本书,以及那些精彩的书评!

Cucumber 行为驱动开发指南

这本书是讲述如何用 Cucumber 工具来建立一个自动化测试系统,以此来推进业务开发过程,确保软件开发的质量。

Cucumber 是一个工具的名字,它帮您将需求用自然语言描述清楚,这样以便于沟通和协调。这些需求是一些可读性很强的测试用例,Cucumber 能够帮助您自动化运行这些测试用例,来验证您的软件对需求的实现程度,使您能够全程监控好需求实施的进展。

本书的目的不是介绍工具,而是让您了解如何有效的用工具来驾驭需求,如何运用 Cucumber 解决实际问题,而不是纸上谈兵。作者不愧是浸染 Cucumber 的高手,知道什么地方该多,什么地方点到即可,书中写了好多例子,但又让您感觉不到是代码的堆砌,所以是一本极好的实践集。

本书分三部分来循序渐进地讲解各个要点:

第一部分是 Cucumber 的基本知识, 讲述使用 Cucumber 背后的理念,通过一个简单的例子让您很自然地了解 Cucumber 的语法,以及如何在实际情况中使用。

第二部分是用一个真实的例子来进一步讲解技术细节,和如何在开发中有效地使用,涉及到了异步处理和数据库处理。

第三部分是讲如何应用 Cucumber 来处理不同的系统,如:Web 界面和命令行等等,并提供了一组配方来解决您的特定问题。

解决实际问题的书

作为一个软件开发者,我经常关注和学习最新的软件开发的方法和相应的工具,很早就对 ATDD(Acceptance Test Driven Development 验收测试驱动开发)感兴趣,2011 年也参加了 Gojko Adzic 的”实例化需求“的讲座,进行了尝试,也有一些深刻的体会。但是在实施的时候总觉得不得要领。

这本书给了我很大的帮助,他结合了对工具的技术细节的把握和行为驱动开发的深刻理念,来解决实际问题。这个在第六章中有集中体现,第十二章也能很好感受到。

第六章-常见问题的解决方案

作者列出了一些自动化测试中常见的问题,一下子击中要害,如果您进行过测试的开发,就会很有兴趣想看看他的解决方案。 这四个症状是:

  • 个别测试随机失败
  • 总是不经意地破坏已有的测试
  • 特性运行时间过长
  • 利益相关人不读我们写的特性

我敢保证这些症状是各个产品开发中的通病,不管用什么工具都会碰到。

比如第一个症状 -“个别测试随机失败”,他归结为问题:“闪烁的场景”,这在测试中是最常见的毛病。在一个不成熟的团队中,不太专业的测试人员会抱怨团队中的其他人:“我这边都是好的,就是其他人的问题。”。

这种情况追根溯源有很多,书中提到了三点:共享的环境、渗露的场景、竞争条件和打瞌睡的步骤。这些点在后续章节中又结合了具体的技术问题,前后呼应。

前三个症状看上去和 Cucumber 并没有直接关系的要点,也恰好是本书的亮点之一:他不断提醒您如果碰到这些常见问题,指导您如何用正确的方法来使用好 Cucumber 这个工具。也希望通过用实践经验引导您如何运用 Cucumber 写好您的测试用例,而不只是单纯的学习 Cucumber 的语法。

解决第四个症状是 Cucumber 的强项,也是本书的要点:Cucumber 不仅仅是自动化测试工具,它的测试用例更是利益相关人互相沟通的绝好载体,这里解释了如何写好测试用例来加强沟通,而不是沦为一个简单工具。

读这章时,建议您先想想自己会如何考虑和解决书中提到的问题,跟着作者一起思考。

第十二章测试 REST Web 服务

很多 Web 测试都是喜欢用 Selenium 来做页面调用,通常容易误入歧途:为了测试而测试。Cucumber 当然也可以和 Selenium 结合使用,但好的实践是对 Web 的接口进行测试。Web 测试这一章介绍的就是如何用 Cucumber 来测试 REST 接口的 Web 服务。

REST Web 服务结合 JSON 现在是很常见的了,这章就使用了一个小 Web 服务器来引导您如何做 Web 服务测试,是用 Ruby 的 Sinatra 演示的,由于它的语法非常简单,如果您熟悉其他的框架,也很方便替换。

Web 服务接口常用 JSON 来体现,这个在测试用例中往往会变得很技术化,作者在这章中特意花了些笔墨告诉我们如何在场景中避免出现 JSON 这样的技术术语,毕竟这些测试用例不仅仅是测试,它还是一个沟通的工具,作者特意强调了如何用文档的思维方式来写这些用例来确保可读性,这种方式贯彻在整本书中,不断提醒你用正确的方式写测试用例,当然这在 Cucumber 中叫特性,你会很快习惯的。

这个 Web 服务的小应用程序和测试例子随着问题的深入不断变复杂,用例子来说明问题是本书的另一亮点,通过跟着做练习不断强化理解。到最后会发现这就是您在实际过程中遇到的场景。

结束语

我愿意把这本书推荐给那些想了解如何处理需求和自动化测试的开发经理和开发者,如果还想了解行为驱动开发知识的话,还可以一起购买【实例化需求】辅助阅读,来加深理论方面的知识。

也推荐给那些已经熟悉了一些自动化测试的,正在寻求扩展的技能开发人员。

实际上对每个软件开发人员都会有点启示。

这么热的天,来根“黄瓜”解解渴。

Shared in Google


感谢张逸对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-10-04 08:303232

评论

发布
暂无评论
发现更多内容

智源十大行业高质量数据集开放申请,经验证可显著提升模型行业能力!

智源研究院

企业任务调度解决方案:Airflow vs TASKCTL深度剖析

敏捷调度TASKCTL

airflow ETL任务 任务调度 TASKCTL IT自动化运维

Mac海洋冒险游戏推荐:潜水员戴夫Dave The Diver 中文安装包

你的猪会飞吗

Mac游戏下载 Mac游戏推荐

一览 Anoma 上的有趣应用概念

TechubNews

Premiere Pro 2023 for Mac(pr2023) v23.6中文版

Mac相关知识分享

视频编辑软件

Radio Silence for mac(简单好用的防火墙) v3.2版

Mac相关知识分享

mac冒险游戏:死亡细胞Dead Cells for mac 下载

你的猪会飞吗

mac下载 mac单机游戏

半个月6次面试,终于进百度HR面了

王中阳Go

Go 百度 面试 面经

鸿蒙应用实践:利用扣子API开发起床文案生成器

幂简集成

AI API

AI 驱动的数据中心变革与前景

GPU算力

数智化配补调:零售品牌增长新引擎

第七在线

现代女性心理健康:数业智能心大陆解读应对策略

心大陆多智能体

人工智能 智能体 AI大模型 心理健康 数字心理

Spring的三种依赖注入的方式

不在线第一只蜗牛

Java spring 依赖注入

Navicat Premium Essentials for Mac(数据库管理软件)

Mac相关知识分享

数据库的连接、创建会话与模型

EquatorCoco

Python 数据库 sql

Llama-2 vs. Llama-3:利用微型基准测试(井字游戏)评估大模型

Baihai IDP

程序员 AI LLMs 大模型评估 企业号 7 月 PK 榜

TouchDesigner Pro for mac(可视化原型渲染设计) v2023.11760版

Mac相关知识分享

视觉编程软件

软件开发中用来记录跟踪bug最常用的11款工具

爱吃小舅的鱼

缺陷管理系统 bug管理 bug管理工具

快手开源 I2V-Adapter,即插即用、轻量级模块让静态图像秒变动态视频

快手技术

测试人生 | 手工转测试开发成功秘籍揭秘:从裁员到入职18k+,收获4个Offer,道阻且长不怯步

测吧(北京)科技有限公司

测试

如何有效提升 API 接口的安全性?

左诗右码

后端

油猴Safari浏览器插件:Tampermonkey for Mac 下载

你的猪会飞吗

mac软件下载 浏览器脚本插件

文献解读-基准与方法研究-第十五期|《不同 DNA 测序平台的标准化比较》

INSVAST

基因数据分析 生信服务 基准与方法研究

一图看懂华为云CodeArts API 7大特性,带你玩转一站式API

华为云开发者联盟

软件开发 API 华为云 华为云开发者联盟 企业号2024年7月PK榜

SPL-404:如何彻底改变Solana上的NFT与DeFi

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

软件测试学习笔记丨JUnit5动态测试的生命周期

测试人

软件测试

一文为你深度解析LLaMA2模型架构

华为云开发者联盟

人工智能 华为云 transformers 华为云开发者联盟 企业号2024年7月PK榜

火山引擎数据飞轮实践:在电商场景中,如何建设全链路数据血缘?

字节跳动数据平台

大数据 数据中台 数据治理 数据安全 数据研发

分享一次海量数据平滑迁移实战

京东零售技术

大数据 企业号2024年7月PK榜

堡垒机试用选哪家?可以试用多久?咨询电话多少?

行云管家

网络安全 堡垒机 堡垒机试用

原厂商是什么意思?云管平台原厂商有哪些企业?

行云管家

云计算 云管平台 原厂商

阅读者:"Cucumber行为驱动开发指南" 能带给我们什么_语言 & 开发_蔡煜_InfoQ精选文章