第一部分 测试理论基础 3
第1章 测试理论基础 3
1.1 软件测试概论 3
1.1.1 软件危机 3
1.1.2 软件测试的起源和发展 7
1.1.3 软件测试基础 8
1.1.4 软件开发模型 9
1.2 测试用例 13
1.2.1 测试用例的重要性 13
1.2.2 什么是好的测试用例 14
1.2.3 测试用例的分类和构成 15
1.2.4 测试用例的要素 22
1.2.5 测试用例设计 23
1.3 测试的生命周期 33
1.3.1 计划阶段 34
1.3.2 分析阶段 35
1.3.3 设计阶段 36
1.3.4 构建阶段 36
1.3.5 循环测试阶段 37
1.3.6 最后测试和实施阶段 37
1.3.7 实施后阶段 37
1.4 如何进行功能测试 37
1.5 Bug管理 38
1.5.1 Bug基础 38
1.5.2 如何找到更好更多的Bug 40
1.5.3 如何报告Bug 43
1.5.4 如何提交Bug 43
1.5.5 Bug报告单示例 45
第二部分 手工测试 49
第2章 以太协议的测试 49
2.1 技术介绍 49
2.1.1 以太网帧的格式 49
2.1.2 MAC地址的分类 49
2.1.3 交换机转发数据帧的规则 50
2.2 测试实践 52
2.2.1 测试拓扑介绍 52
2.2.2 功能测试 53
2.2.3 负面测试 58
2.2.4 性能测试 58
2.2.5 负载测试 58
2.2.6 压力测试 58
2.2.7 用户环境测试 58
2.3 课后练习 59
第3章 VLAN的测试 64
3.1 技术介绍 64
3.1.1 VLAN在交换机上的实现方法 65
3.1.2 使用VLAN的交换机的MAC学习方法 66
3.1.3 VLAN中数据帧的转发 66
3.1.4 VLAN的优点 66
3.1.5 VLAN的配置及查看 67
3.2 测试实践 69
3.2.1 测试拓扑介绍 69
3.2.2 功能测试 69
3.2.3 负面测试 72
3.2.4 性能测试 72
3.3 课后练习 72
第4章 STP/RSTP/MSTP的测试 75
4.1 技术介绍 75
4.1.1 透明网桥的应用 75
4.1.2 路径回环的产生 75
4.1.3 生成树协议 76
4.1.4 快速生成树协议 79
4.1.5 MSTP协议 80
4.1.6 生成树其他特性 84
4.1.7 配置生成树协议 86
4.2 测试实践 93
4.2.1 测试拓扑介绍 93
4.2.2 功能测试 94
4.2.3 性能测试 98
4.2.4 压力测试 98
4.2.5 用户环境测试 99
4.3 课后练习 100
第5章 链路聚合的测试 109
5.1 技术介绍 109
5.1.1 链路聚合的作用 109
5.1.2 链路聚合的基本概念 110
5.1.3 聚合成员端口的状态 110
5.1.4 链路聚合实现方式 110
5.1.5 聚合组的负载分担类型 110
5.1.6 负载均衡(Load Balance) 111
5.1.7 LACP协议 111
5.2 测试实践 113
5.3 课后练习 115
第6章 ARP的测试 121
6.1 技术介绍 121
6.1.1 协议简介 121
6.1.2 报文格式 121
6.1.3 解析过程 123
6.1.4 ARP缓存 124
6.1.5 免费ARP 124
6.1.6 ARP欺骗 125
6.1.7 配置ARP 125
6.2 测试实践 126
6.2.1 功能测试 126
6.2.2 负面测试 126
6.2.3 性能测试 126
6.2.4 压力测试 126
6.3 课后练习 127
第7章 ICMP的测试 129
7.1 技术介绍 129
7.1.1 协议简介 129
7.1.2 功能与分类 130
7.1.3 应用 131
7.2 测试实践 132
7.2.1 测试拓扑图 132
7.2.2 功能测试 133
7.2.3 负面测试 134
7.3 课后练习 134
第8章 RIP测试 137
8.1 技术介绍 137
8.1.1 协议简介 137
8.1.2 工作原理 138
8.1.3 计时器 138
8.1.4 路由环路 139
8.1.5 RIPv1 VS RIPv2 142
8.2 配置RIP 143
8.2.1 创建RIP路由进程 143
8.2.2 水平分割配置 143
8.2.3 定义RIP版本 144
8.2.4 关闭路由自动汇聚 144
8.2.5 RIP认证配置 145
8.2.6 RIP时钟调整 145
8.3 测试实践 146
8.3.1 功能测试 146
8.3.2 其他方面测试 148
8.4 课后练习 149
第9章 OSPF测试 154
9.1 技术介绍 154
9.1.1 协议简介 154
9.1.2 基本概念 154
9.1.3 报文分类 160
9.1.4 LSA分类 164
9.1.5 协议过程 168
9.2 配置OSPF 169
9.2.1 配置任务列表 169
9.2.2 默认配置 169
9.2.3 创建OSPF路由进程 170
9.2.4 配置OSPF接口参数 171
9.2.5 配置点到多点广播网络 172
9.2.6 配置非广播网络 172
9.2.7 配置广播网络类型 173
9.2.8 监视和维护OSPF 174
9.3 测试实践 174
9.3.1 测试拓扑介绍 174
9.3.2 功能测试 175
9.3.3 其他方面测试 182
9.4 课后练习 183
第10章 ACL测试 186
10.1 技术介绍 186
10.1.1 ACL简介 186
10.1.2 ACL分类 186
10.1.3 匹配规则 187
10.1.4 ACL的应用原则及应用中常见问题 187
10.1.5 ACL的局限性 188
10.2 配置ACL 188
10.2.1 配置基本ACL 188
10.2.2 配置MAC扩展ACL 189
10.2.3 配置Expert扩展ACL 191
10.3 测试实践 192
10.4 课后练习 193
第11章 测试工具 196
11.1 Wireshark 196
11.1.1 发展简史 196
11.1.2 使用默认设置运行Wireshark 197
11.1.3 深入了解Wireshark工具 198
11.1.4 Wireshark过滤器 200
11.2 TCPDump 203
11.2.1 命令格式 203
11.2.2 表达式中的关键字 203
11.2.3 输出举例 204
11.3 课后练习 205
第三部分 自动化测试 209
第12章 自动化测试技术 209
12.1 了解自动化测试 209
12.1.1 自动化测试的优势 209
12.1.2 自动化测试的必要条件 210
12.1.3 可自动化与不可自动化的测试用例 210
12.1.4 自动化测试现状及工具一览 210
12.2 网络设备自动化测试原理及技术 211
12.2.1 Sigma自动化测试平台介绍 212
12.2.2 Sigma测试平台的设备控制 213
12.2.3 测试脚本 214
12.2.4 网络设备自动化测试框架总结 215
12.3 TCL编程简介 216
12.3.1 TCL简介 216
12.3.2 基本语法(Basic Command Syntax) 216
12.3.3 命令综述 218
12.3.4 变量——标量和向量 218
12.3.5 表达式 219
12.3.6 命令结果 219
12.3.7 函数Procedures 220
12.3.8 TCL内置命令 220
12.3.9 list相关操作 228
12.3.10 正则表达式使用 229
12.3.11 文件操作 230
12.3.12 字符串操作 231
12.3.13 跟踪变量 232
12.3.14 调用栈问题 234
12.3.15 TCL名字空间 235
12.4 Sigma自动化测试平台基本操作 236
12.5 熟悉Sigma平台使用的测试文件与脚本 241
12.5.1 文件及脚本了解 241
12.5.2 了解脚本中每个段的具体作用 244
12.5.3 实验1——单DUT测试 246
12.5.4 实验2——DUT+PC 247
12.5.5 实验3——DUT+多PC+简单流量 247
12.5.6 实验4——DUT+多PC+复杂流量 248
12.6 GUI测试技术 248
12.6.1 使用AutoIt 250
12.6.2 AutoIt脚本语言的基本要素 252
12.6.3 Web GUI的基本操作 254
12.6.4 Web GUI+Traffic 255
12.7 理解脚本的质量标准 256
12.7.1 脚本的可重性和可扩展性 256
12.7.2 如何设计可重用性的Top和Address 257
12.8 设备控制库开发 258
12.9 实际工作需考虑的问题 259
12.10 参考程序 260
12.10.1 在MC上调试演试脚本 260
12.10.2 单DUT测试程序 261
12.10.3 DUT+PC测试程序 263
12.10.4 DUT+多PC+简单流量测试程序 264
12.10.5 DUT+多PC+复杂流量测试程序 265
12.10.6 WebGUI的基本操作程序 269
12.10.7 WebGUI+Traffic操作程序 270
12.10.8 脚本重用程序 280
12.10.9 地址与拓扑文件重用程序 282
12.10.10 设备控制库开发程序 283
参考文献 288