颠覆完美软件

颠覆完美软件 pdf epub mobi txt 电子书 下载 2026

出版者:电子工业出版社
作者:[美] Gerald M·Weinberg
出品人:
页数:176
译者:宋锐
出版时间:2015-7
价格:49.00元
装帧:平装
isbn号码:9787121258619
丛书系列:温伯格技术思想三部曲
图书标签:
  • 软件测试
  • 计算机
  • 温伯格
  • 软件工程
  • 管理
  • 心理
  • 软件开发
  • 技术
  • 软件工程
  • 敏捷开发
  • DevOps
  • 软件质量
  • 测试
  • 需求分析
  • 架构设计
  • 项目管理
  • 持续交付
  • 用户体验
想要找书就要到 小美书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《颠覆完美软件:软件测试必须知道的几件事》是从事软件行业五十余年的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
· · · · · · (收起)

读后感

评分

第一次从测试角度看软件开发,以前很多误解得到澄清。比如动不动让测试全部覆盖测试,让测试重现问题。测试如果面对的是一个黑盒,如何高质量测试呢?关键的是信息摄取,评估影响,作出对应措施。这才是真正解决之道。这本书对开发,对测试,对管理者都很有意义。

评分

第一次从测试角度看软件开发,以前很多误解得到澄清。比如动不动让测试全部覆盖测试,让测试重现问题。测试如果面对的是一个黑盒,如何高质量测试呢?关键的是信息摄取,评估影响,作出对应措施。这才是真正解决之道。这本书对开发,对测试,对管理者都很有意义。

评分

第一次从测试角度看软件开发,以前很多误解得到澄清。比如动不动让测试全部覆盖测试,让测试重现问题。测试如果面对的是一个黑盒,如何高质量测试呢?关键的是信息摄取,评估影响,作出对应措施。这才是真正解决之道。这本书对开发,对测试,对管理者都很有意义。

评分

第一次从测试角度看软件开发,以前很多误解得到澄清。比如动不动让测试全部覆盖测试,让测试重现问题。测试如果面对的是一个黑盒,如何高质量测试呢?关键的是信息摄取,评估影响,作出对应措施。这才是真正解决之道。这本书对开发,对测试,对管理者都很有意义。

评分

第一次从测试角度看软件开发,以前很多误解得到澄清。比如动不动让测试全部覆盖测试,让测试重现问题。测试如果面对的是一个黑盒,如何高质量测试呢?关键的是信息摄取,评估影响,作出对应措施。这才是真正解决之道。这本书对开发,对测试,对管理者都很有意义。

用户评价

评分

如果要用一个词来形容阅读这本书的整体感受,那大概是“回味悠长”了。它不是那种读完就扔的快餐读物,而是会像一首老歌,时不时地在你脑海中响起,提醒你曾经有那样一段深刻的共鸣。这本书的意境是极其开阔的,它似乎在探讨一些宏大的、关乎存在意义的命题,但处理得非常含蓄和优雅,从不卖弄哲学。它通过讲述小人物的命运,折射出时代的洪流和人生的无常。每一次重读,我都能发现一些之前被我忽略的象征意义和隐喻,仿佛作者在故事的字里行间,精心布置了一张张等待被发现的文化网。这种丰富的解读层次,赋予了这本书极高的二次阅读价值。它给予读者的不仅仅是一个故事,更像是一种看待世界的新视角,一种思考问题的工具。这本书真正做到了艺术与思想的完美结合,安静地在那里,却蕴含着改变读者内在视角的强大能量。

评分

我必须承认,初读这本书时,我对其世界观的宏大和设定的复杂程度感到一丝敬畏,甚至有些不知所措。作者构建的这个虚拟(或者说类真实)的体系,其内部逻辑之严密,让人不得不佩服其超凡的想象力和严谨的逻辑推演能力。书中对于各种概念、规则以及社会结构的阐述,并非生硬地灌输给读者,而是巧妙地融入到角色的行动和对话之中,让读者在不知不觉中完成了知识体系的建构。这种沉浸式的学习体验,远比教科书式的讲解来得有效得多。特别是当书中那些看似毫不相关的线索,在后半段交汇融合时,那种“啊哈!”的顿悟时刻,简直让人兴奋到拍案叫绝。它要求读者保持高度的专注力,任何一个细节的疏忽都可能导致对整体脉络理解的偏差。这本书更像是一套精心设计的解谜游戏,每一次成功解开一个谜团,都伴随着对作者智慧的由衷赞叹。对于热爱深度思考和世界观构建的硬核读者来说,这无疑是一场智力上的盛宴。

评分

这本书的文风简直是一股清流,它那种克制而又充满力量的语言风格,在当今浮躁的文坛中实属难得。作者似乎对每一个词语的选择都经过了千锤百炼,用最少的文字,描绘出最丰富、最深刻的意境。我尤其欣赏那些场景描写的段落,它们不像有些作品那样堆砌辞藻,而是精准地抓住了事物的本质特征,寥寥数笔,画面感便油然而生,甚至连空气中弥漫的气味、光线的冷暖都能被读者清晰地感知到。这种“少即是多”的写作哲学,在保持叙事效率的同时,极大地提升了作品的艺术格调。阅读过程中,我常常会停下来,默默回味某一个句子,感叹于其凝练和精准。它不追求华丽的辞藻堆砌,而是追求内在的韵律和力量感,读起来让人感到一种沉静的力量。对于那些追求文字质感的读者来说,这本书绝对是一本值得反复品读的范本。它不轰轰烈烈,却后劲十足,每一次重读,似乎都能从中汲取出新的体会和感悟,这大概就是优秀文学作品的标志吧。

评分

这本书的人物塑造简直是教科书级别的,立体到让人感觉他们真实存在于我们身边,甚至在阅读结束后,我偶尔还会想起他们,想象他们此刻正在做什么。作者没有将人物简单地标签化,没有绝对的善恶分明,每个人物都带着他们成长的烙印和内心的矛盾,他们的选择,无论对错,都有其合理的内在驱动力。我特别喜欢作者对“灰色地带”的探索,那些站在道德边缘摇摆的角色,他们的挣扎与挣扎后的抉择,比任何激烈的外部冲突都更具感染力。例如,某个配角的出现,起初让人深恶痛绝,但随着故事的推进,你开始理解他行为背后的无奈和悲凉,最终对他产生一种复杂的同情,甚至在某种程度上认同他的逻辑。这种细腻的、多维度的心理刻画,让整个故事的深度远超一般娱乐小说。它探讨的不是英雄主义,而是人性在特定环境下的复杂性与局限性,引人深思,让人在合上书本后,还能继续与书中的“人”进行对话。

评分

这本书的叙事节奏把握得简直出神入化,故事的起承转合如同精密的机械运转,每一个齿轮都在恰当的时机咬合,推动着情节向前疾驰。我简直像被一只无形的手拽着,不由自主地沉浸在作者构建的那个光怪陆离的世界里。尤其是一些关键转折点的处理,那种铺垫的细腻程度,让人在恍然大悟的同时,又不得不佩服作者深不可测的布局能力。我记得有那么一章,主角正处于一个看似无解的困境,空气仿佛凝固了,我几乎能感受到他额头上渗出的冷汗,但就在我以为一切都无可挽回时,作者笔锋一转,揭示了一个之前埋藏极深的伏笔,那种豁然开朗的感觉,带来的阅读快感是无与伦比的。它不像那些平铺直叙的小说,读起来像是在走一条笔直的马路,这本书更像是在迷宫里探险,每走一步都充满了惊喜与未知的张力。作者对人物心理的刻画也极其到位,那些复杂的情感纠葛,那些细微的犹豫和挣扎,都跃然纸上,让人深信不疑,仿佛他们就是我身边的朋友或敌人。这种高超的叙事技巧,让阅读过程本身变成了一种享受,一种智力上的挑战与满足。我强烈推荐给所有喜欢精巧结构和意想不到反转的读者。

评分

放在很多年前,这本书讲的内容还是非常有意义的,哪怕到现在很多故事一样上演着,但是软件测试已经不像以前那样不为人所理解了。有句话说得好,屁股决定脑袋,所以无论是过去还是现在,哪怕是将来,对于软件测试的偏见和误区都不会少。

评分

篇幅不大,没有很细枝末节的技术理论讲解。最有价值的是用实例和分析来对测试,软件,开发,管理进行分析和如何处理其中谬误。值得开发、测试、管理人员反复研读。

评分

看最后一节常见错误就行了,前面的有点啰嗦,翻译的也不好。这些都是作者经验之谈,不少有借鉴意义。但是深度不够。

评分

看最后一节常见错误就行了,前面的有点啰嗦,翻译的也不好。这些都是作者经验之谈,不少有借鉴意义。但是深度不够。

评分

放在很多年前,这本书讲的内容还是非常有意义的,哪怕到现在很多故事一样上演着,但是软件测试已经不像以前那样不为人所理解了。有句话说得好,屁股决定脑袋,所以无论是过去还是现在,哪怕是将来,对于软件测试的偏见和误区都不会少。

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.quotespace.org All Rights Reserved. 小美书屋 版权所有