【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

阅读者:"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:302886

评论

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

基于香橙派AIpro将开源框架模型转换为昇腾模型

华为云开发者联盟

华为云 昇腾 华为云开发者联盟 企业号2024年4月PK榜 香橙派AIpro

HTML API 设计指南:打造高效、可维护的接口

Apifox

JavaScript html 程序员 前端 HTML API

火山引擎 VeDI:剪映产品如何应用A/B测试验证新功能效果

字节跳动数据平台

大数据 A/B测试 企业号 4 月 PK 榜 对比试验 数字化增长

✅实现百万级数据从Excel导入到数据库的方式

派大星

数据导入 Java 面试题 互联网大厂面试 百万数据

实况窗助力美团打造鸿蒙原生外卖新体验,用户可实时掌握外卖进展

HarmonyOS开发者

HarmonyOS

AE红巨星特效插件包 Red Giant Universe for Macv2024.2.0激活版

影影绰绰一往直前

华大北斗芯片再登纽伦堡国际嵌入式展EW2024

江湖老铁

Linux:工具(vim,gcc/g++,make/Makefile,yum,git,gdb)

百度搜索:蓝易云

哔哩哔哩游戏宣布《碧蓝航线》将启动鸿蒙原生应用开发

最新动态

“AI虚拟数字人+线下大屏互动”升级智能人机交互服务!

青否数字人

数字人

AI数字人克隆人直播源码独立部署的应用!

青否数字人

数字人

从人力外包到测试工具与平台:打造完整的测试解决方案

霍格沃兹测试开发学社

新质生产力与智能制造:推动制造业转型升级的双引擎

天津汇柏科技有限公司

智能制造 新质生产力

LigaAI x 极狐GitLab,共探 AI 时代研发提效新范式

LigaAI

人工智能 DevOps 极狐GitLab LigaAI 研发效能管理

OpenHarmony 4.1 Release版本正式发布,邀您体验

OpenHarmony开发者

Open Harmony

避免封禁困扰:青否数字人直播防封专业版来了!

青否数字人

数字人

前端代码规范 - 图片相关

南城FE

前端 代码规范 图片优化

Topaz Gigapixel AI for Mac(照片放大工具)v7.1.0激活版

影影绰绰一往直前

“大模型驱动的软件研发” 华为云助推企业研发智能化升级

华为云开发者联盟

人工智能 华为云 大模型 华为云开发者联盟 企业号2024年4月PK榜

利用Python实现数据可视化

技术冰糖葫芦

API Explorer API boy api 货币化

BOE(京东方)2024年一季度净利润预计8亿元-10亿元,三位数增长叩响高质量发展“开门红”

科技热闻

实用技巧:排查数据异常/数据波动问题,该如何下手?

feng

大数据 分布式 后端

写给职场新人|从迷茫到屡获殊荣的技术人成长之路

京东零售技术

人工智能 架构 后端 技术成长 企业号 4 月 PK 榜

wininet,winhttp,xmlhttprequest,各版本区别

百度搜索:蓝易云

Ubuntu下安装nginx服务,实现通过URL读取ubuntu下图片

百度搜索:蓝易云

20个Python 正则表达式应用与技巧

华为云开发者联盟

Python 开发 华为云 华为云开发者联盟 企业号2024年4月PK榜

程序员精选常用ChatGPT提示词合集

蓉蓉

openai ChatGPT GPT-4

百度官方!打造「大模型全开发周期系列课程」,AI应用开发入门课率先发布!(内含英雄帖)

飞桨PaddlePaddle

百度 开发者 BAIDU 百度飞桨 飞桨星河社区

DCDN连接云和用户:加速企业全球拓展之旅

EdgeMaster

阿里云 CDN

碳视野 | 今后五年国家重点支持三类双碳项目!

AMT企源

数字化转型 双碳 碳管理

NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解

汀丶人工智能

自然语言处理 大语言模型 NL2SQL

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