软件测试工程师成长之路:掌握软件测试九大技术主题
王顺 等 编著
ISBN 978-7-121-23996-0
2014年9月出版
定价:85.00元
432页
16开
内容提要
《软件测试工程师成长之路:掌握软件测试九大技术主题》以实际项目为原型、以关键理论与丰富实践为指导,贯彻了先进的项目管理理念与全程质量管理思想。
《软件测试工程师成长之路:掌握软件测试九大技术主题》前9 章为软件测试九大技术主题分享,是众多资深软件工程师在软件测试领域的经验总结、知识升华与提高,展现众多实际工作中典型的测试技巧和测试技术。《软件测试工程师成长之路:掌握软件测试九大技术主题》第10 章是引导读者自己动手实践,在实践中不断总结与提高。《软件测试工程师成长之路:掌握软件测试九大技术主题》第11 章、第12 章、第13 章讲解HTML、JavaScript、CSS,通过网页编程语言帮助读者理解为什么会出现这样的测试,为什么要选择这些特定的字符串进行测试。
《软件测试工程师成长之路:掌握软件测试九大技术主题》适用于已经学过软件测试基本理论,知道软件研发基本流程的读者,非常适合目前正在软件测试工程师岗位任职或将要进入软件测试工程师行列的人,同时适合软件开发工程师、软件项目管理师、软件系统架构师阅读。
目录
第1 章 Web 测试专题技术分享 ............. 1
1.1 Web 测试的特点 ............................ 1
1.2 Web 测试基础点 ............................ 2
1.2.1 获取软件版本号 ........................... 2
1.2.2 修改浏览器的代理设置 ................ 4
1.2.3 修改hosts 配置文件 ..................... 6
1.2.4 测试网上付费购物 ....................... 7
1.2.5 截图软件FS Capture 的使用 ........ 8
1.2.6 截图软件Jing 的使用 ................. 10
1.3 用户界面测试 .............................. 12
1.3.1 文字或图片重叠 ......................... 12
1.3.2 文字或图片剪裁 ......................... 13
1.3.3 文字或图片没对齐 ..................... 14
1.3.4 重复菜单项或链接 ..................... 15
1.3.5 提示信息错误 ............................. 15
1.3.6 界面测试其他问题 ..................... 16
1.4 功能测试 ..................................... 18
1.4.1 Tooltip 不显示 ............................ 18
1.4.2 JS 错误问题 ................................ 19
1.4.3 页面链接错误 ............................. 20
1.4.4 页面访问资源不可用 .................. 21
1.4.5 出现“404 页面错误” ............... 22
1.4.6 按钮不工作 ................................. 23
1.4.7 功能未实现 ................................. 24
1.4.8 错误信息提示不合理 .................. 25
1.4.9 数据库访问错误 ......................... 26
1.4.10 文档无法下载 ........................... 27
1.5 表单测试 ..................................... 28
1.5.1 文本框测试常见验证点 .............. 28
1.5.2 特殊输入域测试常见验证点 ...... 29
1.5.3 单选按钮测试常见验证点 .......... 31
1.5.4 复选框测试常见验证点 .............. 32
1.5.5 大块文字区域测试常见验证点 ... 32
1.5.6 下拉列表框测试常见验证点 ...... 33
1.5.7 排序测试常见验证点 ................. 33
1.5.8 分页测试常见验证点 ................. 33
1.5.9 搜索框填充域测试常见验证点 ............................................ 34
1.5.10 用户登录测试常见验证点 ........ 35
1.5.11 特殊字符处理常见验证点 ........ 35
1.5.12 转义字符处理常见验证点 ........ 37
1.5.13 多次快速提交问题 ................... 37
1.5.14 共用页面Session 问题 ............. 37
1.5.15 页面刷新问题 ........................... 38
1.5.16 浏览器前进/后退按钮问题 ....... 38
第2 章 Client 测试专题技术分享 ....... 39
2.1 Client 测试的特点 ....................... 39
2.2 如何进行Client 测试 .................. 40
2.2.1 安装测试 .................................... 40
2.2.2 卸载测试 .................................... 42
2.2.3 UI 测试 ....................................... 43
2.2.4 功能测试 .................................... 45
2.2.5 字符输入测试 ............................. 47
2.2.6 Tooltip 测试 ................................ 48
2.2.7 链接测试 .................................... 49
2.2.8 操作按钮测试 ............................. 50
2.2.9 菜单测试 .................................... 51
2.2.10 音频测试 .................................. 51
2.2.11 视频测试 .................................. 53
2.2.12 程序运行权限测试 ................... 54
2.3 如何获取测试需要的Trace ......... 55
第3 章 Mobile 测试专题技术分享 ...... 57
3.1 Mobile 特点 ................................. 57
3.2 Mobile 测试基础 ......................... 58
3.2.1 手机测试常见类型 ..................... 58
3.2.2 手机测试与传统测试的区别 ...... 59
3.2.3 监控手机流量 ............................. 60
3.2.4 获取手机的Root 权限 ................ 60
3.3 实现手机与计算机的联系 .......... 61
3.3.1 “豌豆荚”的基本操作 .............. 62
3.3.2 “360 手机助手”的基本操作 .... 62
3.3.3 “腾讯手机管家”的基本操作 ... 63
3.3.4 实现iPhone/iPad/iPad Mini 与计算机的联系 ............................. 63
3.3.5 备份手机中的数据 ..................... 64
3.3.6 截取手机屏幕内容 ..................... 65
3.3.7 记录手机的Error Log ................. 66
3.3.8 手机数据信息 ............................. 68
3.4 手机设备的自身测试 .................. 68
3.5 手机应用软件测试 ...................... 72
3.6 手机Web 应用测试 ..................... 73
3.7 手机测试问题集锦 ...................... 73
第4 章 国际化、本地化软件测试专题技术分享 ........................ 77
4.1 软件国际化 ................................. 77
4.1.1 国际化概述 ................................. 78
4.1.2 软件国际化误区 ......................... 78
4.2 软件本地化 .................................. 80
4.2.1 软件本地化概述 ......................... 80
4.2.2 软件本地化误区 ......................... 81
4.3 国际化软件测试 .......................... 82
4.3.1 在本地化机器上安装使用程序 .. 82
4.3.2 正确的字符集编码 ..................... 83
4.3.3 伪本地化测试发现文本扩展问题 ............................................ 85
4.3.4 测试区域文化和传统特征 .......... 87
4.3.5 保证文本与代码分离 ................. 87
4.4 本地化软件测试 .......................... 89
4.4.1 翻译问题 .................................... 89
4.4.2 数据格式问题 ............................. 90
4.4.3 快捷键问题 ................................ 91
4.4.4 本地化后的排序问题 ................. 92
4.4.5 常用本地化测试技巧 ................. 93
第5 章 跨平台跨浏览器专题技术分享 ............................... 95
5.1 跨平台测试特点 .......................... 96
5.2 软件平台的分类 .......................... 96
5.2.1 Windows 平台 ............................. 97
5.2.2 Mac OS X 平台 ........................... 97
5.2.3 Linux 平台 .................................. 98
5.2.4 Solaris 平台 ................................ 98
5.2.5 HP-UX 平台 ............................... 98
5.2.6 IBM-AIX 平台 ............................ 98
5.3 跨平台测试需要具备的知识 ....... 99
5.3.1 Windows 平台 ............................. 99
5.3.2 Mac OS X 平台 ......................... 103
5.3.3 UNIX 平台 ................................ 107
5.4 跨平台测试技术分享 ................. 111
5.4.1 安装应用程序 ........................... 112
5.4.2 应用程序运行 ........................... 114
5.4.3 程序运行界面测试 ................... 115
5.4.4 程序功能测试 ........................... 116
5.5 浏览器的分类 ........................... 118
5.5.1 IE .............................................. 118
5.5.2 Firefox ...................................... 119
5.5.3 Chrome ..................................... 119
5.5.4 Safari ........................................ 120
5.6 跨浏览器测试技术分享 ............ 120
第6 章 Web 安全测试专题技术分享 ............................. 123
6.1 Web 安全测试 ........................... 123
6.1.1 Web 前端工具Firebug 的使用 .. 124
6.1.2 Web 前端工具Fiddler 的使用 ... 125
6.1.3 2010 年Web 应用十大安全攻击 .......................................... 127
6.1.4 2010 年与2007 年Web 应用十大安全攻击对比 .................... 129
6.2 未验证的重定向和转发 ............... 129
6.2.1 攻击说明 .................................. 129
6.2.2 攻击举例 .................................. 130
6.2.3 开发人员防范方法 ................... 131
6.3 传输层保护不足 ........................ 131
6.3.1 攻击说明 .................................. 131
6.3.2 攻击举例 .................................. 131
6.3.3 开发人员防范方法 ................... 131
6.4 URL 访问控制不当 ................... 132
6.4.1 攻击说明 .................................. 132
6.4.2 攻击举例 .................................. 132
6.4.3 开发人员的防范方法 ............... 132
6.5 不安全的加密存储 .................... 133
6.5.1 攻击说明 .................................. 133
6.5.2 攻击举例 .................................. 133
6.5.3 开发人员防范方法 ................... 133
6.6 安全配置错误 ............................ 134
6.6.1 攻击说明 .................................. 134
6.6.2 攻击举例 .................................. 134
6.6.3 开发人员防范方法 ................... 134
6.7 CSRF ......................................... 135
6.7.1 攻击说明 .................................. 135
6.7.2 攻击举例 .................................. 135
6.7.3 开发人员防范方法 ................... 136
6.8 不安全的直接对象引用 ............. 136
6.8.1 攻击说明 .................................. 136
6.8.2 攻击举例 .................................. 137
6.8.3 开发人员防范方法 ................... 137
6.9 失效的身份认证和会话管理 ..... 137
6.9.1 攻击说明 .................................. 137
6.9.2 攻击举例 .................................. 137
6.9.3 开发人员防范方法 ................... 138
6.10 跨站脚本 ................................. 138
6.10.1 攻击说明 ................................. 138
6.10.2 攻击举例 ................................. 139
6.10.3 开发人员防范方法 .................. 140
6.11 SQL 注入 ................................. 141
6.11.1 攻击说明 ................................. 141
6.11.2 攻击举例 ................................. 141
6.11.3 开发人员防范方法 .................. 143
6.12 OWASP.................................... 143
6.12.1 OWASP 定义 ........................... 143
6.12.2 OWASP 上最新的Web 安全攻击与防范技术 ...................... 143
6.12.3 WiKi 上最新的Web 安全攻击与防范技术 ...................... 145
第7 章 敏捷项目测试专题技术分享 . 146
7.1 敏捷软件开发简介 .................... 147
7.1.1 敏捷开发的流程 ....................... 147
7.1.2 敏捷开发的质量管理 ................ 148
7.1.3 敏捷开发中的关键概念 ............ 149
7.2 敏捷测试的定义 ....................... 152
7.3 敏捷测试的实质 ....................... 152
7.4 敏捷测试与普通测试的区别 .... 153
7.5 敏捷项目测试实例介绍 ............ 154
7.5.1 实例项目介绍 ........................... 154
7.5.2 用户故事设计和发布计划阶段 .......................................... 156
7.5.3 Sprint 阶段 ............................... 158
7.5.4 Sprint 结束和下一个Sprint开始 .......................................... 162
第8 章 软件自动化测试专题技术分享 ............................. 165
8.1 引入自动化测试 ........................ 165
8.2 什么是自动化测试 .................... 171
8.2.1 自动化测试是怎样工作的 ........ 172
8.2.2 自动化测试有哪些类别 ............ 174
8.2.3 设计一个常见的自动化测试框架 ................................... 175
8.3 持续集成自动化测试 ................ 177
8.4 自动化测试工具——JMeter ...... 178
8.4.1 JMeter 是什么 ........................... 178
8.4.2 JMeter 的安装和运行 ............... 178
8.4.3 JMeter 自动化脚本设计策略 .... 181
8.4.4 抓取一个简单的请求 ............... 182
8.4.5 设置配置文件 ........................... 186
8.5 设计一个简单的脚本 ................ 196
8.5.1 添加学生——HTTP Request ..... 196
8.5.2 查看运行结果——View Results Tree ...................... 200
8.5.3 访问数据库——JDBC Request ........................... 202
8.5.4 验证测试结果——Response Assertion .................... 204
8.5.5 清理数据 .................................. 206
第9 章 压力与性能测试专题技术分享 ............................. 209
9.1 什么是压力、性能测试 ............ 209
9.2 压力测试和性能测试用例设计 ........................................... 211
9.3 压力测试和性能测试——JMeter ........................................ 214
9.3.1 单线程添加多个学生 ................ 215
9.3.2 多线程添加多个学生 ................ 221
9.4 生成测试报告 ........................... 225
9.4.1 生成测试报告的方法 ................ 225
9.4.2 分析测试报告 ........................... 226
第10 章 自己动手完成软件测试实践 ................................. 232
10.1 中心在线网站测试实践 .......... 232
10.2 国内知名网站或应用测试实践 ......................................... 234
10.3 如何设计测试案例 .................. 235
10.3.1 看清项目测试范围(Test Scope) .......................... 236
10.3.2 编写测试案例 ......................... 237
10.4 准确汇报BUG 的技巧 ............ 243
10.4.1 准确汇报BUG 的几条基本准则 ........................................ 243
10.4.2 描述BUG 中需要注意的事项 ........................................ 244
10.4.3 在汇报英文BUG 时用专业英文描述 ................................. 244
10.4.4 与外国人进行项目交流时的常用英语 ................................. 246
10.5 寻找软件产品缺陷获奖作品欣赏 ........................................ 248
10.5.1 全国大学生寻找产品缺陷(Find BUG)技能大赛说明 .... 248
10.5.2 汇报产品缺陷模板 ................. 250
10.5.3 参赛选手提交的作品内容 ...... 250
10.5.4 大赛组委会审阅评价 .............. 260
第11 章 网页编程语言HTML .......... 261
11.1 HTML 编辑工具 ...................... 262
11.2 读者如何参与实践 .................. 263
11.3 HTML 语法教学 ...................... 265
11.3.1 网页架构标记 ......................... 265
11.3.2 排版标记 ................................ 268
11.3.3 字体标记 ................................ 271
11.3.4 清单标记 ................................ 274
11.3.5 表格标记 ................................ 277
11.3.6 图形标记 ................................ 281
11.3.7 表单标记 ................................ 284
11.3.8 链接标记 ................................ 290
11.3.9 框架标记 ................................ 291
11.3.10 多媒体标记 ........................... 294
11.3.11 跑马灯标记 ........................... 296
11.3.12 特殊字符 ............................... 297
第12 章 JavaScript ........................ 299
12.1 JavaScript 的特点及作用 ........ 300
12.1.1 JavaScript 是被嵌入到HTML中的 ........................................ 300
12.1.2 JavaScript 运行的环境 ............ 301
12.1.3 JavaScript 是解释执行的 ........ 301
12.1.4 JavaScript 是一种弱类型语言 ........................................ 302
12.1.5 JavaScript 以对象为基础 ........ 302
12.1.6 JavaScript 通过事件驱动执行 ........................................ 302
12.1.7 JavaScript 的作用是多方面的 ........................................ 303
12.1.8 JavaScript 是不断发展和广泛应用的 ............................. 303
12.2 JavaScript 的基本语法 ............ 303
12.2.1 基本数据结构 ......................... 303
12.2.2 运算符和表达式 ..................... 306
12.2.3 控制结构和循环 ..................... 309
12.3 window 对象 ........................... 314
12.3.1 window 窗口对象的属性 ........ 314
12.3.2 window 窗口对象的方法 ........ 316
12.4 document 对象 ......................... 320
12.4.1 document 对象的属性 ............. 321
12.4.2 document 对象的write()和writeIn()方法 ........................... 323
12.4.3 document 对象的close()方法 ........................................ 323
12.4.4 document 对象的getSelection()方法 .................. 323
12.5 文本对象 ................................. 324
12.5.1 文本对象的defaultValue属性 ........................................ 324
12.5.2 文本对象的name 属性 ........... 326
12.5.3 文本对象的value 属性 ........... 326
12.5.4 文本对象的focus()方法 ......... 326
12.5.5 文本对象的select()方法 ......... 327
12.6 按钮对象 ................................. 329
12.6.1 button、submit、reset 对象 .... 329
12.6.2 checkbox 对象 ........................ 330
12.6.3 radio 对象 ............................... 330
12.7 location 对象 ............................ 332
12.7.1 hash 属性 ................................ 332
12.7.2 href 属性 ................................. 333
12.7.3 pathname 属性 ........................ 334
12.7.4 protocol 属性 .......................... 334
12.8 history 对象 ............................. 335
12.9 字符串对象 .............................. 335
12.9.1 转义字符 ................................ 335
12.9.2 字符串对象的属性 ................. 336
12.9.3 字符串对象的“+”连接方法 ........................................ 337
12.9.4 字符串对象charAt 方法 ......... 337
12.9.5 字符串对象indexOf 方法 ....... 338
12.9.6 字符串对象lastIndexOf方法 ........................................ 338
12.9.7 字符串对象substring .............. 339
12.9.8 字符串对象toLowerCase方法 ........................................ 339
12.9.9 字符串对象toUpperCase方法 ........................................ 340
12.10 日期对象 ............................... 340
12.10.1 日期对象的属性 ................... 340
12.10.2 new 方法 ............................... 340
12.10.3 getYear()方法 ........................ 341
12.10.4 getMonth()方法 ..................... 342
12.10.5 getDate()方法 ........................ 342
12.10.6 getDay()方法 ......................... 343
12.10.7 getTime()方法 ....................... 344
12.10.8 setTime()方法 ........................ 344
12.10.9 setYear()方法 ........................ 345
12.10.10 getTimezoneOffset()方法 ..... 345
12.10.11 toGMTString()方法 ............. 346
12.10.12 toLocaleString()方法 ........... 347
12.11 数学对象 ............................... 347
12.11.1 Math 对象的属性 .................. 347
12.11.2 Math 对象的abs 方法 ........... 348
12.11.3 Math 对象的acos 方法 .......... 349
12.11.4 Math 对象的max 方法 .......... 350
12.11.5 Math 对象的round/floor/ceil方法 ....................................... 350
12.11.6 Math 对象的random 方法 ..... 351
12.12 数组对象 ............................... 352
12.12.1 数组对象的创建 ................... 352
12.12.2 数组对象的扩充 ................... 353
第13 章 CSS 和XML ..................... 355
13.1 CSS .......................................... 356
13.1.1 什么是CSS .......................... 356
13.1.2 CSS 的历史 .......................... 357
13.1.3 使用CSS 的优点 .................. 357
13.1.4 CSS 样式解决了一个普遍的问题 ................................. 358
13.1.5 使用CSS 之前 ...................... 358
13.1.6 如何将样式表加入网页 ......... 359
13.1.7 CSS 的语法 .......................... 361
13.2 XML ........................................ 369
13.2.1 XML 简介 ............................ 369
13.2.2 XML 的历史 ......................... 369
13.2.3 XML 的作用 ........................ 370
13.2.4 XML 与HTML 的主要差异 .................................... 372
13.2.5 一个XML 文档实例 ............. 372
13.2.6 XML 文档形成一种树结构 ... 373
13.2.7 XML 的语法规则 ................. 374
附录A 大学学籍管理系统安装配制说明书 ................................ 376
附录B 大学学籍管理系统 ............... 394
附录C 软件测试中常见的中英文对照 .................................... 407
参考文献 .......................................... 412
前言