写点什么

测试驱动开发?还是测试驱动需求?

  • 2007-11-21
  • 本文字数:753 字

    阅读完需:约 2 分钟

从哪开始练习测试驱动开发?和需求一起,还是设计?或者是另一种方式,自顶向下或向底向上?当你不用代码写第一个测试时,这个测试应该怎么表现出来呢?在敏捷社区中,这两种方法都被实践过,但在如何提供更大的价值这一点上没有达成一致。

Kinderman 和一些 rails 开发者交谈中,问他们使用什么样的方法,是自底向上的 TDD 呢,还是自顶向下的 TDD ?他期望每个人都从自顶向下——也就是说,从需求开始,为需求写测试,然后构建一个系统来满足且仅满足这些需求(这也就是行为驱动开发(BDD))。但令他惊讶的是,他发现几乎所有人都采用从底向上的方式。

“自底向上”这种方式存在的问题是:直到实现了调用者(clients)后,才知道这个调用者真正需要什么组件。而为了实现这些调用者,开发人员还要想这些使用者是如何被它们的调用者所使用的。这使我们会一直追溯到设计的顶点!真希望开发者深思熟虑以后,他们能写出一套完整的测试,来测试那个能够直接解决调用者需求的组件。但是,根据我的经验,这是非常罕见的。事实上,对于它的调用者来说,这些低层组件实现的功能很难用,要么太多,要么太少,要么太笨拙,要么太复杂。

正如 Ryan 所述,这似乎是要么都做,要么都不做。可是,另外一些人写功能测试(或自动化验收测试)也有很长时间了,而且是先写测试。这种方式有时被叫作故事驱动开发测试驱动需求(TDR), 或行为驱动开发(BDD)。那些使用测试驱动开发(有自底向上的,也有自顶向下的)来实践这种方式的人发现,这样不仅提高质量,而且有助于在客户、开发人员和测试人员之间建立社会性文化。
那么,你怎么做 TDD 呢?你用自顶向下方式,还是自底向上?你的团队用 TDR 吗?你用哪种方式呢?还是两种都用?最重要的一点,你这么做的目标是什么?

查看英文原文: Test Driven Development or Test Driven Requirements?

2007-11-21 00:351421
用户头像

发布了 100 篇内容, 共 21.9 次阅读, 收获喜欢 5 次。

关注

评论

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

文盘Rust -- 用Tokio实现简易任务池

TiDB 社区干货传送门

开发语言

基于OCR进行Bert独立语义纠错实践

华为云开发者联盟

人工智能 华为云 OCR 华为云开发者联盟 企业号 4 月 PK 榜

团队RONG合三状态,您的团队是哪一种?

禅道项目管理

果然!GitHub上哄抢的500页微服务前后端分离开发手册,是出自Alibaba

做梦都在改BUG

Java 微服务 Spring Boot Vue 前后端分离

阿里大佬倾情力荐:Java全线成长宝典,从P5到P8一应俱全

三十而立

Java java面试

企业数字化升级迫在眉睫,瓴羊Quick BI工具应运而生

夏日星河

堡垒机厂商都是大企业吗?你比较推荐哪家?

行云管家

网络安全 等级保护

HummerRisk 使用教程:操作审计

HummerCloud

云安全

“阿里味”的「Redis核心实践全彩手册」给你,还学不会就转行吧

做梦都在改BUG

Java 数据库 redis 缓存 面试

高频面试:如何解决MySQL主从复制延时问题

做梦都在改BUG

Java MySQL 面试 主从复制

互联网大厂2700道Java高频面试题(2023年最新版)不管你工作几年,都可以看看

架构师之道

Java 编程

ByteBase是什么,他怎么和tidb结合提高工作效率的

TiDB 社区干货传送门

实践案例

瓴羊Quick BI国产数字化智能工具口碑怎么样?30天免费试用

小偏执o

MySQL架构与SQL执行流程

做梦都在改BUG

Java MySQL 数据库 SQL执行流程

Flink MongoDB CDC 在 XTransfer 的生产实践|Flink CDC 专题

Apache Flink

大数据 flink 实时计算

牛客网2023Java最新面试宝典(附答案解析)正式开源

采菊东篱下

编程 java面试

从零学习SDK(3)如何安装和配置SDK

MobTech袤博科技

“信创”滚滚而来,私有化或将迎来第二春

WorkPlus

TiCDC 源码阅读(六)TiCDC Puller 模块介绍

TiDB 社区干货传送门

GitHub已开源—在国内外都被称为分布式理论+实践的巅峰之作

做梦都在改BUG

Java 数据库 分布式 系统设计 设计数据密集型应用

开源即时通讯IM框架MobileIMSDK的微信小程序端开发快速入门

JackJiang

tiup cluster display 执行流程代码详解

TiDB 社区干货传送门

实践案例 集群管理 故障排查/诊断 安装 & 部署

瓴羊Quick BI连续入选魔力象限ABI报告,实至名归

流量猫猫头

堡垒机主流品牌有哪些?如何选择?

行云管家

堡垒机 IT运维

TiDB损坏多副本之有损恢复处理方法

TiDB 社区干货传送门

集群管理 6.x 实践 TiKV 底层架构

TiCDC 源码阅读(五)TiCDC 对 DDL 的处理和 Filter 解析

TiDB 社区干货传送门

Stable Diffusion:一种新型的深度学习AIGC模型

GPU算力

知行合一!AI大模型与算法二三事

深数

深度学习 科普 数字化 NLP 大模型 LLM

API First 再先一步,OpenAPI 定义被 openAI 定为 ChatGPT 插件标准

Apifox

人工智能 OpenAPI openai 开放api ChatGPT

值得一看!阿里内部“M9”级别全彩版分布式实战笔记

做梦都在改BUG

Java 架构 分布式 分布式事务 微服务

TiCDC 源码阅读(七) TiCDC Sorter 模块揭秘

TiDB 社区干货传送门

测试驱动开发?还是测试驱动需求?_研发效能_Amr Elssamadisy_InfoQ精选文章