把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

六种方式改进行为驱动开发

  • 2015-08-06
  • 本文字数:1000 字

    阅读完需:约 3 分钟

行为驱动开发(BDD)的做法经常与常用的推荐做法相矛盾。在分享自己的经验以及同BDD 思想领袖进行讨论的过程中, Joe Colantonio 阐述了他注意到的六个常见问题以及如何进行改进。

保持BDD 实现独立。包含实现细节,如GUI 中的按钮,会使维护更加困难。应该重点关注用户做什么,而不是怎么做。一种实现方式是,在编写场景时,保持一种声明式风格而不是一种命令式风格。Colantonio 认为,团队在BDD 实现中包含实现细节的一个原因是,他们试图将BDD 当作一个自动化测试框架使用,而不是按照它的初衷当作协作工具。

自动化是额外收益,而不是BDD 的初衷。Colantonio 提到了 Seb Rose ,后者曾表示,同业务或客户那边的人协作失败就是一个将 BDD 工具当作自动化测试工具使用的反模式。2008 年, Aslak Hellesøy 创建了 BDD 工具 Cucumber 。他强调,Cucumber 首先是一个协作工具,旨在使所有的团队成员有一个共同的认识。Cucumber 特性应该在编码实现该特性之前编写。当使用BDD 编写示例时,回归测试是一个副产品,测试并不是活动本身。

一切均关乎对话。在Colantonio 看来,BDD 的优点在于,提供了一个避免错误假设和误解的机会,使人能够在编写代码之前发现潜在的Bug。虽然他认为,对于某些团队而言,专注于对话而不是写下需求可能会成为一个新的现实,但他同时指出,转而采用BDD 和敏捷的团队应该注意,不要将场景当作需求。

一个场景不是一项需求。它们有关系,但是,一个场景集合对应一项需求。Colantonio 发现,将一个场景视为一项需求会导致各种各样的问题,他倾向于在同产品经理讨论的过程中创建小型示例,比如, Gojko Adzic Specification by Example 上所描述的技术。

不要把什么都当作 UI 测试。场景是以用户的视角编写的,但 Colantonio 指出,这并不是说功能一定要通过 UI 进行测试,应用程序 UI 的内部测试组件又快又稳定。今年早些时候,Konstantin Kudryashov阐述了如何将BDD 同领域驱动设计(DDD)一起使用,减少面向UI 的场景的数量。首先检查工作域,只增加对UI 而言非常关键的场景。

实施Scrum 并不等于说实施敏捷。通过实施Scrum,团队常常会认为,他们自然而然地也在实施敏捷,但Colantonio 认为,这常常是不对的。在代码编写完成后编写单元测试,或者事后编写某种验收或集成测试,可能由一个单独的团队编写,在他看来,这些都表明团队没有采用一种敏捷方法。

查看英文原文: Six Ways of Improving Behaviour-Driven Development

2015-08-06 08:002710
用户头像

发布了 1008 篇内容, 共 445.1 次阅读, 收获喜欢 346 次。

关注

评论

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

出海方案全线升级!融云「爱嗨游」线上发布会定档

融云 RongCloud

互联网 全球化 融云 出海 GenAI

自动化模式下,企业全面预算管理的提升

智达方通

自动化 全面预算管理 预测分析

@Scope 注解失效了?咋回事

江南一点雨

Java spring

营销黑科技再升级:百度营销擎舵数字人4.0 带来哪些惊喜?

极客天地

基于 ACK Fluid 的混合云优化数据访问(四):将第三方存储目录挂载到 Kubernetes,提升效率和标准化

阿里巴巴云原生

阿里云 Kubernetes 容器 云原生 ACK

9月活动回顾(免费领取PPT)|火山引擎DataLeap、ByteHouse多位专家带来DataOps、实时计算等前沿技术分享!

字节跳动数据平台

数据库 大数据 火山引擎 DataLeap 企业号10月PK榜

天谋科技时序数据库 IoTDB 与 openEuler 操作系统完成兼容性互认证

Apache IoTDB

大咖汇聚,KaiwuDB 邀您共话 AI+ DB 发展新趋势

KaiwuDB

KaiwuDB AIDB

低代码平台技术分享官丨工作流应用场景之任务交接

inBuilder低代码平台

工作流 低代码

产品经理的API文档阅读指南

Noah

产品经理 API接口文档

FISCO BCOS | 构建第一个区块链应用程序

BSN研习社

区块链 FISCO BCOS 区块链开发

云起无垠参编中国信通院《软件供应链安全能力中心建设指南》正式发布

云起无垠

提升代码重用性:模板设计模式在实际项目中的应用

树上有只程序猿

模板模式

实现即时沟通与协作的全功能IM即时通讯系统

BeeWorks

GLB/GLTF在线纹理编辑

3D建模设计

GLTF glb 材质 纹理 贴图

白皮书商业计划书编写 了解白皮书在区块链稳定币开发中的作用

区块链软件开发推广运营

数字藏品开发 dapp开发 区块链开发 链游开发 NFT开发

循环数组,一个可以释放无锁队列的力量

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟

【论文解读】人工智能时代的科学发现

合合技术团队

人工智能 数据 科学

AI & Web3 盛会「EDGE」在港闭幕,融云国际影响力持续提升

融云 RongCloud

AI 技术 edge 峰会 web3

WorkPlus安全专属的企业IM助力政企高效协作

BeeWorks

深度学习之目标定位

矩视智能

机器视觉 深度学习、

Redis魔法:点燃分布式锁的奇妙实现

互联网工科生

分布式锁 redis 底层原理

CogVLM:智谱AI 新一代多模态大模型

极客天地

软件测试/测试开发/校招推荐 |中科创达软件股份有限公司岗位开放

测试人

程序员 软件测试 招聘 测试开发 内推

再创新高!深开鸿OpenHarmony社区代码贡献量超过200万行!

极客天地

DApp钱包OP链智能合约质押挖矿系统开发源码丨案例丨演示

l8l259l3365

软件测试/测试开发丨基于人工智能的代码分析与 Bug 检测实战

测试人

人工智能 程序员 软件测试 自动化测试 测试开发

六种方式改进行为驱动开发_研发效能_Jan Stenberg_InfoQ精选文章