天天看点

《验收测试驱动开发:ATDD实例详解》—第1章1.1节代客泊车

本节书摘来自异步社区《验收测试驱动开发:atdd实例详解》一书中的第1章1.1节代客泊车,作者【德】markus gärtner,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第一部分 机场停车场

验收测试驱动开发:atdd实例详解

在这一部分,我们来看一个在线应用。通过gui(图形用户界面)对网页进行自动化测试是当前比较成熟的技术之一,不过这种方法也有缺点。然而无论怎样,大多数从事在线应用开发的团队都能从这本书中找到一些如何驱动其测试的线索。

我们要做的是一个国际机场的停车费计算器。这个国际机场中有几种不同的停车场,而且停车费用随停车时长的不同也有所不同。

停车费计算器的业务规则太复杂,以至于无论团队怎样努力,最终可能也无法完成这个在线应用。团队成员觉得他们以前得到的需求是错的,所以这次他们决定用不同的方式,他们要和用户一起在“需求讨论会”里讨论这个应用。测试人员、开发人员和客户坐在一起讨论能描述停车费计算器业务规则的各种实例(example)。

与编程活动同时进行的是,测试人员使用ruby、cucumber配合selenium将这些实例自动化。在某些时刻他可能需要开发人员的帮助,在介绍里我们就不详述了。

你想知道测试人员tony用什么工具编辑cucumber的测试用例吗?当然是emacs,不是vi。1

1使用emacs的unix开发人员往往觉得使用vi的开发人员守旧。——译者注

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

第1章 停车费计算器讨论会

不久前,major国际航空公司决定扩展其在互联网上的服务。具体而言,他们想让自己的网站为潜在旅客提供预先计算停车费的功能。旅客只要通过提交一个在线表单,系统就可以按其停车时长来计算停车费用。

以前major国际航空公司做过这样一个表单,但旅客的反馈非常差。所以管理团队决定再重新做一个。

总结前面项目失败的经验教训,项目团队(包括资深开发人员phyllis、开发人员alex和测试人员tony)决定采取一种新的方式。

上次做的时候,项目需求从头到尾一直在变,导致代码也是一个补丁接着一个补丁,最后发现一开始实现的东西就是错的。他们不想再重复这个过程。所以,这次团队要采用“需求讨论会”的方式来更好地收集停车费计算器的业务规则。为此,phyllis和tony特别邀请了major国际航空公司停车场管理部门的经理bill参加讨论会,bill是停车费用的业务专家。

1.1 代客泊车

phyllis: 好吧,那我们讨论一下停车费计算器的需求。bill,你能讲一下吗?

bill: 我们基本上有3种不同的停车位。有些是按小时计费,有些按天计费,有些设有每日或每周的收费上限。

phyllis: 这3种不同的停车位具体指什么?它们有名字吗?

bill: 代客泊车、临时停车位和常规车位。如果丢失小票,会被加收10块钱。

phyllis: 让我们集中看这3种类型。它们的区别是什么?

bill: 对于代客泊车,客人把车放在代客泊车区,得到一张取车的凭据。

phyllis: 能讲一下停车费用吗?

bill: 代客泊车每天18美元,5小时以内(含5小时)优惠6美元。

phyllis: 等一下,bill。你的意思是即使30分钟我也要交12块钱,3个小时也是一样,5小时也是?但如果是5小时零1分钟,我就不得不交18美元,和12小时或24小时一样?

bill: 是的,完全正确。

phyllis: 那24小时零1分钟呢?是30美元还是36美元?

bill: 哦,那当然是36美元了。

phyllis: 那每周上限呢?代客泊车有吗?

bill: 没有,这基本就是代客泊车的全部了。

tony: 好,那让我把它们写下来作为实例。

tony把讨论的实例记在表1-1中 ,标记为“代客泊车”。

《验收测试驱动开发:ATDD实例详解》—第1章1.1节代客泊车

phyllis: 这些实例对“代客泊车”有意义吗?

bill: 是的,这些实例概括了我们的谈话的内容。