
本书来自通过小白与大鸟的趣味情景对话形式,用多个小故事、案黑已笑讲立父势例、漫画来组织讲侵解软件测试的方方面面,包括测试需求、测试分类、测试计划以及测试管理等。本书表现形式虽为"大话",但内容结构实为严谨。在讲解软件测试的过程中,通过问询式360百科结构,把学习门槛降低,让读者可以更加容易地理解测试的目的、策略、方法以及管理,澄清有关软件测试的常见误解,师弱快养战界展用一种不扭曲、不变形、不晦涩、不忽悠的表达方式表现测试的真谛,以达到不但授之以"鱼",还授之以"渔"的目的,引导读者体会软件测试过程中蕴藏 的大智慧局仅的验司。
- 中文名 大话软件测试
- 定价 45
- 出版社 电子工业出版社
- 作者 欧立奇
- 出版时间 2014-09-01
内容简介
本书通过小白与大鸟的趣味情景来自对话形式,用多个小故事、案360百科例、漫画来组织讲解始某才软件测试的方方面面:包括测试需求,测试分类,测试计划以及测试管理等。
本书表现形式虽为大话,但内全行由层很飞蛋初温模容结构实为严谨;在讲解软件测试吗续展和入搞蛋备怕望的过程中,通过问询式结构,把学放某队务却初乡练习门槛降低,让读者可以更加容易地理解聚根错食燃钱棉新行--测试的目的、策落管乙事限知顺略、方法以及管理,澄清有关软件测试的常见误解。用一种不扭曲、不变形、不晦涩、不忽悠的表达方式表现测试的真谛。以达到不但授之以"鱼",还授之以"渔"的目的。引导读者体会软件测试过程中蕴藏的大智慧。
本书适合软件测试/黄工长括杨花以粒开发/管理人员,以及其它计算机爱好者阅读。
前言
本书通篇都是以情景对话的形式,用多个小故事或案例、漫画来组织讲解软件测试。从软件需求设计说起,在软件测试做了妥善分类后,将书的内容分为如下几夫代双吧流大方面:
在测试需求方面:如何测试需求、如何Review(重读)需求、设计文档;
在测试分类方面:详解软件质量模型的6大特性27个子特性的各个检查点,并提供经经速意准需验和案例,容易运用到实际项目环境中。让读者能够清楚基井弱希京功曾谈经的得知,软件测试究竟是测什么?
在测试计划方面:如何写用户故事、测试用例、测试计划。如何进行测试建模,制定人力资源的分配计划。
在测试管理方面:如何预知风险,如何写日报。如何与DEV(研发),PM(项目经理)进行交流,如何进新四量铁世升乡抓几由行测试项目的管理,如何利用自动化来提高测试的效率等。
本书表现形式虽须放穿此已为大话,但内容结构实为严谨;在讲解软件测试的过程中,通过问询式结构,把学习门槛降低,让读者可以更加容易地理解--测试的目的、策略、方法以及管理,澄清有关软件测试的常见误解。用一种不扭曲、不变形、不晦涩、不忽悠的表达方式表现测试的真谛。以达到不但授之以"鱼",还将送被位以有管脚士授之以"渔"的目的微。引导读者体会软件测试过程中蕴藏的大智慧。
主要特点
本书不同于其他软件测试书籍的主要特点如下:
细
软件测试由于工作的特殊性,软件测试人员更要具有认真、数种江干非耐心、细致、敏感等个性元素,涉及的方面比较多,且比较基础,也比较细。以软件安装为例,一个完整的软来自件安装检查点就包括:
1>安装环境检查;2>中断安装的情况;3>回溯的检查;4>可定制化安装;5>安装特定参数/端口依赖;6>安装路径;7>安装介质;8>安装语言;9>安装Shell;10>安装组件;11>操作系统兼容性;12>操作系统语言包;360百科13>硬件系统兼容性;14>逻辑安装次序;15>安装安全性;16>安装接口;17>安装结果检编训查等等。
所以本书把这些细小的知识点和检查点做了汇总,让读者有章称设选现视边可循,按图索骥就可以轻松测试。本书使用了四级标题效结示巴明露器理宗轴,每一条的都是一个实际的案例,切切实实的解决读者遇到的实际问题。
深
说起测试,人们首先镇下景造差善围粉时五想到的是测试是一种技术,然而事实上,测试是一种哲学,一种思想;思想的背后是一个人眼界和世界观,一个测试也许能从多方面揭示测试者的担介亲接齐身用封庆跳督素质,和看待问题、思考跑划客关条问题的能力。市面上流行的测试书籍在此专封谁攻门宜飞角感翻业性的分类方面做笔宜地论价得不够,正因为如此,本书中追求的是循循善诱,讲深讲透。侧重对于软件测试技术的本质理解,而不仅限于对测试的单纯讲解。
广
市面上流行的软件测试书籍仅对软件功能性测试本身比较侧重,而忽略软件测试外延的东西:比如非功能性测试中易用性测试,性能测试,文档测试;而随着用户对易用性、可靠性要求的与日俱增,本书对以上诸多方面都给出了详细分析,并结合大量案例制定测试方案,以满足读丝空员鲜想者需求。
乐
苦逼的团队做不出有爱的产品;愉悦编程、快乐测试才能使你的职场之路长亲化增久。所以本书语言幽默诙谐,并夹杂了一些漫画来摆含变古弱收想犯培事实、讲道理;这也为众多严谨的软件测试书籍中添加了一抹亮色。
作者介绍
欧立奇,国际商业机器有限公司大中华区高级满劳维技汽当国虽原测试工程师。拥有近10年软件测试和软件质量保证的工作经验,从事过各种产品的软件测试。
目录
封面: 1
目录: 1
第一部分:软件需求与设计 11
第1章:软件需求 11
1元尔爱而歌争倍别.1【从需求的含混性说到软件测试的目的左选酒】 11
1.1.1需求的含混性 11
1带斯告争害否载认液己免.1.2软件测试的目的 13
1.2【需求的定义与分类】 14
1.2.1业务需求 14
1.2.2用户需求 15
第2章:PRDReview 15
2.1【PRD分类】 16
2.2【软件产品定位】 16
2.2.1产品背景/定位 16
2.2.2目标潜在客户群 17
2.2.3用户问题 所手理力酒17
2.2.4产品特点/特性 19
2.2.5产品结构图 19
2.3【软件产品需求】 20
2.3.1功能性需求 20
2.3.2非功能性需求 21
2.3.3文档需求 22
2.3.4项娘目优先级的定义 22
2.4【Review软件产品需求】 22
2.4.1如何保证软件需求的完整性 22
2.4.1.1演绎法 23
2.4.1.2比较法 24
2.4.1.3分解法 24
2.4.1.4打标签 25
2.4.2如何保证软件需求的正确性:明确用户动机 25
2.4.3如何保证软件需求的正确性:正确的表达方式 26
2.4.3.1直接沟通 27
2.4.3.2简洁描述 27
2.4.3.3减少定性描述 27
2.4.3.4词语的准确性 27
2.4.4一致性 28
2.5【范围约束】 28
2.5.1用户的期盼超出了实现的能力 28
2.5.2非技术因素决定的技术选型 28
2.5.3预期的使用环境 28
2.5.4ReviewScope 29
第3章:用户故事 29
3.1【什么用户故事】 29
3.2【用户故事特点】 30
3.2.1体现用户价值 30
3.2.2不要出现技术术语 30
3.2.3可测试性 31
3.3【用户故事分解/细化/合并】 31
3.3.1按用户角色细化 32
3.3.2按用户操作细化 33
3.3.3按用户角色合并 33
第4章:ReviewFS 33
4.1【实现的含混性】 33
4.2【交付目标】 34
4.3【范围约束】 35
4.4【假设和依赖】 35
4.5【功能描述点】 35
4.6【Review功能描述】 36
4.6.1质量需求或产品特性描述是否足够准确 36
4.6.2实现方式可扩展性 36
4.6.3技术合理性 36
4.6.4集成和升级风险 37
4.6.5理解一致性 37
4.6.6设计一致性 37
4.7【非功能描述点】 38
第二部分:软件功能性测试 38
第5章功能性测试之准确性/合适性 38
5.1【功能性测试概念】 38
5.2【功能性测试分类】 39
5.3【适合性测试】 39
5.4【准确性测试】 40
第6章软件功能性测试用户故事 40
6.1【软件功能性测试故事列表】 40
6.2【执行者/行为/状态/预期结果/检查点】 42
6.2.1添加数据[文本框] 43
6.2.1.1空数据 43
6.2.1.2合法数据 43
6.2.1.3添加中断机制 44
6.2.1.4添加文件/图片 44
6.2.1.5特殊字符字段 44
6.2.1.6带空格字段 45
6.2.1.7带回车键字段 45
6.2.1.8字段长度 45
6.2.1.9数字型边界 46
6.2.1.10数字的约束 46
6.2.1.11字段类型 46
6.2.1.12重复添加 47
6.2.1.13单选按钮(RadioButton) 48
6.2.1.14复选框(CheckBox) 48
6.2.1.15列表框控件(ListBox) 48
6.2.1.16上下控件文本框(up-down)的测试 48
6.2.1.17日期约束 49
6.2.2显示数据 49
6.2.2.1分页显示 49
6.2.2.2显示数据的一致性 50
6.2.2.3显示信息归类合理性 51
6.2.2.4滚动条 51
6.2.2.5陈旧数据的及时更新 51
6.2.2.5分类排序 51
6.2.3删除数据 51
6.2.3.1删除合法数据 51
6.2.3.2不允许删除的数据 52
6.2.3.3删除不存在数据 52
6.2.3.4删除数据的衍生影响 52
6.2.4查询数据 52
6.2.4.1查询条件输入 53
6.2.4.2查询关键字 53
6.2.4.3模糊查询与精确查询 53
6.2.4.4查询结果 54
6.2.5修改数据 54
6.2.5.1修改合理数据 54
6.2.5.2不能修改/锁的情况 54
6.2.5.3修改多个数据 55
6.2.5.4修改后的衍生影响 55
6.2.6激活/冻结 56
6.2.7导入/导出数据 56
6.2.7.1导入合理数据 56
6.2.7.2导入数据中存在不合理数据 56
6.2.7.2导出数据 56
6.2.8实例化 57
6.2.9拷贝 57
6.2.9.1拷贝数据信息检查 57
6.2.9.2默认拷贝数据名 57
6.2.10检查日志 57
第7章软件互操作性测试 58
7.1【互操作性测试定义】 59
7.2【兼容性和互操作性的区别】 59
7.3【不可互操作的原因】 60
7.4【互操作性测试分类】 61
7.4.1软件与硬件平台及外设的互操作性 61
7.4.1.1安装测试 61
7.4.1.2部署测试 61
7.4.1.3硬件监控 62
7.4.1.4硬件管理 62
7.4.2操作系统/文件系统的互操作性 62
7.4.3软件间的互操作性 63
7.4.4网络/数据库的互操作性 63
7.4.5驱动程序的互操作性 63
7.4.6文档的互操作性 64
第8章安全性测试 64
8.1【软件安全性测试概念】 64
8.2【软件安全性测试策略】 65
8.2.1软件安全漏洞 65
8.2.2软件安全测试方法分类 65
8.3【用户认证安全】 66
8.3.1用户权限问题 66
8.3.1.1区分系统中不同用户权限 67
8.3.1.2保证系统中不会出现用户冲突 67
8.3.1.3系统不会因用户的权限的改变造成混乱 68
8.3.1.4在线超时 68
8.3.1.5操作留痕 68
8.3.2密码验证机制 68
8.3.3密码保护机制 69
8.3.3.1密码保护问题 69
8.3.3.2纵深防御 69
8.4【系统网络安全性测试】 70
8.4.1缓冲区溢出 70
8.4.2加密测试 71
8.4.3SQL注入 72
8.5【数据库安全性测试】 74
8.5.1数据加密性测试 74
8.5.1数据完整性测试 75
8.5.3数据独立性测试 76
第9章全球化测试 76
9.1【全球化测试分类】 76
9.1.1G11N 76
9.1.2I18N和L10N 77
9.1.3软件的国际化和软件的本地化 77
9.1.4国际化测试和本地化测试 77
9.2【日期】 78
9.2.1时区检查 78
9.2.2日历格式 78
9.3【字符格式】 79
9.3.1失效字符检测 79
9.3.2大小写测试 80
9.4【数字格式】 80
9.4.1数字分隔测试 80
9.4.2负数 81
9.4.3货币符号测试 81
9.4.4邮编/国家代码/电话号码格式测试 81
9.4.5测量单位测试 81
9.4.6百分号(%)测试 81
9.5【输入法编辑器(IME)测试】 81
9.6【语言敏感信息测试】 82
第三部分:软件非功能性测试 82
第10章易用性测试 82
10.1【易用性测试分类】 82
10.2【易理解性测试】 83
10.2.1清晰性 84
10.2.2一致性 84
10.3【易学习性测试】 85
10.3.1直观性 86
10.3.2可记忆性 86
10.4【易操作性测试】 86
10.4.1用户可控性 86
10.4.1.1步骤引导 87
10.4.1.2降低思考 87
10.4.2灵活性 88
10.4.2.1可定制化 88
10.4.2.2想你所需 88
10.4.2.3快捷键使用 89
10.4.3可扩展性 89
10.4.4避免错误 90
10.4.4.1限制操作 90
10.4.4.2预见错误/先期提示 91
10.4.4.3提前报错 91
10.4.4.4问题要一次性说完 91
10.5【UI测试】 92
10.5.1标题栏 92
10.5.2文字 92
10.5.3控件 92
10.5.4图形 93
10.5.5表格 93
10.5.6提示框 93
10.5.7导航测试 94
第11章可靠性测试 94
11.1【容错性测试】 95
11.2【可恢复性测试】 95
11.2.1硬件及有关设备故障可恢复性测试 95
11.2.2软件系统故障可恢复性测试 96
11.2.3数据故障可恢复性测试 96
11.2.4通信故障可恢复性测试 97
11.3【故障转移测试】 97
第12章可移植性测试 98
12.1【可移植性测试定义与分类】 98
12.2【用户故事列表】 98
12.2.1执行者 100
12.3【行为/状态/预期结果/检查点】 100
12.3.1软件安装 100
12.3.1.1安装环境检查: 100
12.3.1.2中断安装的情况 101
12.3.1.3回溯的检查 101
12.3.1.4可定制化安装 101
12.3.1.5安装特定参数/端口依赖 102
12.3.1.6安装路径 102
12.3.1.7安装介质 102
12.3.1.8安装语言 102
12.3.1.9安装Shell 102
12.3.1.10安装组件 103
12.3.1.11操作系统兼容性 103
12.3.1.12操作系统语言包 103
12.3.1.13硬件系统兼容性 103
12.3.1.14逻辑安装次序 103
12.3.1.15安装安全性 104
12.3.1.16安装接口 104
12.3.1.17安装结果检查 104
12.3.2更新/升级 105
12.3.2.1升级过程系统暂停/不暂停 105
12.3.2.2升级后数据检查 105
12.3.2.3升级后配置信息检查 106
12.3.2.4中间状态信息检查 106
12.3.2.5升级回退机制 106
12.3.2软件卸载 106
12.3.2.1卸载方式 106
12.3.2.2非正常情况卸载 107
第13章性能测试 107
13.1【功能与性能的区别】 107
13.2【性能测试指标】 108
13.2.1响应时间 108
13.2.2并发用户数 109
13.2.3吞吐量 109
13.2.4资源利用率 110
13.3【获取性能需求】 110
13.4【性能测试分类】 111
13.4.1性能参数测试 111
13.4.2负载测试 111
13.4.3压力测试 112
13.5【如何进行性能测试】 113
13.5.1搭建测试环境和准备测试工具(脚本) 113
13.5.2测试、记录测试数据 113
13.6【分析性能瓶颈】 114
第14章文档测试 116
14.1【文档测试重要性】 116
14.2【文档种类】 117
14.3【文档测试检查点】 117
14.3.1文档完整性 117
14.3.2文档正确性 117
14.3.3文档易用性 118
第四部分:软件项目流程与风险 118
第15章软件项目开发流程 118
15.1【ProjectMilestone(项目里程碑)定义】 119
15.2【软件项目的主要阶段】 119
15.2.1信息采集和立项阶段 119
15.2.2需求分析阶段 120
15.2.3项目构架与设计阶段 120
15.2.4开发阶段 121
15.2.5系统测试阶段 122
15.2.5.1Acceptancetesting(接受性测试) 122
15.2.5.2Featuretesting 123
15.2.5.3Regressiontesting 123
15.2.5.4Cool-done&Sanitycheck 123
15.2.5.5Inspection 124
15.2.6软件发布阶段 124
15.2.7维护阶段 125
15.3【研发周期制定】 126
15.4【Effort(工作量)估计】 127
15.4.1为什么要估计工作量 127
15.4.2Effort估计的方法 128
15.4.2.1项目和工作的分解 128
15.4.2.2QA的可用时间 128
15.4.2.3Job时间的估计 129
15.4.2.4Scheduletable(计划表) 131
第16章项目风险分析 131
16.1【Risk(风险)/Issue(问题)Bug(缺陷)的区别】 132
16.2【Risk(风险)分类】 132
16.2.1需求风险 132
16.2.2技术风险 132
16.2.2.1软件设计阶段风险 133
16.2.2.2软件实现阶段风险 133
16.2.2.3软件测试阶段风险 134
16.2.3管理风险 134
16.2.3.1计划/流程风险 135
16.2.3.2人员管理风险 136
16.2.3.3环境/资源风险 137
16.3【Risk(风险)分析】 137
16.3.1风险可能性 137
16.3.2风险影响 137
16.3.3风险评估 138
16.4【Risk(风险)缓解】 138
16.4.1风险监控 138
16.4.2风险控制 138
16.5【常见Risk(风险)处理】 139
第五部分:测试策略与测试计划 142
第17章测试策略 143
17.1【测试策略的定义和分类】 143
17.2【测试重点/测试优先级分析】 143
17.3【根据时间/阶段的对应的测试策略】 144
17.3.1单元测试期间的测试策略 144
17.3.2Feature(特性)测试期间的测试策略 145
17.3.3集成测试期间的测试策略 145
17.3.4回归测试期间的测试策略 146
17.3.5SanityCheck测试期间的测试策略 147
17.4【多平台/操作系统/浏览器的测试策略】 147
17.5【测试开始和结束的标准】 148
17.6【测试环境策略】 149
17.6.1测试环境规划策略 150
17.6.2测试环境复用策略 150
17.6.3软件环境频繁改变时的策略 151
17.7【测试人员指定/任务分布的策略】 151
17.7.1注重个人因素 151
17.7.2避免出现"灰色地带" 152
17.8【测试工具的使用策略】 152
17.9【测试报告/进度策略】 152
第18章测试计划 153
18.1【测试计划的定义】 153
18.2【测试计划的范围】 153
18.3【测试用例设计方法】 154
18.3.1等价类 154
18.3.1.1划分等价类 154
18.3.1.2划分等价类的标准 155
18.3.1.3设计等价类测试用例 155
18.3.2边界值分析 156
18.3.2.1边界值分析与等价类的区别 156
18.3.2.2常见的边界值 157
18.3.3因果图法 158
18.3.3.1因果图法的原理和约束 158
18.3.3.2因果图法的设计步骤 159
18.3.3.3因果图法的设计案例 160
18.3.4事件流 161
18.3.4.1事件流组成 161
18.3.4.2构造场景 161
18.4【测试用例优先级划分】 163
第六部分:软件测试管理 164
第19章如何预防Bug 164
19.1【Bug和Defect区别】 164
19.2【预防Bug的意义】 165
19.3【干净的代码】 166
19.3.1代码简洁 166
19.3.2有意义的命名 166
19.3.3函数的有效组织 167
19.3.4注释合理 167
19.4【代码可复用】 167
19.5【代码Review管理机制】 169
19.6【做好单元测试】 169
19.7【代码重构】 170
19.7.1为什么要做代码重构 170
19.7.2如何做代码重构 171
第20章如何Log高质量的Bug 172
20.1【Bug报告写给谁看】 173
20.2【Bug模板介绍】 173
20.2.1如何写Summary(主题) 174
20.2.2如何写清测试条件 175
20.2.2可归纳性/可扩展性 176
20.2.3优先级|严重性|影响程度。 176
20.2.3.1严重性分类 177
20.2.3.2严重性衡量标准并不唯一 177
20.2.3.3优先级 178
20.2.3.4严重性与优先级的区别 178
20.2.4如何写Description(Bug描述) 179
20.2.4.1论证问题 179
20.2.4.2期待结果 180
20.2.5重现 180
20.2.5.1是否可重现 180
20.2.5.2重现步骤 181
20.2.5附件 182
20.3【常见的Bug问题】 182
20.3.1类似的Bug如何log 182
20.3.2后期的设计问题如何log 183
20.3.3小问题该如何log 183
20.3.4重复的log如何处理 183
20.4【如何分析RootCause】 184
20.4.1比较法 184
20.4.2假设法 185
20.4.3分解法 186
20.5【Bug生命周期】 186
20.5.1Bug生命周期图 186
20.5.2Bug追踪 187
20.6【测试报告分析】 188
第21章其他QA日常工作 189
21.1【日报】 189
21.1.1日报的目的 189
21.1.2日报的书写者 190
21.1.3日报的内容 190
21.2【如何开会】 192
21.2.1QA要开多少会 192
21.2.2如何高效的开会 192
后记:QA的自我修养 193
第1课:QA到底是做什么的? 194
第2课:质疑和思考 195
第3课:QA要具备的技能 196
第4课:QA和DEV的关系 196
第5课:QA的主要贡献 197
第6课:自动化测试和常规测试的关系 198
样章
小白:大鸟啊,我郁闷得很啊。
大鸟:咋咧?
小白:我们公司参与了一个大项目。当时市场签下来的时候,项目组是欢天喜地的。项目做了一年多。到了交付的时候,用户却很不满意,当初说好的需求,好多都变了卦。
用户是上帝,最关键的是如果收不到后面的钱,那就算白干了。公司要求项目组加班加点的修改。我们测试部门也不得不一遍一遍的做着重复劳动,搞得大家是怨声载道的。做市场的和做开发的相互指责,然后,大家又一起骂客户刻薄。公司里面弥漫着灰心丧气的气氛。
大鸟:你们是怎么和客户谈需求的?
小白:市场先谈单,估计人家需要做什么。然后,我们这边就派一个技术的人过去了解需求,拿一些对方的表格和笔记回来。好像都差不多。
大鸟:你们去询问需求,然后做了一个文档。你们头脑里的东西,跟客户要的东西,其实是不一样的。但是,大家都认为这样白纸黑字,基本上是一样的。这里面其实有差异。这种差异,有时影响不大,但有时,是致命的。毕竟文档,不是最终的实物。客户永远认为,他是把需求给你讲清楚了的。如果你做不到,不是他的责任。而且,你要记住一点,用户只有在见到或使用过实物的时候,他才知道他其实要的是什么东西。否则如果研发没搞清需求就闷头做事,迟早项目会变成"包工队的故事"。
场景漫画:包工队的故事
甲:说一个包工队接一好活儿,盖一个70多米高的大烟囱!
乙:还真不错!
甲:起早贪黑把活干完了,人家来一验收,死活不给我们工钱,还叮当五四打一顿!
乙:为啥啊,质量不行?
甲:把图纸拿倒了,人家让挖口井!
