实例化需求:团队如何交付正确的软件

简介

本书面向开发人员、测试人员、分析师以及业务人员,指导他们共同构建优秀的软件产品。本书浓缩了世界众多先进团队的经验,囊括了各种可成功地在较短的迭代开发周期下制定出需求说明、进行测试并交付软件的方法,深度探索了确保实例化需求积极有效的7种模式。本书的案例分析涉及的对象既有小型互联网创业公司,也有大型的金融服务公司,书中介绍的方法适用于不同的软件过程,包括极限编程、Scrum以及看板。书中主要内容包括:常见的过程模式如何避免错误的实践在过程中引入实例化需求说明50多个案例分析成功的开发团队如何交付正确的软件?本书为你揭晓答案。

实例化需求:团队如何交付正确的软件

本书特色

“独一无二的、基于大量的业内研究提取出来的知识。” —— Mike Stockdale,Syterra软件公司“本书是我的挚爱,它教会我如何正确地做测试。” —— Craig Smith,Suncorp公司“本书将改变我们讨论和思考测试的方式。” —— David Evans,ThinkAlike咨询公司“本书是有关需求收集与维护的最好的图书。”—— Oleksandr Alesinskyy,NAVTEQ“基于众多团队的经验,它将让你的测试自动化事半功倍。” —— Rick Mugridge,Rimu研究公司

作译者介绍

Gojko Adzic战略软件交付顾问,专注于敏捷和精益开发,尤其擅长敏捷测试、实例化需求和行为驱动开发。Gojko经常在国际上重要的软件开发和测试会议上发言,并运营着英国的敏捷测试用户小组。最近这十多年来,他一直在财务和能源交易平台、移动定位、电子商务、在线游戏和复杂配置管理系统等行业项目中,从事程序员、架构师、技术指导和顾问等工作。除本书外,他还著有Bridging the Communication Gap、Test Driven.Net Development with FitNesse和The Secret Ninja Cucumber Scrolls等书。

目录

《实例化需求 : 团队如何交付正确的软件》

第一部分 ?开始

第1章 ?主要优点??2

1.1 ?更有效地实施变更??4

1.2 ?更高的产品质量??5

1.3 ?减少返工??8

1.4 ?更好的协作??10

1.5 ?铭记??11

第2章 ?关键过程模式??12

2.1 ?从目标中获取范围??13

2.2 ?协作制定需求说明??14

2.3 ?举例说明??14

2.4 ?提炼需求说明??15

2.5 ?自动化验证时不修改需求说明??15

2.6 ?频繁验证??17

2.7 ?演化出一个文档系统??17

2.8 ?实际的例子??18

2.8.1 ?商业目标??18

2.8.2 ?范围??18

2.8.3 ?关键实例??18

2.8.4 ?带实例的需求说明??19

2.8.5 ?可执行的需求说明??20

2.8.6 ?活文档??20

2.9 ?铭记??20

第3章 ?活文档??21

3.1 ?为什么我们需要权威的文档??22

3.2 ?测试可以是好文档??22

3.3 ?根据可执行的需求说明创建文档??23

3.4 ?以文档为中心的模型所具有的好处??25

3.5 ?铭记??25

第4章 ?开始改变??26

4.1 ?如何开始改变过程??27

4.1.1 ?把实施实例化需求说明当作更广阔的过程变更的一部分??27

4.1.2 ?专注于提高质量??27

4.1.3 ?从功能测试自动化开始??28

4.1.4 ?引入一个可执行需求说明的工具??29

4.1.5 ?使用测试驱动开发作为踏脚石??30

4.2 ?如何开始改变团队文化??31

4.2.1 ?避免使用“敏捷”术语??31

4.2.2 ?确保你得到管理层的支持??32

4.2.3 ?把实例化需求说明当作是比执行验收测试更好的方式来推销??33

4.2.4 ?不要让测试自动化成为最终的目标??34

4.2.5 ?不要太关注工具??34

4.2.6 ?在迁移过程中,遗留脚本也要有人维护??35

4.2.7 ?跟踪哪些人在运行(以及没有运行)测试自动检查程序??35

4.3 ?团队如何在流程和迭代中集成协作??36

4.3.1 ?ultimate软件公司的global

talent management团队??37

4.3.2 ?bnp paribas银行的sierra团队??38

4.3.3 ?天空网络服务部门??39

4.4 ?处理签收和可追溯性??40

4.4.1 ?在版本控制系统中保存可执行需求说明??41

4.4.2 ?通过导出的活文档来签收??41

4.4.3 ?签收的是范围,而非需求说明??41

4.4.4 ?在“精简的用例”上签收??42

4.4.5 ?引入用例实现??42

4.5 ?警告信号??43

4.5.1 ?注意频繁改动的测试??43

4.5.2 ?当心回退??44

4.5.3 ?注意组织级的失调??44

4.5.4 ?当心“以防万一”的代码??44

4.5.5 ?注意霰弹式修改??45

4.6 ?铭记??45

第二部分 ?关键过程模式

第5章 ?从目标中获取范围??48

5.1 ?构建正确的范围??49

5.1.1 ?理解“为什么”和“谁”??50

5.1.2 ?理解价值从何而来??51

5.1.3 ?了解商业用户预期的输出是什么??52

5.1.4 ?让开发人员提供用户故事的“我想要”部分??53

5.2 ?在没有高层次控制权的情况下,协作确定范围??53

5.2.1 ?询问“为什么这些东西有用?”??54

5.2.2 ?询问替代方案??54

5.2.3 ?不要只顾最低层次的需求??55

5.2.4 ?确保团队交付完整的功能??55

5.3 ?更多信息??56

5.4 ?铭记??56

第6章 ?通过协作制定需求说明??58

6.1 ?为什么需要协作制定需求说明??58

6.2 ?最热门的协作模型??59

6.2.1 ?尝试大型的全体工作坊??59

6.2.2 ?尝试小型工作坊(“神勇三剑客”)??61

6.2.3 ?结对编写??62

6.2.4 ?让开发人员在迭代开始前频繁地审查测试??63

6.2.5 ?尝试非正式交谈??64

6.3 ?准备协作??65

6.3.1 ?举办介绍会??65

6.3.2 ?邀请项目干系人??66

6.3.3 ?进行具体的准备工作并事先审查??67

6.3.4 ?让团队成员尽早审查故事??68

6.3.5 ?只准备初始的实例??69

6.3.6 ?不要让过度的准备阻碍了讨论??69

6.4 ?选择协作模型??70

6.5 ?铭记??71

第7章 ?举例说明??72

7.1 ?举例说明:一个例子??74

7.2 ?例子必须精确到位??75

7.2.1 ?不要在例子中出现“是/否”的回答??75

7.2.2 ?避免使用等价抽象类??75

7.3 ?例子必须完整??76

7.3.1 ?用数据作试验??76

7.3.2 ?使用替代方法来检验功能??76

7.4 ?例子必须要真实??77

7.4.1 ?避免虚构自己的数据??77

7.4.2 ?直接从客户那里获得基本的例子??78

7.5 ?例子应该易于理解??79

7.5.1 ?避免探讨所有可能的组合??80

7.5.2 ?寻找隐含的概念??80

7.6 ?描述非功能性需求??81

7.6.1 ?取得精确的性能需求??82

7.6.2 ?为ui使用低保真度的原型??82

7.6.3 ?试用quper模型??83

7.6.4 ?讨论时使用核查清单??84

7.6.5 ?建立一个参照的例子??84

7.7 ?铭记??85

第8章 ?提炼需求说明??86

8.1 ?一个好的需求说明的例子??87

8.1.1 ?免费送货服务??87

8.1.2 ?实例??87

8.2 ?一个劣质需求说明的例子??88

8.3 ?提炼需求说明时要关心什么??90

8.3.1 ?实例要精确可测??90

8.3.2 ?脚本不是需求说明??90

8.3.3 ?不要使用流程式的描述??91

8.3.4 ?需求说明应关注业务功能,而不是软件设计??92

8.3.5 ?避免编写与代码紧密耦合的需求说明??92

8.3.6 ?不要在需求说明中引入技术难点的临时解决方案??93

8.3.7 ?不要陷入到用户界面的细节里??93

8.3.8 ?需求说明应该是不言自明的??94

8.3.9 ?使用叙述性标题并使用短篇幅阐释目标??94

8.3.10 ?展示给别人看并保持沉默??94

8.3.11 ?不要过度定义实例??95

8.3.12 ?从简单的例子入手,然后逐步展开??96

8.3.13 ?需求说明要专注??97

8.3.14 ?在需求说明中使用“given-when-then”语言??97

8.3.15 ?不要在需求说明中明确建立

所有依赖??98

8.3.16 ?在自动化层中应用缺省值??99

8.3.17 ?不要总是依赖缺省值??99

8.3.18 ?需求说明应使用领域语言??100

8.4 ?提炼实战??100

8.5 ?铭记??102

第9章 ?自动化验证而不修改需求说明??103

9.1 ?非得自动化吗??104

9.2 ?从自动化开始??105

9.2.1 ?为了学习工具,先尝试一个简单的项目??105

9.2.2 ?事先计划自动化??106

9.2.3 ?不要拖延自动化工作或将其委派他人??107

9.2.4 ?避免根据原有的手动测试脚本进行自动化??107

9.2.5 ?通过用户界面测试赢得信任??108

9.3 ?管理自动化层??109

9.3.1 ?别把自动化代码当作二等公民??109

9.3.2 ?在自动化层里描述验证过程??110

9.3.3 ?不要在测试自动化层里复制业务逻辑??111

9.3.4 ?沿着系统边界自动化??112

9.3.5 ?不要通过用户界面检查业务逻辑??113

9.3.6 ?在应用程序的表皮之下进行自动化??113

9.4 ?对用户界面进行自动化??115

9.4.1 ?以更高层次的抽象来详细说明用户界面的功能??115

9.4.2 ?ui需求说明只检查ui功能??117

9.4.3 ?避免录制的ui测试??117

9.4.4 ?在数据库中建立环境??118

9.5 ?管理测试数据??119

9.5.1 ?避免使用预填充数据??119

9.5.2 ?尝试使用预填充的引用数据??120

9.5.3 ?从数据库获取原型??120

9.6 ?铭记??121

第10章 ?频繁验证??122

10.1 ?提高稳定性??123

10.1.1 ?找出最烦人的问题并将其解决掉,然后不停地重复??123

10.1.2 ?用ci测试历史找到不稳定的测试??124

10.1.3 ?搭建专用的持续验证环境??125

10.1.4 ?使用全自动部署??125

10.1.5 ?为外部系统创建较简单的测试替代品??125

10.1.6 ?选择性地隔离外部系统??126

10.1.7 ?尝试多级验证??127

10.1.8 ?在事务中执行测试??127

10.1.9 ?对引用数据做快速检查??128

10.1.10 ?等待事件,而非等待固定时长??128

10.1.11 ?将异步处理变成可选??129

10.1.12 ?不要用可执行需求说明做端到端的验证??129

10.2 ?获得更快的反馈??130

10.2.1 ?引入业务时间??130

10.2.2 ?将较长的测试分割成较小的模块??131

10.2.3 ?避免使用内存数据库做测试??131

10.2.4 ?把快速的和缓慢的测试分开??132

10.2.5 ?保持夜间测试的稳定??132

10.2.6 ?为当前迭代创建一个测试包??133

10.2.7 ?并行运行测试??133

10.2.8 ?禁用风险较低的测试??134

10.3 ?管理失败的测试??135

10.3.1 ?创建已知失败了的回归测试包??135

10.3.2 ?自动检查那些被禁用的测试??136

10.4 ?铭记??137

第11章 ?演化出文档系统??138

11.1 ?活文档必须易于理解??138

11.1.1 ?不要创建冗长拖沓的需求说明??138

11.1.2 ?不要使用许多小的需求说明来描述单个功能??139

11.1.3 ?寻找更高层次的概念??139

11.1.4 ?避免在测试中使用技术上的自动化概念??139

11.2 ?活文档必须前后一致??140

11.2.1 ?演化出一种语言??141

11.2.2 ?将需求说明语言拟人化??142

11.2.3 ?协作定义语言??143

11.2.4 ?将构建模块文档化??143

11.3 ?活文档必须组织得井井有条,便于访问??144

11.3.1 ?按用户故事组织当前的工作??144

11.3.2 ?按功能区域组织用户故事??145

11.3.3 ?按用户界面的导航路径组织??146

11.3.4 ?按业务流程来组织??146

11.3.5 ?引用可执行需求说明时请使用标签而不要使用url??147

11.4 ?聆听活文档??147

11.5 ?铭记??148

第三部分 ?案例研究

第12章 ?uswitch??152

12.1 ?开始改变流程??152

12.2 ?优化流程??154

12.3 ?当前的流程??156

12.4 ?结果??157

12.5 ?重要的经验教训??157

第13章 ?rainstor??159

13.1 ?改变流程??159

13.2 ?当前流程??161

13.3 ?重要的经验教训??162

第14章 ?爱荷华州助学贷款公司??163

14.1 ?改变流程??163

14.2 ?优化流程??164

14.3 ?活文档作为竞争优势??166

14.4 ?重要的经验教训??167

第15章 ?sabre airline solutions??168

15.1 ?改变流程??168

15.2 ?改善协作??169

15.3 ?结果??171

15.4 ?重要的经验教训??171

第16章 ?eplan services??172

16.1 ?改变流程??172

16.2 ?活文档??174

16.3 ?当前的流程??175

16.4 ?重要的经验教训??176

第17章 ?songkick??177

17.1 ?改变流程??177

17.2 ?当前的流程??179

17.3 ?重要的经验教训??180

第18章 ?思想总结??182

18.1 ?协作制定需求能在项目干系人与交付团队之间建立信任??182

18.2 ?协作需要事先准备??183

18.3 ?协作的方式多种多样??183

18.4 ?将最终目的视为业务流程文档,不失为一种有用的模型??184

18.5 ?活文档带来的长期价值??184

附录a ?资源??186

出版信息

实例化需求:团队如何交付正确的软件

系列书名图灵程序设计丛书

执行编辑关于本书的问题,请联系 傅志红

出版日期2012-09-10

书号978-7-115-29026-7

定价49

页数200

印刷方式黑白印刷

开本16开

出版状态暂时缺货

原书名Specification by Example: How Successful Teams Deliver the Right Software

原书号9781617290084

https://www.x9idc.com/news/12485.html

来源:电气网

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月18日
下一篇 2021年10月18日

相关推荐