第1章 软件测试基础 1
1.1 软件测试概述 1
1.2 软件测试历程 1
1.3 软件测试分类 2
1.4 白盒测试 3
1.4.1 概述 3
1.4.2 逻辑覆盖法 4
1.4.3 路径分析法 6
1.5 黑盒测试 8
1.5.1 概述 8
1.5.2 等价类划分法 8
1.5.3 边界值分析法 10
1.5.4 决策表 12
1.5.5 因果图 14
1.6 习题 16
第2章 自动测试技术 18
2.1 概述 18
2.1.1 手工测试的局限性 18
2.1.2 分层自动化测试 18
2.1.3 自动化测试与手测试 19
2.2 自动化测试的分类 19
2.2.1 界面测试 20
2.2.2 单元测试 20
2.2.3 安全测试 20
2.2.4 数据库测试 20
2.2.5 负载测试 21
2.2.6 压力测试 21
2.2.7 可靠性测试 22
2.3 测试成熟度模型 23
2.3.1 初始级 23
2.3.2 定义级 23
2.3.3 集成级 24
2.3.4 管理和测量级 25
2.3.5 优化,预防缺陷和质量控制级 26
2.4 自动化测试原理 28
2.4.1 代码分析 28
2.4.2 录制回放 28
2.4.3 脚本技术 29
2.4.4 虚拟用户技术 29
2.5 自动化测试模型 30
2.5.1 线性测试 30
2.5.2 模块化测试 30
2.5.3 共享测试 30
2.5.4 数据驱动测试 31
2.5.5 关键字驱动测试 31
2.6 测试工具 31
2.6.1 静态测试工具 31
2.6.2 动态测试工具 32
2.7 习题 32
第3章 Python与软件测试 33
3.1 Python简介 33
3.1.1 Python的历史 33
3.1.2 Python的特点 33
3.1.3 Python的应用场合 34
3.2 Python解释器 36
3.2.1 在Ubuntu下安装Python 36
3.2.2 在Windows下安装Python 37
3.3 Python编辑器 38
3.3.1 IDLE 38
3.3.2 PyCharm 38
3.3.3 Anaconda 40
3.4 Python测试框架 46
3.4.1 unittest 46
3.4.2 Pywinauto 46
3.4.3 Selenium 48
3.4.4 Pylot 48
3.4.5 Appium 50
3.4.6 Pytest 51
3.5 习题 53
第4章 Python与unittest单元测试 54
4.1 unittest 54
4.1.1 unittest简介 54
4.1.2 unittest的工作原理 54
4.2 注解 55
4.2.1 注解简介 55
4.2.2 注解举例 55
4.3 测试类和测试方法 56
4.3.1 Assert 57
4.3.2 TestCase 59
4.3.3 TestSuite 61
4.4 两种输出方式 62
4.4.1 TextTestRunner 62
4.4.2 HTMLTestRunner 62
4.5 unittest与爬虫 64
4.5.1 Python爬虫库 64
4.5.2 举例 67
4.6 ConfigParser 68
4.6.1 ConfigParser简介 68
4.6.2 ConfigParser常用方法 69
4.7 logging 72
4.7.1 logging简介 72
4.7.2 logging常用方法 72
4.7.3 JSON配置logging模块 75
4.7.4 YAML配置logging模块 77
4.8 traceback 79
4.8.1 traceback简介 79
4.8.2 traceback举例 79
4.9 习题 81
第5章 Python与Selenium网络测试 82
5.1 Selenium简介 82
5.2 Selenium IDE 84
5.2.1 环境搭建 84
5.2.2 录制 85
5.2.3 回放 86
5.3 Selenium WebDriver 88
5.3.1 环境搭建 88
5.3.2 浏览器连接 89
5.3.3 模拟用户操作 91
5.4 定位页面元素 93
5.4.1 id定位 94
5.4.2 name定位 94
5.4.3 tagName定位 94
5.4.4 className定位 95
5.4.5 linkText定位 95
5.4.6 partialLinkText定位 96
5.4.7 XPath定位 96
5.4.8 cssSelector定位 96
5.5 定位表格 97
5.5.1 定位表格的全部单元格 97
5.5.2 定位表格的某个单元格 98
5.5.3 定位表格的子元素 99
5.6 定位网页 100
5.6.1 静态网页 100
5.6.2 动态网页 102
5.7 unittest与Selenium 104
5.7.1 简介 104
5.7.2 举例 104
5.8 习题 105
第6章 Python与DDT数据驱动测试 106
6.1 DDT 106
6.1.1 DDT简介 106
6.1.2 DDT装饰符 107
6.2 DDT文件 107
6.2.1 读取单个数据 107
6.2.2 读取列表和元组 108
6.2.3 读取字典 110
6.2.4 读取JSON文件 110
6.2.5 读取YAML文件 111
6.3 unittest+DDT 112
6.3.1 简介 112
6.3.2 举例 114
6.4 Excel+DDT 115
6.4.1 xlrd库和xlwt库 115
6.4.2 举例 118
6.5 MySQL+DDT 121
6.5.1 安装MySQL 121
6.5.2 PyMySQL操作数据库 124
6.5.3 举例 126
6.6 习题 131
第7章 Python与UIAutomator测试 132
7.1 App测试 132
7.1.1 简介 132
7.1.2 Android UI测试框架 133
7.1.3 Web测试与App测试关系 134
7.2 两种开发环境 134
7.2.1 Eclipse环境 135
7.2.2 Android Studio 135
7.3 Android SDK 138
7.3.1 安装ADT 138
7.3.2 SDK的安装和配置 142
7.3.3 SDK Manager 143
7.3.4 Android模拟器 145
7.4 ADB 148
7.4.1 简介 148
7.4.2 ADB常用命令 149
7.4.3 举例 150
7.5 Python+UIAutomator 152
7.5.1 简介 152
7.5.2 API 153
7.6 UIAutomatorViewer 155
7.6.1 简介 155
7.6.2 操作步骤 155
7.7 习题 156
第8章 Python与Appium移动测试 157
8.1 Appium 157
8.1.1 简介 157
8.1.2 特点 157
8.2 搭建Appium环境 158
8.3 Appium的工作原理 160
8.4 计算器举例 161
8.5 Appium与全国大学生软件测试大赛 161
8.5.1 赛事简介 161
8.5.2 慕测环境配置 162
8.5.3 参赛流程 162
8.5.4 竞赛题目 165
8.6 习题 173
附录A 前端测试 174
A.1 简介 174
A.1.1 界面样式测试 174
A.1.2 功能测试 174
A.1.3 性能测试 175
附录B Jest 176
B.1 简介 176
B.2 断言 176
B.3 测试覆盖率 180
附录C Monkey 182
C.1 简介 182
C.2 操作步骤 182
参考文献 185