[美] Gerald M·Weinberg《颠覆完美软件》

[美] Gerald M·Weinberg《颠覆完美软件》

作者:[美] Gerald M·Weinberg

出版社:电子工业出版社

出版年:2015-7

评分:7.6

ISBN:9787121258619

所属分类:网络科技

书刊介绍

内容简介

《颠覆完美软件:软件测试必须知道的几件事》是从事软件行业五十余年的Gerald M. Weinberg 针对软件测试所写的新作。他在软件项目的管理、设计、开发和测试方面都具有极其丰富的经验,尤其对软件开发人员的心理有深入的研究。在《颠覆完美软件:软件测试必须知道的几件事》中,他重点讨论了与软件测试有关的各种心理问题及其表现与应对方法。作者首先阐述软件测试之所以如此困难的原因——人的思维不是完美的,而软件测试的最终目的就是发现对改善软件产品和软件开发过程有益的信息,故软件测试是一个信息获取的过程。接着,作者利用丰富的经历和大量的实例,展现了在软件测试中可能出现的各种与人的心理有关的现象、误区、欺诈,以及容易犯下的常见错误等。《颠覆完美软件:软件测试必须知道的几件事》的重点不是告诉大家要做什么或者如何做,而更多的是让读者明白在与软件测试相关的活动中会出现某些特定现象的原因。理解这些与人的心理有关的现象有助于与软件开发有关的所有人之间更好地就软件测试的目的和实现过程进行沟通,从而实现具有更高品质的软件。

作品目录

1 进行测试的原因 1

1.1 人类不是完美的思考者 .......................................................................... 2

1.2 我们要做出有关软件的决定 .................................................................. 2

1.2.1 日记条目1 .................................................................................... 2

1.2.2 日记条目2 .................................................................................... 3

1.2.3 日记条目3 .................................................................................... 3

1.2.4 日记条目4 .................................................................................... 3

1.2.5 日记条目5 .................................................................................... 4

1.2.6 日记条目6 .................................................................................... 4

1.3 决定可能是有风险的 .............................................................................. 5

1.4 测试可以提供降低风险的信息 .............................................................. 6

1.5 小结 .......................................................................................................... 8

1.6 常见错误 .................................................................................................. 8

2 测试无法做的事 10

2.1 信息未必有助于降低风险 .................................................................... 11

2.2 也许我们不会使用那些花钱得到的信息 ............................................. 12

2.3 决定是感性的而不是理性的 ................................................................ 13

2.4 不良的测试也许比不测试更糟 ............................................................ 14

2.5 产品可能尚未准备好接受测试 ............................................................ 14

2.6 小结 ........................................................................................................ 15

2.7 常见错误 ................................................................................................ 15

3 不对所有可能性进行测试的原因 18

3.1 可能进行测试的数目是无限的 ............................................................ 19

3.2 测试最多只是采样 ................................................................................ 20

3.3 信息的成本可能超过无知的成本 ........................................................ 21

3.4 也许我们可以用较少的测试获取更多的信息 ..................................... 22

3.5 测试自助餐 ............................................................................................ 22

3.6 小结 ........................................................................................................ 23

3.7 常见错误 ................................................................................................ 23

4 测试和除错的区别 25

4.1 测试会随着机构的成长发生变化 ........................................................ 28

4.2 以时间限制试探法作为管理法则,但根据需要进行调整 .................... 30

4.3 小结 ........................................................................................................ 31

4.4 常见缺陷 ................................................................................................ 31

5 元测试 33

5.1 我们有说明书,但是找不到了 ............................................................ 34

5.2 我们的错误太多了,导致缺陷数据库无法高效运转 .......................... 35

5.3 我们没找到任何缺陷,实际上我们并没有真正地找 ......................... 35

5.4 我们修改记录让缺陷看起来没那么严重 ............................................. 36

5.5 这不是我的组件中的问题,所以我不记录 ......................................... 36

5.6 我不知道在测试错误的应用程序 ........................................................ 37

5.7 我们不测试最差的组件,因为花的时间太长 ..................................... 37

5.8 我们已经发现了这么多缺陷,不会再多了 ......................................... 38

5.9 我们的测试证明程序是正确的 ............................................................ 38

5.10 我们运行了很多测试用例,根本就看不过来 ................................... 38

5.11 如果我们的软件在有三名用户时工作良好,显然它在有一百名用户时也不会有问题 .......................................... 39

5.12 我们不希望测试人员知道我们将忽略他们提供的信息 ...................... 39

5.13 我没有报告缺陷,所以开发人员不会对我发脾气 ........................... 40

5.14 我们不需要测试它,因为开发人员非常有水平 ............................... 40

5.15 接着说元信息 ...................................................................................... 41

5.16 小结 ...................................................................................................... 41

5.17 常见错误 .............................................................................................. 41

6 信息免疫 44

6.1 我们在生存规则受到威胁时会感到害怕 ............................................. 45

6.2 我们压抑无法接受的事物 .................................................................... 46

6.3 我们让不可接受的事物合理化 ............................................................ 47

6.4 我们将自己的负面品质投射给其他人................................................. 48

6.5 我们转移指责从而免除自己的责任 .................................................... 49

6.6 我们对自己的不足进行过度补偿 ........................................................ 51

6.7 我们在觉得失去控制时开始强迫自己................................................. 51

6.8 小结 ........................................................................................................ 52

6.9 常见错误 ................................................................................................ 52

7 如何应对防卫反应 54

7.1 确定恐惧 ................................................................................................ 55

7.2 使用危机思维 ........................................................................................ 55

7.3 实践,实践,再实践 ............................................................................ 56

7.4 对自己进行测试 .................................................................................... 57

7.5 小结 ........................................................................................................ 58

7.6 常见错误 ................................................................................................ 58

8 良好测试的要素 59

8.1 永远无法确切地知道 ............................................................................ 59

8.2 只能根据事实来评估良好性 ................................................................ 61

8.3 你可能希望故意插入一些缺陷 ............................................................ 62

8.4 对良好性的估算总是统计性的 ............................................................ 62

8.5 可以对非差性进行估算 ........................................................................ 63

8.6 小结 ........................................................................................................ 64

8.7 常见错误 ................................................................................................ 64

9 有关测试的主要误区 66

9.1 指责误区 ................................................................................................ 66

9.2 穷举测试误区 ........................................................................................ 67

9.3 “测试产生质量”误区 .......................................................................... 68

9.4 分解误区 ................................................................................................ 69

9.5 合成误区 ................................................................................................ 70

9.6 “所有测试都相同”误区 ...................................................................... 71

9.7 “随便哪个笨蛋都可以测试”误区 ...................................................... 72

9.8 小结 ........................................................................................................ 73

9.9 常见错误 ................................................................................................ 73

10 测试不仅仅是敲键盘 75

10.1 毫无目的地敲击键盘是不是测试 ...................................................... 76

10.2 白手套测试 .......................................................................................... 77

10.3 狗食测试 .............................................................................................. 78

10.4 对测试人员也要进行测试 .................................................................. 80

10.5 可能在没有意识到的情况下进行测试 ............................................... 80

10.6 演示不是测试 ...................................................................................... 81

10.7 小结 ...................................................................................................... 82

10.8 常见错误 .............................................................................................. 82

11 信息摄取 84

11.1 使用萨提亚交互模型来解析沟通 ....................................................... 84

11.1.1 摄取(Intake) .......................................................................... 85

11.1.2 确定含义(Meaning) ............................................................. 85

11.1.3 确定重要性(Significance) .................................................... 86

11.1.4 做出反应(Response) ............................................................ 86

11.2 人们听取信息时是有选择性的 ........................................................... 87

11.3 数据来源会影响到摄取 ....................................................................... 87

11.4 时机也会导致差异 .............................................................................. 88

11.5 人们会出现信息过载........................................................................... 88

11.6 减少测试的数量也许可以传递更多的信息 ....................................... 89

11.7 寻找测试之外的信息摄取 ................................................................... 90

11.8 不要混淆理解和摄取........................................................................... 90

11.9 使用数据质疑来过滤理解 ................................................................... 91

11.10 小结 .................................................................................................... 91

11.11 常见错误 ............................................................................................. 91

12 确定含义 93

12.1 案例1:四个缺陷,五种含义 ........................................................... 94

12.2 案例2:四个缺陷,七种含义 ........................................................... 95

12.3 案例3:四个缺陷,自行确定含义 ................................................... 96

12.4 进行解释之前先弄清期望的是什么 .................................................. 96

12.5 不知道期望时的做法 .......................................................................... 98

12.6 使用已经获得的信息 .......................................................................... 98

12.7 使用间接信息 ...................................................................................... 99

12.8 使用未获得的信息 .............................................................................. 99

12.9 同样的话可能具有不同的含义 ........................................................ 100

12.10 “相同”可能并不一样 .................................................................... 101

12.11 某些时候不精确会更好 ................................................................... 101

12.12 小结 .................................................................................................. 102

12.13 常见错误 .......................................................................................... 102

13 确定重要性 104

13.1 不同人会给同样的信息赋予不同的重要性 ..................................... 105

13.2 公共的重要性也许和个人的不一样 ................................................ 106

13.3 重要性依赖于上下文环境 ................................................................ 107

13.4 不能总是根据金钱来确定重要性 .................................................... 108

13.5 不要采用过细的尺度 ........................................................................ 110

13.6 首先解决重要问题 ............................................................................ 110

13.7 听从自己的情绪反应 ......................................................................... 111

13.8 小结 .................................................................................................... 112

13.9 常见错误 ............................................................................................ 113

14 做出反应 115

14.1 是运气不好还是管理不善 ................................................................ 115

14.2 项目最后会赶进度的原因 ................................................................ 116

14.3 接近项目结束时应如何反应 ............................................................ 117

14.4 对测试所需时间的估算与现实差距很大的原因 ............................. 118

14.4.1 好天气估算 ............................................................................. 119

14.4.2 不切实际的过程模型 ............................................................. 119

14.4.3 低质的过程数据 ..................................................................... 119

14.4.4 没有过程数据 ......................................................................... 121

14.5 确定是否已经错过了可以有所改变的时刻 ..................................... 122

14.6 小结 .................................................................................................... 122

14.7 常见错误 ............................................................................................ 122

15 避免软件测试变得更困难 124

15.1 情况变得更糟的原因 ........................................................................ 124

15.2 让系统尽可能小 ................................................................................ 126

15.3 让“系统”模型是可扩展的 ............................................................ 126

15.4 增量构建有清晰接口的分立组件 .................................................... 127

15.5 减少进入产品的缺陷数目 ................................................................ 127

15.6 小结 .................................................................................................... 128

15.7 常见错误 ............................................................................................ 128

16 不使用机器进行测试 130

16.1 用机器进行测试总是不够的 ............................................................ 130

16.2 首先对最差的部分进行评审可以让人了解缺陷的严重性 ............. 135

16.3 事实并不总是能令人信服的 ............................................................ 136

16.4 测试人员是颇有价值的评审者 ........................................................ 136

16.5 小结 .................................................................................................... 137

16.6 常见错误 ............................................................................................ 137

17 测试欺诈 138

17.1 我们会卖给你一个神奇的工具 ........................................................ 138

17.2 我们的演示是欺诈 ............................................................................ 139

17.3 这么多的证明信表明它一定很好 .................................................... 141

17.4 我们可以通过定价来欺诈 ................................................................ 141

17.5 我们的工具会读心术 ........................................................................ 142

17.6 我们保证你不用做任何事 ................................................................ 144

17.7 我们一起密谋 .................................................................................... 144

17.8 避免欺诈的方法 ................................................................................ 145

17.9 小结 .................................................................................................... 145

17.10 常见错误 .......................................................................................... 145

18 忘却型欺诈 146

18.1 推迟文档化造成的后果 .................................................................... 146

18.2 不明确的测试报告就像流沙一样 .................................................... 147

18.3 伪造的测试报告阻止了改进 ............................................................ 147

18.4 在别的地方进行报复 ........................................................................ 148

18.5 早期的答案可能产生误导 ................................................................ 149

18.6 “量”不是“质”的同义词 .............................................................. 149

18.7 不要将非测试活动当作测试 ............................................................ 150

18.8 太整洁了,不可能是真的 ................................................................ 151

18.9 电子表格中的垃圾还是垃圾 ............................................................ 152

18.10 小结 .................................................................................................. 152

18.11 常见错误 .......................................................................................... 152

尾声 153

尾注 154

其他阅读材料 157

相关推荐

微信二维码